# Copyright (C) 2020 KeePassXC Team # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 or (at your option) # version 3 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . find_program(ASCIIDOCTOR_EXE asciidoctor) if(NOT ASCIIDOCTOR_EXE) message(FATAL_ERROR "asciidoctor is required to build documentation") endif() message(STATUS "Using asciidoctor: ${ASCIIDOCTOR_EXE}") set(DOC_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(OUT_DIR ${CMAKE_CURRENT_BINARY_DIR}) set(REV -a revnumber=${KEEPASSXC_VERSION}) # Build html documentation on all platforms # NOTE: Combine into one long command to prevent MSVC from failing to build all docs file(GLOB doc_depends ${DOC_DIR}/*.adoc ${DOC_DIR}/topics/* ${DOC_DIR}/styles/* ${DOC_DIR}/images/*) add_custom_command( OUTPUT KeePassXC_GettingStarted.html KeePassXC_UserGuide.html KeePassXC_KeyboardShortcuts.html COMMAND ${ASCIIDOCTOR_EXE} -D ${OUT_DIR} -o KeePassXC_GettingStarted.html ${REV} ${DOC_DIR}/GettingStarted.adoc && ${ASCIIDOCTOR_EXE} -D ${OUT_DIR} -o KeePassXC_UserGuide.html ${REV} ${DOC_DIR}/UserGuide.adoc && ${ASCIIDOCTOR_EXE} -D ${OUT_DIR} -o KeePassXC_KeyboardShortcuts.html ${REV} ${DOC_DIR}/topics/KeyboardShortcuts.adoc DEPENDS ${doc_depends} VERBATIM) add_custom_target(docs ALL DEPENDS KeePassXC_GettingStarted.html KeePassXC_UserGuide.html KeePassXC_KeyboardShortcuts.html) install(FILES ${OUT_DIR}/KeePassXC_GettingStarted.html ${OUT_DIR}/KeePassXC_UserGuide.html ${OUT_DIR}/KeePassXC_KeyboardShortcuts.html DESTINATION ${DATA_INSTALL_DIR}/docs) # Build Man Pages on Linux and macOS if(UNIX) add_custom_command(OUTPUT keepassxc.1 keepassxc-cli.1 COMMAND ${ASCIIDOCTOR_EXE} -D ${OUT_DIR} -b manpage ${REV} ./man/keepassxc.1.adoc COMMAND ${ASCIIDOCTOR_EXE} -D ${OUT_DIR} -b manpage ${REV} ./man/keepassxc-cli.1.adoc DEPENDS ${DOC_DIR}/man/keepassxc.1.adoc ${DOC_DIR}/man/keepassxc-cli.1.adoc WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} VERBATIM) add_custom_target(manpages ALL DEPENDS keepassxc.1 keepassxc-cli.1) install(FILES ${OUT_DIR}/keepassxc.1 ${OUT_DIR}/keepassxc-cli.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1/) endif()