From 9eba8ae73bd1809b8c7da4af01ecbe5a9fed4d83 Mon Sep 17 00:00:00 2001
From: Dan Vonk <daniel.vonk@tum.de>
Date: Tue, 2 Apr 2024 15:12:51 +0200
Subject: [PATCH] Move doc scripts into own directory

---
 CMakeLists.txt      | 42 ++++--------------------------------------
 docs/CMakeLists.txt | 37 +++++++++++++++++++++++++++++++++++++
 2 files changed, 41 insertions(+), 38 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index d06d873..47c0595 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,6 +16,8 @@ option(SASS_USE_WERROR "Switch on -Werror" OFF)
 option(SASS_ENABLE_SANITIZERS "Enable sanitizers" OFF)
 option(SASS_BUILD_DOCS "Build documentation" OFF)
 
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
 if(SASS_ENABLE_SANITIZERS)
     add_definitions(-DSANITIZERS_ENABLED)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
@@ -46,17 +48,12 @@ if(SASS_USE_WERROR)
     add_werror(sassena)
 endif()
 
-if (SASS_BUILD_DOCS)
-    add_subdirectory(docs)
-endif()
 
 include(ExternalProject)
 include(FeatureSummary)
 include(GenerateExportHeader)
 include(GNUInstallDirs)
 
-set(CMAKE_INCLUDE_CURRENT_DIR ON)
-
 configure_file(cmake/SassenaConfig.hpp.cmake ${CMAKE_CURRENT_BINARY_DIR}/generated/SassenaConfig.hpp @ONLY)
 
 if(USE_DEVELOPER_MODE)
@@ -76,37 +73,6 @@ endif()
 add_subdirectory(vendor)
 add_subdirectory(src)
 
-if(DOXYGEN_FOUND)
-    set(PROJECT_NAME "Sassena")
-    set(DOXYGEN_OUTPUT_DIRECTORY doxygen)
-    set(DOXYGEN_WARN_LOGFILE doxygen/doxygen.log)
-    set(DOXYGEN_COLLABORATION_GRAPH YES)
-    set(DOXYGEN_EXTRACT_ALL YES)
-    set(DOXYGEN_CLASS_DIAGRAMS YES)
-    set(DOXYGEN_HIDE_UNDOC_RELATIONS NO)
-    set(DOXYGEN_HAVE_DOT YES)
-    set(DOXYGEN_CLASS_GRAPH YES)
-    set(DOXYGEN_CALL_GRAPH YES)
-    set(DOXYGEN_CALLER_GRAPH YES)
-    set(DOXYGEN_COLLABORATION_GRAPH YES)
-    set(DOXYGEN_BUILTIN_STL_SUPPORT YES)
-    set(DOXYGEN_EXTRACT_PRIVATE YES)
-    set(DOXYGEN_EXTRACT_PACKAGE YES)
-    set(DOXYGEN_EXTRACT_STATIC YES)
-    set(DOXYGEN_EXTRACT_LOCALMETHODS YES)
-    set(DOXYGEN_UML_LOOK YES)
-    set(DOXYGEN_UML_LIMIT_NUM_FIELDS 50)
-    set(DOXYGEN_TEMPLATE_RELATIONS YES)
-    set(DOXYGEN_DOT_GRAPH_MAX_NODES 100)
-    set(DOXYGEN_MAX_DOT_GRAPH_DEPTH 0)
-    set(DOXYGEN_FILE_PATTERNS += *.h *.dox)
-    set(DOXYGEN_IMAGE_PATH = ${CMAKE_CURRENT_SOURCE_DIR}/docs/diagrams)
-    set(DOXYGEN_DOT_TRANSPARENT YES)
-    set(DOXYGEN_GENERATE_HTML YES)
-    set(DOXYGEN_GENERATE_MAN NO)
-
-    doxygen_add_docs(
-        sassena_docs ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/docs
-        COMMENT "Generates doxygen documentation"
-    )
+if (SASS_BUILD_DOCS)
+    add_subdirectory(docs)
 endif()
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
index e69de29..93945e5 100644
--- a/docs/CMakeLists.txt
+++ b/docs/CMakeLists.txt
@@ -0,0 +1,37 @@
+if(NOT DOXYGEN_FOUND)
+    message(FATAL_ERROR "Doxygen is needed to build the documentation.")
+endif()
+
+set(PROJECT_NAME "Sassena")
+set(DOXYGEN_OUTPUT_DIRECTORY doxygen)
+set(DOXYGEN_WARN_LOGFILE doxygen/doxygen.log)
+set(DOXYGEN_COLLABORATION_GRAPH YES)
+set(DOXYGEN_EXTRACT_ALL YES)
+set(DOXYGEN_CLASS_DIAGRAMS YES)
+set(DOXYGEN_HIDE_UNDOC_RELATIONS NO)
+set(DOXYGEN_HAVE_DOT YES)
+set(DOXYGEN_CLASS_GRAPH YES)
+set(DOXYGEN_CALL_GRAPH YES)
+set(DOXYGEN_CALLER_GRAPH YES)
+set(DOXYGEN_COLLABORATION_GRAPH YES)
+set(DOXYGEN_BUILTIN_STL_SUPPORT YES)
+set(DOXYGEN_EXTRACT_PRIVATE YES)
+set(DOXYGEN_EXTRACT_PACKAGE YES)
+set(DOXYGEN_EXTRACT_STATIC YES)
+set(DOXYGEN_EXTRACT_LOCALMETHODS YES)
+set(DOXYGEN_UML_LOOK YES)
+set(DOXYGEN_UML_LIMIT_NUM_FIELDS 50)
+set(DOXYGEN_TEMPLATE_RELATIONS YES)
+set(DOXYGEN_DOT_GRAPH_MAX_NODES 100)
+set(DOXYGEN_MAX_DOT_GRAPH_DEPTH 0)
+set(DOXYGEN_FILE_PATTERNS += *.h *.dox)
+set(DOXYGEN_DOT_TRANSPARENT YES)
+set(DOXYGEN_GENERATE_HTML YES)
+set(DOXYGEN_GENERATE_MAN NO)
+
+set(DOXYGEN_IN ${CMAKE_CURRENT_SOURCE_DIR}/docs/sassena-doxyfile)
+
+doxygen_add_docs(
+    sass-doxygen-docs ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}
+    COMMENT "Generates doxygen documentation"
+)
-- 
GitLab