commit 4714262c3d6a07d1d48a7fab44316280094e9589 parent c8599dba0247929ae0d48a0b41486f45321b4190 Author: Ben Boeckel <mathstuf@gmail.com> Date: Thu, 12 Nov 2015 21:29:25 -0500 cmake: simplify manpage generation Diffstat:
| M | CMakeLists.txt | | | 53 | ++++++++++++++++++++++++++++------------------------- |
1 file changed, 28 insertions(+), 25 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt @@ -72,31 +72,34 @@ INSTALL( DESTINATION /etc/sway/ ) -ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.1 - COMMAND ${A2X_COMMAND} --no-xmllint --doctype manpage --format manpage - -D ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ${CMAKE_CURRENT_SOURCE_DIR}/sway.1.txt - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/sway.1.txt -) - -ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.5 - COMMAND ${A2X_COMMAND} --no-xmllint --doctype manpage --format manpage - -D ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ${CMAKE_CURRENT_SOURCE_DIR}/sway.5.txt - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/sway.5.txt -) - -ADD_CUSTOM_TARGET(man ALL - DEPENDS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.1 - DEPENDS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.5) - -INSTALL( - FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.1 - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1 -) - -INSTALL( - FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.5 - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man5 -) +add_custom_target(man ALL) + +function (add_manpage name section) + add_custom_command( + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${name}.${section}" + COMMAND "${A2X_COMMAND}" + --no-xmllint + --doctype manpage + --format manpage + -D "${CMAKE_CURRENT_BINARY_DIR}" + "${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt" + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt" + COMMENT "Generating manpage for ${name}.${section}") + + add_custom_target("man-${name}.${section}" + DEPENDS + "${CMAKE_CURRENT_BINARY_DIR}/${name}.${section}") + add_dependencies(man + "man-${name}.${section}") + + install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/${name}.${section}" + DESTINATION "share/man/man${section}" + COMPONENT documentation) +endfunction () + +add_manpage(sway 1) +add_manpage(sway 5) INSTALL( FILES ${PROJECT_SOURCE_DIR}/sway.desktop