diff options
Diffstat (limited to 'host/docs/CMakeLists.txt')
-rw-r--r-- | host/docs/CMakeLists.txt | 87 |
1 files changed, 64 insertions, 23 deletions
diff --git a/host/docs/CMakeLists.txt b/host/docs/CMakeLists.txt index 240a534db..cf691a787 100644 --- a/host/docs/CMakeLists.txt +++ b/host/docs/CMakeLists.txt @@ -144,34 +144,75 @@ set(man_page_sources ######################################################################## # Setup man pages ######################################################################## -find_package(GZip) - # No elegant way in CMake to reverse a boolean if(NOT WIN32) set(NOT_WIN32 TRUE) endif(NOT WIN32) -LIBUHD_REGISTER_COMPONENT("Man Pages" ENABLE_MAN_PAGES ON "GZIP_FOUND;NOT_WIN32" OFF OFF) +set(MAN_PAGES_DEPS "NOT_WIN32") + +# check to see if ENABLE_MAN_PAGE_COMPRESSION was set in the cmake +# call, one way or the other +if(ENABLE_MAN_PAGE_COMPRESSION) + set(MAN_PAGE_COMPRESSION_FORCE TRUE) +else() + set(MAN_PAGE_COMPRESSION_FORCE FALSE) +endif() + +option(ENABLE_MAN_PAGE_COMPRESSION "Compress Man Pages if installed." ON) + +message(STATUS "") +if(ENABLE_MAN_PAGE_COMPRESSION) + find_package(GZip QUIET) + if(GZIP_FOUND) + message(STATUS "Found GZip: ${GZIP_EXECUTABLE}") + message(STATUS "") + list(APPEND MAN_PAGES_DEPS "GZIP_FOUND") + message(STATUS "Compressed Man Pages enabled") + else() + message(STATUS "GZip compression program - not found") + message(STATUS "") + # was using compressed man pages forced? + if(MAN_PAGE_COMPRESSION_FORCE) + # yes: GZIP wasn't found + # force failure in LIBUHD_REGISTER_COMPONENT for ENABLE_MAN_PAGES + list(APPEND MAN_PAGES_DEPS "GZIP_FOUND") + message(STATUS "Compressed Man Pages force enabled") + else() + # no not forced; just don't use compression + message(STATUS "Compressed Man Pages optional; disabling") + endif() + endif() +else() + message(STATUS "Compressed Man Pages force disabled") +endif(ENABLE_MAN_PAGE_COMPRESSION) +message(STATUS " Override with -DENABLE_MAN_PAGE_COMPRESSION=ON/OFF") + +LIBUHD_REGISTER_COMPONENT("Man Pages" ENABLE_MAN_PAGES ON "${MAN_PAGES_DEPS}" OFF OFF) if(ENABLE_MAN_PAGES) - #Generate man pages - foreach(manfile ${man_page_sources}) - #make the gzip file depend on the text file - string(REPLACE ".1" "" PROGRAM_NAME "${manfile}") - set(gzfile "${CMAKE_CURRENT_BINARY_DIR}/${manfile}.gz") - set(manfile "${CMAKE_CURRENT_SOURCE_DIR}/${manfile}") - add_custom_command( - OUTPUT ${gzfile} - DEPENDS ${manfile} - COMMAND ${GZIP_EXECUTABLE} -9 -cf ${manfile} > ${gzfile} - COMMENT "Generating ${PROGRAM_NAME} man page" - ) - - #make the man page target depend on the gz file - list(APPEND man_page_gz_files ${gzfile}) - UHD_INSTALL(FILES ${gzfile} DESTINATION ${PKG_MAN_DIR} COMPONENT manpages) - endforeach(manfile ${man_page_sources}) - - #make the man pages a build-time dependency - add_custom_target(man_page_gzips ALL DEPENDS ${man_page_gz_files}) + #Generate man pages; either compressed or not + if(ENABLE_MAN_PAGE_COMPRESSION) + # compress man pages + foreach(manfile ${man_page_sources}) + #make the gzip file depend on the text file + string(REPLACE ".1" "" PROGRAM_NAME "${manfile}") + set(gzfile "${CMAKE_CURRENT_BINARY_DIR}/${manfile}.gz") + set(manfile "${CMAKE_CURRENT_SOURCE_DIR}/${manfile}") + add_custom_command( + OUTPUT ${gzfile} + DEPENDS ${manfile} + COMMAND ${GZIP_EXECUTABLE} -9 -cf ${manfile} > ${gzfile} + COMMENT "Generating ${PROGRAM_NAME} man page" + ) + #make the man page target depend on the gz file + list(APPEND man_page_gz_files ${gzfile}) + endforeach(manfile ${man_page_sources}) + #make the man pages a build-time dependency + UHD_INSTALL(FILES ${man_page_gz_files} DESTINATION ${PKG_MAN_DIR} COMPONENT manpages) + add_custom_target(man_page_gzips ALL DEPENDS ${man_page_gz_files}) + else(ENABLE_MAN_PAGE_COMPRESSION) + # uncompressed man pages; just install them + UHD_INSTALL(FILES ${man_page_sources} DESTINATION ${PKG_MAN_DIR} COMPONENT manpages) + endif(ENABLE_MAN_PAGE_COMPRESSION) endif(ENABLE_MAN_PAGES) |