##generate the doxyfile to stdout execute_process(COMMAND @DOXYGEN_EXECUTABLE@ -s -g - OUTPUT_VARIABLE doxygen_out) ##set any doxygen tag according to our needs, leave the rest untouched (= default) # never use the absolute path for INPUT, otherwise call graphs might be generated with absolute # paths inside. Use relative path and execute doxygen from within install dir WORKING_DIRECTORY # We could just use @CMAKE_CURRENT_SOURCE_DIR@/input to include all *.md files, but this way we can specify their order for the index string(REGEX REPLACE "(INPUT +[=])" "\\1 codec ddlrepresentation mapping serialization @CMAKE_CURRENT_SOURCE_DIR@/../README.md \ @CURRENT_IMPORTS_DIR@/licenses/list_used_licenses.md \ @CMAKE_CURRENT_SOURCE_DIR@/changelog.md @CMAKE_CURRENT_SOURCE_DIR@/input/ddl_specification.md \ @CMAKE_CURRENT_SOURCE_DIR@/input/oo-ddl.md \ @CMAKE_CURRENT_SOURCE_DIR@/input/codec.md @CMAKE_CURRENT_SOURCE_DIR@/input/ddl_generators.md \ @CMAKE_CURRENT_SOURCE_DIR@/input/mapping_specification.md @CMAKE_CURRENT_SOURCE_DIR@/input/mpl.md \ @CMAKE_CURRENT_SOURCE_DIR@/input/migration_4_1.md \ @CMAKE_CURRENT_SOURCE_DIR@/input/used_licenses.md" doxygen_out ${doxygen_out}) string(REGEX REPLACE "(RECURSIVE +[=]) NO" "\\1 YES" doxygen_out ${doxygen_out}) #string(REGEX REPLACE "(FILE_PATTERNS +[=])" # "\\1 readme.txt " doxygen_out ${doxygen_out}) string(REGEX REPLACE "(PROJECT_NAME +[=]) \"My Project\"" "\\1 \"ddl_library\"" doxygen_out ${doxygen_out}) string(REGEX REPLACE "(PROJECT_NUMBER +[=])" "\\1 v@PROJECT_VERSION@" doxygen_out ${doxygen_out}) string(REGEX REPLACE "(OUTPUT_DIRECTORY +[=])" "\\1 @CMAKE_INSTALL_PREFIX@/doc" doxygen_out ${doxygen_out}) string(REGEX REPLACE "(SHORT_NAMES +[=]) NO" "\\1 YES" doxygen_out ${doxygen_out}) string(REGEX REPLACE "(GENERATE_LATEX +[=]) YES" "\\1 NO" doxygen_out ${doxygen_out}) string(REGEX REPLACE "(HAVE_DOT +[=]) NO" "\\1 @DOXYGEN_DOT_FOUND@" doxygen_out ${doxygen_out}) string(REGEX REPLACE "(DOT_PATH +[=])" "\\1 @DOXYGEN_DOT_EXECUTABLE@" doxygen_out ${doxygen_out}) string(REGEX REPLACE "(PREDEFINED +[=])" "\\1 ${_predefined}" doxygen_out ${doxygen_out}) string(REGEX REPLACE "(EXAMPLE_PATH +[=])" "\\1 ../doc/license" doxygen_out ${doxygen_out}) string(REGEX REPLACE "(GENERATE_TREEVIEW +[=]) NO" "\\1 YES" doxygen_out ${doxygen_out}) ##generate the documentation with doxygen file(WRITE @CMAKE_CURRENT_BINARY_DIR@/Doxyfile ${doxygen_out}) execute_process(COMMAND @DOXYGEN_EXECUTABLE@ @CMAKE_CURRENT_BINARY_DIR@/Doxyfile WORKING_DIRECTORY @CMAKE_INSTALL_PREFIX@/include/) unset(_predefined)