blob: 1b0978cc041e85ad24ff87ae198d1ea38c39dc1a [file] [log] [blame]
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=\"swift ${SWIFT_VERSION}\""
"--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()