diff --git a/scripts/cmake/DocumentationSetup.cmake b/scripts/cmake/DocumentationSetup.cmake index 144bb533951ef6fdab7e771e766317e60f9c4a13..835017459fe2e55c8226410425126292bb7c0323 100644 --- a/scripts/cmake/DocumentationSetup.cmake +++ b/scripts/cmake/DocumentationSetup.cmake @@ -38,4 +38,37 @@ if(DOXYGEN_FOUND) configure_file(Documentation/Doxyfile.in ${PROJECT_BINARY_DIR}/Doxyfile) + if (NOT BASH_TOOL_PATH STREQUAL "BASH_TOOL_PATH-NOTFOUND" + AND NOT PYTHON_EXECUTABLE STREQUAL "PYTHON_EXECUTABLE-NOTFOUND") + set(doc_use_external_tools TRUE) + else() + set(doc_use_external_tools FALSE) + endif() + + # TODO that will always transform all of the input files no matter if they changed + # maybe this behaviour can be changed to on-demand processing + add_custom_target(internal_pre_doc + ${CMAKE_COMMAND} + -DPROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} + -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} + -Ddoc_use_external_tools=${doc_use_external_tools} + -P ${PROJECT_SOURCE_DIR}/scripts/cmake/DocumentationProjectFile.cmake + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + COMMENT "Generating project file documentation hierarchy." VERBATIM) + add_dependencies(doc internal_pre_doc) + + # TODO also check python + if (doc_use_external_tools) + set(data_dir "${PROJECT_SOURCE_DIR}/Tests/Data") + add_custom_target(internal_pre_doc2 + ${BASH_TOOL_PATH} + "${PROJECT_SOURCE_DIR}/scripts/doc/generate-project-file-doc-qa.sh" + ${PROJECT_SOURCE_DIR} + ${PROJECT_BINARY_DIR} + ${data_dir} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + COMMENT "Generating project file documentation quality assurance pages." VERBATIM) + add_dependencies(doc internal_pre_doc2) + add_dependencies(internal_pre_doc2 internal_pre_doc) + endif() endif()