From c169bcb5d268bf11f62d9f81b3eed66673062df7 Mon Sep 17 00:00:00 2001 From: Matteo Cypriani Date: Fri, 2 Aug 2013 10:19:45 -0400 Subject: [PATCH] [doc] CMake: don't quit if txt2tags is not found Don't return if txt2tags is not found, so that Doxygen-generated man pages can be built. --- doc/CMakeLists.txt | 90 +++++++++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 44 deletions(-) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 9a63e5b..d7c0552 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -9,57 +9,59 @@ # distributed along with this file, either separately or by replacing # this notice by the COPYRIGHT.t2t file's contents. + +set(MAN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/man") +add_custom_target(doc ALL true) + + +### txt2tags manual pages ### + # Make sure txt2tags is available find_package(Txt2tags) if (NOT TXT2TAGS_FOUND) message(WARNING - "Dependency missing to generate OwlPS' documentation: txt2tags") - return() + "Couldn't find txt2tags: disabling generation of txt2tags-based man pages") +else() + + set(PREPROC_MAN ./preproc-man.sh) + + function(add_manpage PAGENAME SECTION) + set(OUTPUT_DIRECTORY "${MAN_OUTPUT_DIRECTORY}/man${SECTION}") + set(SOURCE ${PAGENAME}.t2t) + set(TARGETNAME ${PAGENAME}.${SECTION}) + set(TARGET "${OUTPUT_DIRECTORY}/${TARGETNAME}") + + # Create the output directory + # Note: this is done only when first calling cmake and when rebuilding + # cache; it would be nice if it could be called every time, but there + # doesn't seem to be any simple solution. + file(MAKE_DIRECTORY "${OUTPUT_DIRECTORY}") + + # Command to generate the man page + add_custom_command( + OUTPUT "${TARGET}" + COMMAND "${PREPROC_MAN}" "${SOURCE}" | "${TXT2TAGS_EXECUTABLE}" -q --infile=- --outfile="${TARGET}" -t man + DEPENDS "${SOURCE}" + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + COMMENT "Generating ${TARGETNAME}") + + # Set up the target + add_custom_target(${TARGETNAME} true DEPENDS "${TARGET}") + + # Add the target to the "doc" meta-target + add_dependencies(doc "${TARGETNAME}") + endfunction() + + add_manpage(owlps 7) + add_manpage(owlps-architecture 7) + add_manpage(owlps-deployment 7) + add_manpage(owlps-client 1) + add_manpage(owlps-listenerd 1) + add_manpage(owlps-aggregatord 1) + endif() -### Man pages ### - -set(MAN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/man") -set(PREPROC_MAN ./preproc-man.sh) - -add_custom_target(doc ALL true) - -function(add_manpage PAGENAME SECTION) - set(OUTPUT_DIRECTORY "${MAN_OUTPUT_DIRECTORY}/man${SECTION}") - set(SOURCE ${PAGENAME}.t2t) - set(TARGETNAME ${PAGENAME}.${SECTION}) - set(TARGET "${OUTPUT_DIRECTORY}/${TARGETNAME}") - - # Create the output directory - # Note: this is done only when first calling cmake and when rebuilding - # cache; it would be nice if it could be called every time, but there - # doesn't seem to be any simple solution. - file(MAKE_DIRECTORY "${OUTPUT_DIRECTORY}") - - # Command to generate the man page - add_custom_command( - OUTPUT "${TARGET}" - COMMAND "${PREPROC_MAN}" "${SOURCE}" | "${TXT2TAGS_EXECUTABLE}" -q --infile=- --outfile="${TARGET}" -t man - DEPENDS "${SOURCE}" - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - COMMENT "Generating ${TARGETNAME}") - - # Set up the target - add_custom_target(${TARGETNAME} true DEPENDS "${TARGET}") - - # Add the target to the "doc" meta-target - add_dependencies(doc "${TARGETNAME}") -endfunction() - -add_manpage(owlps 7) -add_manpage(owlps-architecture 7) -add_manpage(owlps-deployment 7) -add_manpage(owlps-client 1) -add_manpage(owlps-listenerd 1) -add_manpage(owlps-aggregatord 1) - - ### Doxygen-generated man pages ### if (NOT DOXYGEN_FOUND)