find_program(HELP2MAN help2man DOC "Location of the help2man program") find_program(GZIP gzip DOC "Location of the gzip program") mark_as_advanced(HELP2MAN) mark_as_advanced(GZIP) include(GNUInstallDirs) if(HELP2MAN AND GZIP) set(H2M_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.supplemental.groff") set(MAN_PAGE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.1") set(MAN_FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.1.gz") add_custom_command( OUTPUT ${MAN_FILE} COMMAND ${HELP2MAN} -N -i ${H2M_FILE} -o ${MAN_PAGE} "\"${PROJECT_BINARY_DIR}/${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}\"" COMMAND ${GZIP} -f -9 ${MAN_PAGE} MAIN_DEPENDENCY ${H2M_FILE} COMMENT "Building man page" VERBATIM ) add_custom_target(manpage ALL DEPENDS ${MAN_FILE} ${PROJECT_NAME}) install(FILES ${MAN_FILE} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) else(HELP2MAN AND GZIP) message("WARNING: One of the following is missing: help2man, gzip; man page will not be generated") endif(HELP2MAN AND GZIP)