diff --git a/modules/ECMAddQch.cmake b/modules/ECMAddQch.cmake --- a/modules/ECMAddQch.cmake +++ b/modules/ECMAddQch.cmake @@ -20,6 +20,7 @@ # [SOURCE_DIRS [ [...]]] # [SOURCES [ [...]]] # |MD_MAINPAGE ] +# [INCLUDE_DIRS [ [...]]] # [IMAGE_DIRS [ [...]]] # [EXAMPLE_DIRS [ [...]]] # [ORG_DOMAIN ] @@ -79,6 +80,9 @@ # page. This page will overrule any ``\mainpage`` command in the included # sources. # +# INCLUDE_DIRS specifies the dirs which should be searched for included +# headers. Dirs can be relative to the current source dir. Since 5.63. +# # IMAGE_DIRS specifies the dirs which contain images that are included in the # documentation. Dirs can be relative to the current source dir. # @@ -403,7 +407,7 @@ # Parse arguments set(options VERBOSE) set(oneValueArgs NAME BASE_NAME QCH_INSTALL_DESTINATION TAGFILE_INSTALL_DESTINATION COMPONENT VERSION NAMESPACE MD_MAINPAGE ORG_DOMAIN CONFIG_TEMPLATE) - set(multiValueArgs SOURCE_DIRS SOURCES IMAGE_DIRS EXAMPLE_DIRS PREDEFINED_MACROS BLANK_MACROS LINK_QCHS) + set(multiValueArgs SOURCE_DIRS SOURCES INCLUDE_DIRS IMAGE_DIRS EXAMPLE_DIRS PREDEFINED_MACROS BLANK_MACROS LINK_QCHS) cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) # check required args @@ -487,6 +491,14 @@ set(ECM_QCH_DOXYGEN_OUTPUTDIR "\"${_apidox_builddir}\"") set(ECM_QCH_DOXYGEN_TAGFILE "\"${_tags_buildpath}\"") set(ECM_QCH_DOXYGEN_LAYOUTFILE "\"${_doxygen_layout_file}\"") + set(ECM_QCH_DOXYGEN_INCLUDE_PATH) + foreach(_include_DIR IN LISTS ARGS_INCLUDE_DIRS) + if (NOT IS_ABSOLUTE ${_include_DIR}) + set(_include_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${_include_DIR}") + endif() + # concat dirs separated by a break, it is no issue that first has also a leading break + set(ECM_QCH_DOXYGEN_INCLUDE_PATH "${ECM_QCH_DOXYGEN_INCLUDE_PATH} \\\n\"${_include_DIR}\"") + endforeach() set(ECM_QCH_DOXYGEN_IMAGEDIRS) foreach(_image_DIR IN LISTS ARGS_IMAGE_DIRS) if (NOT IS_ABSOLUTE ${_image_DIR}) diff --git a/modules/ECMQchDoxygen.config.in b/modules/ECMQchDoxygen.config.in --- a/modules/ECMQchDoxygen.config.in +++ b/modules/ECMQchDoxygen.config.in @@ -146,7 +146,7 @@ MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES -INCLUDE_PATH = +INCLUDE_PATH = @ECM_QCH_DOXYGEN_INCLUDE_PATH@ INCLUDE_FILE_PATTERNS = EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES