12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- # Copyright (C) 2020 KeePassXC Team <team@keepassxc.org>
- #
- # 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 <http://www.gnu.org/licenses/>.
- 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()
|