[cmake] simplify manpage generation

This commit is contained in:
Armin Novak
2023-12-15 10:28:03 +01:00
committed by akallabeth
parent 4dc7399fbc
commit a7eeb8e1ba
3 changed files with 13 additions and 25 deletions

View File

@@ -104,3 +104,7 @@ set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Client/Common")
if(BUILD_TESTING)
add_subdirectory(test)
endif()
if (WITH_MANPAGES)
add_subdirectory(man)
endif()

View File

@@ -0,0 +1,3 @@
add_executable(generate_argument_docbook
generate_argument_docbook.c
)

View File

@@ -22,47 +22,28 @@ function(generate_and_install_freerdp_man_from_xml manpage dependencies)
configure_file(${manpage}.xml.in ${manpage}.xml @ONLY IMMEDIATE)
# Compile the helper tool with default compiler settings.
# We need the include paths though.
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
set(GENERATE_INCLUDES "")
foreach(dir ${dirs})
set(GENERATE_INCLUDES ${GENERATE_INCLUDES} -I${dir})
endforeach(dir)
set(dep_SRC)
set(deb_BIN)
foreach(dep ${dependencies})
set(cur_SRC ${CMAKE_CURRENT_SOURCE_DIR}/${dep})
set(cur_BIN ${CMAKE_CURRENT_BINARY_DIR}/${dep})
list(APPEND dep_SRC ${cur_SRC})
list(APPEND dep_BIN ${cur_BIN})
add_custom_command(
OUTPUT ${cur_BIN}
COMMAND ${CMAKE_COMMAND} -E copy ${cur_SRC} ${cur_BIN}
DEPENDS ${cur_SRC}
VERBATIM
)
endforeach()
add_custom_command(
OUTPUT ${manpage}
COMMAND ${CMAKE_C_COMPILER} ${GENERATE_INCLUDES}
${CMAKE_SOURCE_DIR}/client/common/man/generate_argument_docbook.c
-o ${CMAKE_CURRENT_BINARY_DIR}/generate_argument_docbook
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/generate_argument_docbook
COMMAND ${XSLTPROC_EXECUTABLE} ${DOCBOOKXSL_DIR}/manpages/docbook.xsl ${manpage}.xml
OUTPUT ${manpage}
COMMAND ${CMAKE_BINARY_DIR}/client/common/man/generate_argument_docbook
COMMAND ${XSLTPROC_EXECUTABLE} --path ${CMAKE_CURRENT_SOURCE_DIR} ${DOCBOOKXSL_DIR}/manpages/docbook.xsl ${manpage}.xml
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS
${CMAKE_CURRENT_BINARY_DIR}/${manpage}.xml
${dep_BIN}
)
add_custom_target(
${manpage}.manpage ALL
DEPENDS
${manpage}
${manpage}.xml
${manpage}.xml.in
generate_argument_docbook
)
install_freerdp_man(${CMAKE_CURRENT_BINARY_DIR}/${manpage} 1)
endif()