From 41a8518a01e29f39ca075de24e83cf0e9cd53fc1 Mon Sep 17 00:00:00 2001 From: Martin Koch Date: Mon, 22 Jun 2020 09:54:39 +0200 Subject: build: improve handling of WITH_DOCUMENTATION option Signed-off-by: Martin Koch --- CMakeLists.txt | 20 +++++++++++--------- docx/Doxyfile.in | 4 ++-- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ca4cbda..9843a19 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,9 +43,6 @@ option( WITH_DOCUMENTATION option( WITH_DLT "Enable automotive-DLT Support" ON ) -option( WITH_DOCUMENTATION - "Build together with Doxygen Documentation" OFF ) - option ( WITH_SYSTEMD_WATCHDOG "Build with systemD support & watchdog" ON) @@ -87,6 +84,9 @@ set(TEST_EXECUTABLE_INSTALL_PATH ${CMAKE_INSTALL_BINDIR} set(DOC_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/doc/AudioManager CACHE STRINGS "The doxygen documentation will be placed here") +if (DEFINED GEN_DOC_DIR) # legacy alias + set(DOC_OUTPUT_PATH ${GEN_DOC_DIR}) +endif(DEFINED GEN_DOC_DIR) set(AM_SHARE_FOLDER ${CMAKE_INSTALL_DATAROOTDIR}/audiomanager CACHE STRINGS "The share folder for the AM. Some DBus xmls will be placed here and so on") @@ -118,7 +118,6 @@ set(AUDIOMANAGER_UTILITIES ${CMAKE_SOURCE_DIR}/AudioManagerUtilities) set(AUDIOMANAGER_CORE ${CMAKE_SOURCE_DIR}/AudioManagerCore) set(AUDIOMANAGER_CORE_INCLUDE ${AUDIOMANAGER_CORE}/include) set(DOXY_PROTOTYPE ${CMAKE_SOURCE_DIR}/cmake/DoxyFile.in) -set(DOXY_FILE ${CMAKE_CURRENT_BINARY_DIR}/DoxyFile) set(AUDIOMANAGER_DAEMON_FOLDER ${CMAKE_SOURCE_DIR}/AudioManagerDaemon) set(GOOGLE_MOCK_PROJECT_FOLDER ${CMAKE_SOURCE_DIR}/googleMock) set(TCLAP_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/tclap-1.2.1/include) @@ -177,7 +176,6 @@ write_basic_package_version_file( VERSION ${DAEMONVERSION} COMPATIBILITY SameMajorVersion ) -configure_file( ${CMAKE_SOURCE_DIR}/docx/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/DoxyFile ) configure_file( ${CMAKE_SOURCE_DIR}/cmake/audiomanagerconfig.h.in ${CMAKE_BINARY_DIR}/include/audiomanagerconfig.h ) configure_file( ${CMAKE_SOURCE_DIR}/cmake/audiomanager.pc.in ${CMAKE_BINARY_DIR}/audiomanager.pc @ONLY ) @@ -203,11 +201,12 @@ install(DIRECTORY ${CMAKE_SOURCE_DIR}/tclap-1.2.1/include/tclap if(WITH_DOCUMENTATION) find_package(Doxygen) - configure_file(${DOXY_FILE} ${DOC_OUTPUT_PATH}/Doxyfile @ONLY IMMEDIATE) + set(DOXY_FILE ${CMAKE_CURRENT_BINARY_DIR}/DoxyFile) + configure_file( ${CMAKE_SOURCE_DIR}/docx/Doxyfile.in ${DOXY_FILE} @ONLY IMMEDIATE) configure_file("README.html" ${DOC_OUTPUT_PATH}/html/README.html) add_custom_target (AudioManangerDoku ALL - COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH} - SOURCES ${CMAKE_SOURCE_DIR} ${DOC_OUTPUT_PATH}/Doxyfile + COMMAND ${DOXYGEN_EXECUTABLE} ${DOXY_FILE} WORKING_DIRECTORY ${DOC_OUTPUT_PATH} + SOURCES ${CMAKE_SOURCE_DIR} ${DOXY_FILE} ) find_program(ASCIIDOC asciidoc asciidoc.py) @@ -225,7 +224,10 @@ message(STATUS) message(STATUS "${PROJECT_NAME} Configuration:") message(STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}") message(STATUS "CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}") -message(STATUS "BUILD_DOCUMENTATION = ${WITH_DOCUMENTATION}") +message(STATUS "WITH_DOCUMENTATION = ${WITH_DOCUMENTATION}") +if(WITH_DOCUMENTATION) + message(STATUS "DOC_OUTPUT_PATH = ${DOC_OUTPUT_PATH}") +endif() message(STATUS "WITH_DLT = ${WITH_DLT}") message(STATUS "WITH_TESTS = ${WITH_TESTS}") message(STATUS "WITH_SYSTEMD_WATCHDOG = ${WITH_SYSTEMD_WATCHDOG}") diff --git a/docx/Doxyfile.in b/docx/Doxyfile.in index 802d5f8..eae6803 100644 --- a/docx/Doxyfile.in +++ b/docx/Doxyfile.in @@ -58,7 +58,7 @@ PROJECT_LOGO = # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. -OUTPUT_DIRECTORY = "@GEN_DOC_DIR@" +OUTPUT_DIRECTORY = "@DOC_OUTPUT_PATH@" # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and @@ -754,7 +754,7 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = @CMAKE_CURRENT_SOURCE_DIR@ +INPUT = @CMAKE_CURRENT_SOURCE_DIR@ # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -- cgit v1.2.1