include(CMakeParseArguments) find_program(POD2MAN pod2man) # Create a target to create a man page from a pod file. # # manpage( # SOURCE foobar.pod # PAGE_HEADER "text" # MAN_FILE_BASENAME foobar # MAN_SECTION N # INSTALL_IN_COMPONENT comp # ) function(manpage) cmake_parse_arguments( MP # prefix "" # options "SOURCE;PAGE_HEADER;MAN_FILE_BASENAME;MAN_SECTION;INSTALL_IN_COMPONENT" # single-value args "" # multi-value args ${ARGN}) if(NOT POD2MAN) message(FATAL_ERROR "Need pod2man installed to generate man page") endif() set(output_file_name "${CMAKE_CURRENT_BINARY_DIR}/${MP_MAN_FILE_BASENAME}.${MP_MAN_SECTION}") add_custom_command_target( unused_var COMMAND "${POD2MAN}" "--section" "${MP_MAN_SECTION}" "--center" "${MP_PAGE_HEADER}" "--release" "--name" "${MP_MAN_FILE_BASENAME}" "--stderr" "${MP_SOURCE}" > "${output_file_name}" OUTPUT "${output_file_name}" DEPENDS "${MP_SOURCE}" ALL) swift_install_in_component("${MP_INSTALL_IN_COMPONENT}" FILES "${output_file_name}" DESTINATION "share/man/man${MP_MAN_SECTION}") endfunction()