[CMake] Add manpage generation + add first manpage
Signed-off-by: Marc Lagrange <markocpc@gmail.com>
This commit is contained in:
parent
5966fd8935
commit
2d9d8c3328
2
.gitignore
vendored
2
.gitignore
vendored
@ -10,3 +10,5 @@ CHANGELOG
|
||||
config.h
|
||||
#*
|
||||
\#*
|
||||
wmfs.1.gz
|
||||
wmfs.1.xml
|
||||
|
||||
101
CMakeLists.txt
101
CMakeLists.txt
@ -11,6 +11,7 @@ set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||
# Other
|
||||
#set(CMAKE_BUILD_TYPE RELEASE)
|
||||
option(WITH_LOGOS "install wmfs logos")
|
||||
option(GENERATE_MANPAGES "generate manpages" ON)
|
||||
# Project name - wmfs
|
||||
set(PROJECT_NAME wmfs)
|
||||
project(${PROJECT_NAME} C)
|
||||
@ -46,7 +47,24 @@ pkg_check_modules(wmfs_required
|
||||
x11
|
||||
libconfuse)
|
||||
# Find exterbal programs
|
||||
macro(a_find_program var prg req)
|
||||
set(required ${req})
|
||||
find_program(${var} ${prg})
|
||||
if(NOT ${var})
|
||||
message(STATUS "${prg} not found.")
|
||||
if(required)
|
||||
message(FATAL_ERROR "${prg} is required to build wmfs")
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "${prg} -> ${${var}}")
|
||||
endif()
|
||||
endmacro()
|
||||
find_program(GIT_EXECUTABLE git)
|
||||
# programs needed for man pages
|
||||
a_find_program(ASCIIDOC_EXECUTABLE asciidoc FALSE)
|
||||
a_find_program(XMLTO_EXECUTABLE xmlto FALSE)
|
||||
a_find_program(GZIP_EXECUTABLE gzip FALSE)
|
||||
a_find_program(CAT_EXECUTABLE cat TRUE)
|
||||
# Remplace strings in configs
|
||||
set(WMFS_VERSION ${VERSION})
|
||||
set(WMFS_COMPILE_MACHINE ${CMAKE_SYSTEM_PROCESSOR})
|
||||
@ -84,19 +102,98 @@ set(CHANGELOG_FILE ${SOURCE_DIR}/CHANGELOG)
|
||||
file(WRITE ${CHANGELOG_FILE} ${WMFS_CHANGELOG})
|
||||
endif()
|
||||
|
||||
# {{{ Check if documentation can be build
|
||||
if(GENERATE_MANPAGES)
|
||||
if(NOT ASCIIDOC_EXECUTABLE OR NOT XMLTO_EXECUTABLE OR NOT GZIP_EXECUTABLE)
|
||||
if(NOT ASCIIDOC_EXECUTABLE)
|
||||
SET(missing "asciidoc")
|
||||
endif()
|
||||
if(NOT XMLTO_EXECUTABLE)
|
||||
SET(missing ${missing} " xmlto")
|
||||
endif()
|
||||
if(NOT GZIP_EXECUTABLE)
|
||||
SET(missing ${missing} " gzip")
|
||||
endif()
|
||||
|
||||
message(STATUS "Not generating manpages. Missing: " ${missing})
|
||||
set(GENERATE_MANPAGES OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# sets
|
||||
# {{{ Install path and configuration variables
|
||||
if(DEFINED PREFIX)
|
||||
set(PREFIX ${PREFIX} CACHE PATH "install prefix")
|
||||
set(CMAKE_INSTALL_PREFIX ${PREFIX})
|
||||
else()
|
||||
set(PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "install prefix")
|
||||
endif()
|
||||
|
||||
# set man path
|
||||
set(WMFS_MAN_SRCS
|
||||
${SOURCE_DIR}/wmfs.1.txt)
|
||||
|
||||
if(DEFINED WMFS_MAN_PATH)
|
||||
set(WMFS_MAN_PATH ${WMFS_MAN_PATH} CACHE PATH "wmfs manpage directory")
|
||||
else()
|
||||
set(WMFS_MAN_PATH ${PREFIX}/share/man CACHE PATH "wmfs manpage directory")
|
||||
endif()
|
||||
|
||||
# {{{ Manpages
|
||||
if(GENERATE_MANPAGES)
|
||||
foreach(txtfile ${WMFS_MAN_SRCS})
|
||||
string(REGEX REPLACE ".txt\$" ".xml" xmlfile ${txtfile})
|
||||
string(REPLACE ${SOURCE_DIR}
|
||||
${BUILD_DIR} xmlfile ${xmlfile})
|
||||
string(REGEX REPLACE ".xml\$" ".gz" gzfile ${xmlfile})
|
||||
string(REGEX REPLACE ".gz\$" "" manfile ${gzfile})
|
||||
|
||||
add_custom_command(
|
||||
COMMAND ${CAT_EXECUTABLE} ${txtfile}
|
||||
| ${ASCIIDOC_EXECUTABLE} -d manpage -b docbook -o ${xmlfile} -
|
||||
WORKING_DIRECTORY ${BUILD_DIR}
|
||||
OUTPUT ${xmlfile}
|
||||
DEPENDS ${txtfile}
|
||||
VERBATIM)
|
||||
add_custom_command(
|
||||
COMMAND ${XMLTO_EXECUTABLE} man ${xmlfile}
|
||||
OUTPUT ${manfile}
|
||||
DEPENDS ${xmlfile})
|
||||
add_custom_command(
|
||||
COMMAND ${CAT_EXECUTABLE} ${manfile}
|
||||
| ${GZIP_EXECUTABLE}
|
||||
> ${gzfile}
|
||||
OUTPUT ${gzfile}
|
||||
DEPENDS ${manfile}
|
||||
VERBATIM)
|
||||
|
||||
set(MAN_FILES ${MAN_FILES} ${gzfile})
|
||||
|
||||
# figure out in what section to install to from filename
|
||||
string(REGEX REPLACE "^.*\\.([0-9])\\.gz\$" "\\1" section ${gzfile})
|
||||
set(WMFS_MAN${section}_FILES ${WMFS_MAN${section}_FILES} ${gzfile})
|
||||
endforeach()
|
||||
|
||||
add_custom_target(man ALL DEPENDS ${MAN_FILES})
|
||||
endif()
|
||||
# }}}
|
||||
|
||||
set(PROJECT_DATA_PATH share/${PROJECT_NAME})
|
||||
set(PROJECT_TODO ${SOURCE_DIR}/TODO)
|
||||
set(PROJECT_README ${SOURCE_DIR}/README)
|
||||
set(PROJECT_CHANGELOG ${SOURCE_DIR}/CHANGELOG)
|
||||
set(PROJECT_DEFAULT_CONF ${SOURCE_DIR}/wmfsrc)
|
||||
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
|
||||
|
||||
# installs
|
||||
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
|
||||
if(WITH_LOGOS)
|
||||
set(PROJECT_LOGOS ${PROJECT_DATA_PATH}/logos)
|
||||
set(PROJECT_LOGOS_DIR ${SOURCE_DIR}/logos)
|
||||
install(DIRECTORY ${PROJECT_LOGOS_DIR} DESTINATION ${PROJECT_DATA_PATH})
|
||||
message("Install With logos")
|
||||
endif()
|
||||
|
||||
if(GENERATE_MANPAGES)
|
||||
install(FILES ${WMFS_MAN1_FILES} DESTINATION ${WMFS_MAN_PATH}/man1)
|
||||
endif()
|
||||
install(FILES ${PROJECT_TODO} ${PROJECT_README} ${PROJECT_CHANGELOG}
|
||||
${PROJECT_DEFAULT_CONF} DESTINATION ${PROJECT_DATA_PATH})
|
||||
|
||||
75
build/wmfs.1
Normal file
75
build/wmfs.1
Normal file
@ -0,0 +1,75 @@
|
||||
.\" Title: wmfs
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets v1.73.2 <http://docbook.sf.net/>
|
||||
.\" Date: 09/13/2008
|
||||
.\" Manual:
|
||||
.\" Source:
|
||||
.\"
|
||||
.TH "WMFS" "1" "09/13/2008" "" ""
|
||||
.\" disable hyphenation
|
||||
.nh
|
||||
.\" disable justification (adjust text to left margin only)
|
||||
.ad l
|
||||
.SH "NAME"
|
||||
wmfs - Windows Manager From Scratch
|
||||
.SH "SYNOPSIS"
|
||||
\fBwmfs\fR [\fB\-v\fR | \fB\-\-version\fR] [\fB\-h\fR | \fB\-\-help\fR] [\fB\-c\fR | \fB\-\-config\fR \fIFILE\fR]
|
||||
.sp
|
||||
.SH "DESCRIPTION"
|
||||
\fBWmfs\fR is a windows manager for X\. You can use Floating and Tiling apps\. blahblahblah\&...
|
||||
.sp
|
||||
.SH "OPTIONS"
|
||||
.PP
|
||||
\fB\-v\fR, \fB\-\-version\fR
|
||||
.RS 4
|
||||
Print version information to standard output, then exit\.
|
||||
.RE
|
||||
.PP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
.RS 4
|
||||
Print help information, then exit\.
|
||||
.RE
|
||||
.PP
|
||||
\fB\-c\fR, \fB\-\-config\fR
|
||||
.RS 4
|
||||
Use an alternate configuration file instead of
|
||||
\fI$HOME/\.wmfsrc\fR\.
|
||||
.RE
|
||||
.SH "DEFAULT MOUSE BINDINGS"
|
||||
.SS "Type de bind\."
|
||||
.PP
|
||||
\fBtouche + truc\fR on XYZ
|
||||
.RS 4
|
||||
Description\.
|
||||
.RE
|
||||
.SS "Autre type de bind\."
|
||||
.PP
|
||||
\fBtruc + machin\fR
|
||||
.RS 4
|
||||
Desc\.
|
||||
.RE
|
||||
.SH "DEFAULT KEY BINDINGS"
|
||||
.SS "Type de bind\."
|
||||
.PP
|
||||
\fBtouche + truc\fR on XYZ
|
||||
.RS 4
|
||||
Description\.
|
||||
.RE
|
||||
.SS "Autre type de bind\."
|
||||
.PP
|
||||
\fBtruc + machin\fR
|
||||
.RS 4
|
||||
Desc\.
|
||||
.RE
|
||||
.SH "CONFIGURATION"
|
||||
\fBWmfs\fR is configured by \fI$HOME/\.wmfsrc\fR
|
||||
.sp
|
||||
.SH "BUGS"
|
||||
Know bug list here\.
|
||||
.sp
|
||||
.SH "AUTHORS"
|
||||
Marc Lagrange <markocpc@gmail\.com> for the build system and Gentoo ebuilds\. Martin Duquesnoy <tonmail> for the code\.
|
||||
.sp
|
||||
.SH "WWW"
|
||||
http://wmfs\.sangor\.net/
|
||||
.sp
|
||||
76
wmfs.1.txt
Normal file
76
wmfs.1.txt
Normal file
@ -0,0 +1,76 @@
|
||||
wmfs(1)
|
||||
=======
|
||||
|
||||
NAME
|
||||
----
|
||||
|
||||
wmfs - Windows Manager From Scratch
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
|
||||
*wmfs* [*-v* | *--version*] [*-h* | *--help*] [*-c* | *--config* 'FILE']
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
*Wmfs* is a windows manager for X. You can use Floating and Tiling apps.
|
||||
blahblahblah...
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
*-v*, *--version*::
|
||||
Print version information to standard output, then exit.
|
||||
*-h*, *--help*::
|
||||
Print help information, then exit.
|
||||
*-c*, *--config*::
|
||||
Use an alternate configuration file instead of '$HOME/.wmfsrc'.
|
||||
|
||||
DEFAULT MOUSE BINDINGS
|
||||
----------------------
|
||||
|
||||
Type de bind.
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
*touche + truc* on XYZ::
|
||||
Description.
|
||||
|
||||
|
||||
Autre type de bind.
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
*truc + machin*::
|
||||
Desc.
|
||||
|
||||
DEFAULT KEY BINDINGS
|
||||
---------------------
|
||||
|
||||
Type de bind.
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
*touche + truc* on XYZ::
|
||||
Description.
|
||||
|
||||
Autre type de bind.
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
*truc + machin*::
|
||||
Desc.
|
||||
|
||||
|
||||
CONFIGURATION
|
||||
-------------
|
||||
*Wmfs* is configured by '$HOME/.wmfsrc'
|
||||
|
||||
BUGS
|
||||
----
|
||||
Know bug list here.
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
Marc Lagrange <markocpc@gmail.com> for the build system and Gentoo ebuilds.
|
||||
Martin Duquesnoy <tonmail> for the code.
|
||||
|
||||
WWW
|
||||
---
|
||||
http://wmfs.sangor.net/
|
||||
Loading…
x
Reference in New Issue
Block a user