From 8daacc339f2fa67c321a543b3be3fca398df01b1 Mon Sep 17 00:00:00 2001 From: Michele Caini Date: Mon, 10 Mar 2025 09:16:18 +0100 Subject: [PATCH] build: self contained subdirs --- CMakeLists.txt | 6 +-- TODO | 1 + docs/CMakeLists.txt | 100 +++++++++++++++++++++++--------------------- 3 files changed, 54 insertions(+), 53 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fd593bced..597995e60 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -326,9 +326,5 @@ endif() option(ENTT_BUILD_DOCS "Enable building with documentation." OFF) if(ENTT_BUILD_DOCS) - find_package(Doxygen 1.10) - - if(DOXYGEN_FOUND) - add_subdirectory(docs) - endif() + add_subdirectory(docs) endif() diff --git a/TODO b/TODO index cdc11f4dd..8d73cfcd9 100644 --- a/TODO +++ b/TODO @@ -29,3 +29,4 @@ TODO: * built-in no-pagination storage - no_pagination page size as limits::max * any cdynamic to support const ownership construction * allow passing arguments to meta setter/getter (we can fallback on meta invoke probably) +* FetchContent_Populate -> FetchContent_MakeAvailable warnings diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 662fe995d..c6cabad19 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -1,54 +1,58 @@ # Doxygen configuration (documentation) -include(FetchContent) +find_package(Doxygen 1.10) -FetchContent_Declare( - doxygen-awesome-css - GIT_REPOSITORY https://github.com/jothepro/doxygen-awesome-css - GIT_TAG main - GIT_SHALLOW 1 -) +if(DOXYGEN_FOUND) + include(FetchContent) -FetchContent_GetProperties(doxygen-awesome-css) + FetchContent_Declare( + doxygen-awesome-css + GIT_REPOSITORY https://github.com/jothepro/doxygen-awesome-css + GIT_TAG main + GIT_SHALLOW 1 + ) -if(NOT doxygen-awesome-css_POPULATED) - FetchContent_Populate(doxygen-awesome-css) - set(doxygen-awesome-css_INCLUDE_DIR ${doxygen-awesome-css_SOURCE_DIR}) + FetchContent_GetProperties(doxygen-awesome-css) + + if(NOT doxygen-awesome-css_POPULATED) + FetchContent_Populate(doxygen-awesome-css) + set(doxygen-awesome-css_INCLUDE_DIR ${doxygen-awesome-css_SOURCE_DIR}) + endif() + + set(DOXY_SOURCE_DIRECTORY ${EnTT_SOURCE_DIR}/src) + set(DOXY_CSS_DIRECTORY ${doxygen-awesome-css_INCLUDE_DIR}) + set(DOXY_DOCS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + set(DOXY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + + configure_file(doxy.in doxy.cfg @ONLY) + + add_custom_target( + docs ALL + COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxy.cfg + WORKING_DIRECTORY ${EnTT_SOURCE_DIR} + VERBATIM + SOURCES + dox/extra.dox + md/config.md + md/container.md + md/core.md + md/entity.md + md/faq.md + md/lib.md + md/links.md + md/locator.md + md/meta.md + md/poly.md + md/process.md + md/reference.md + md/resource.md + md/signal.md + md/unreal.md + doxy.in + ) + + install( + DIRECTORY ${DOXY_OUTPUT_DIRECTORY}/html + DESTINATION share/${PROJECT_NAME}-${PROJECT_VERSION}/ + ) endif() - -set(DOXY_SOURCE_DIRECTORY ${EnTT_SOURCE_DIR}/src) -set(DOXY_CSS_DIRECTORY ${doxygen-awesome-css_INCLUDE_DIR}) -set(DOXY_DOCS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) -set(DOXY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) - -configure_file(doxy.in doxy.cfg @ONLY) - -add_custom_target( - docs ALL - COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxy.cfg - WORKING_DIRECTORY ${EnTT_SOURCE_DIR} - VERBATIM - SOURCES - dox/extra.dox - md/config.md - md/container.md - md/core.md - md/entity.md - md/faq.md - md/lib.md - md/links.md - md/locator.md - md/meta.md - md/poly.md - md/process.md - md/reference.md - md/resource.md - md/signal.md - md/unreal.md - doxy.in -) - -install( - DIRECTORY ${DOXY_OUTPUT_DIRECTORY}/html - DESTINATION share/${PROJECT_NAME}-${PROJECT_VERSION}/ -)