diff --git a/ChangeLog.txt b/ChangeLog.txt index 7f499f87..5ed7d0d1 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,6 +1,12 @@ Broker: - Fix exporting of executable symbols on BSD when building via makefile. +Build: +- Fix man page building to not absolutely require xsltproc when using CMake. + This now handles the case where we are building from the released tar, or + building from git if xsltproc is available, or building from git if xsltproc + is not available. + 2.0.6 - 2021-01-28 ================== diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt index 98a457d1..2c8b0955 100644 --- a/man/CMakeLists.txt +++ b/man/CMakeLists.txt @@ -1,31 +1,47 @@ +# If we are building from a release tarball, the man pages should already be built, so them. +# If we are building from git, then the man pages will not be built. In this +# case, attempt to find xsltproc, and if found build the man pages. If xsltproc +# could not be found, then the man pages will not be built or installed - +# because the install is optional. + if(NOT WIN32) - find_program(XSLTPROC xsltproc REQUIRED) - if(NOT XSLTPROC) + find_program(XSLTPROC xsltproc OPTIONAL) + if(XSLTPROC) + function(compile_manpage page) + add_custom_command(OUTPUT ${CMAKE_SOURCE_DIR}/man/${page} + COMMAND xsltproc ${CMAKE_SOURCE_DIR}/man/${page}.xml -o ${CMAKE_SOURCE_DIR}/man/ + MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/man/${page}.xml) + add_custom_target(${page} ALL DEPENDS ${CMAKE_SOURCE_DIR}/man/${page}) + endfunction() + + compile_manpage("mosquitto_ctrl.1") + compile_manpage("mosquitto_ctrl_dynsec.1") + compile_manpage("mosquitto_passwd.1") + compile_manpage("mosquitto_pub.1") + compile_manpage("mosquitto_sub.1") + compile_manpage("mosquitto_rr.1") + compile_manpage("libmosquitto.3") + compile_manpage("mosquitto.conf.5") + compile_manpage("mosquitto-tls.7") + compile_manpage("mqtt.7") + compile_manpage("mosquitto.8") + else() message(FATAL_ERROR "xsltproc not found: manpages cannot be built") endif() - function(compile_manpage page) - add_custom_command(OUTPUT ${CMAKE_SOURCE_DIR}/man/${page} - COMMAND xsltproc ${CMAKE_SOURCE_DIR}/man/${page}.xml -o ${CMAKE_SOURCE_DIR}/man/ - MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/man/${page}.xml) - add_custom_target(${page} ALL DEPENDS ${CMAKE_SOURCE_DIR}/man/${page}) - endfunction() - - compile_manpage("mosquitto_ctrl.1") - compile_manpage("mosquitto_ctrl_dynsec.1") - compile_manpage("mosquitto_passwd.1") - compile_manpage("mosquitto_pub.1") - compile_manpage("mosquitto_sub.1") - compile_manpage("mosquitto_rr.1") - compile_manpage("libmosquitto.3") - compile_manpage("mosquitto.conf.5") - compile_manpage("mosquitto-tls.7") - compile_manpage("mqtt.7") - compile_manpage("mosquitto.8") endif() -install(FILES mosquitto_ctrl.1 mosquitto_ctrl_dynsec.1 mosquitto_passwd.1 mosquitto_pub.1 mosquitto_sub.1 mosquitto_rr.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) -install(FILES libmosquitto.3 DESTINATION ${CMAKE_INSTALL_MANDIR}/man3) -install(FILES mosquitto.conf.5 DESTINATION ${CMAKE_INSTALL_MANDIR}/man5) -install(FILES mosquitto-tls.7 mqtt.7 DESTINATION ${CMAKE_INSTALL_MANDIR}/man7) -install(FILES mosquitto.8 DESTINATION ${CMAKE_INSTALL_MANDIR}/man8) +install(FILES + mosquitto_ctrl.1 + mosquitto_ctrl_dynsec.1 + mosquitto_passwd.1 + mosquitto_pub.1 + mosquitto_sub.1 + mosquitto_rr.1 + DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 + OPTIONAL) + +install(FILES libmosquitto.3 DESTINATION ${CMAKE_INSTALL_MANDIR}/man3 OPTIONAL) +install(FILES mosquitto.conf.5 DESTINATION ${CMAKE_INSTALL_MANDIR}/man5 OPTIONAL) +install(FILES mosquitto-tls.7 mqtt.7 DESTINATION ${CMAKE_INSTALL_MANDIR}/man7 OPTIONAL) +install(FILES mosquitto.8 DESTINATION ${CMAKE_INSTALL_MANDIR}/man8 OPTIONAL)