diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt new file mode 100644 index 0000000..b24215b --- /dev/null +++ b/docs/CMakeLists.txt @@ -0,0 +1,32 @@ +find_package(Doxygen) +if (NOT DOXYGEN_FOUND) + message(FATAL_ERROR "Doxygen could not be sourced.") + return() +endif() + +include(FetchContent) +FetchContent_Declare( + doxygen-awesome-css + URL https://github.com/jothepro/doxygen-awesome-css/archive/refs/heads/main.zip +) +FetchContent_MakeAvailable(doxygen-awesome-css) +FetchContent_GetProperties(doxygen-awesome-css SOURCE_DIR AWESOME_CSS_DIR) + +set(DOXYGEN_GENERATE_HTML YES) +set(DOXYGEN_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/docs) +set(DOXYGEN_HTML_EXTRA_STYLESHEET ${AWESOME_CSS_DIR}/doxygen-awesome.css) + +if(ENVNB_SOURCE_FOUND) + message("Using file timestamps...") + doxygen_add_docs(NBEngineDocumentation + ${NB_CORE_SOURCE} ALL + USE_STAMP_FILE + COMMENT "Building documentation" + ) +else() + message("Processing all files...") + doxygen_add_docs(NBEngineDocumentation + ${PROJECT_SOURCE_DIR}/engine ALL + COMMENT "Building documentation" + ) +endif() \ No newline at end of file diff --git a/engine/CMakeLists.txt b/engine/CMakeLists.txt index c511c71..cc3d400 100644 --- a/engine/CMakeLists.txt +++ b/engine/CMakeLists.txt @@ -1,3 +1,11 @@ add_subdirectory(./NBCore) add_subdirectory(./NBEvents) -add_subdirectory(./NBGraphics) \ No newline at end of file +add_subdirectory(./NBGraphics) + +if (ENVNB_CORE_SOURCE OR ENVNB_EVENTS_SOURCE OR ENVNB_GRAPHICS_SOURCE) + set(ENVNB_SOURCE_FOUND ON) +endif() + +if (ENVNB_CORE_INCLUDE OR ENVNB_EVENTS_INCLUDE OR ENVNB_GRAPHICS_INCLUDE) + set(ENVNB_INCLUDE_FOUND ON) +endif() diff --git a/engine/NBCore/CMakeLists.txt b/engine/NBCore/CMakeLists.txt index d2d5e75..5ece207 100644 --- a/engine/NBCore/CMakeLists.txt +++ b/engine/NBCore/CMakeLists.txt @@ -1,11 +1,27 @@ include_directories(./.) -add_library(NBCore +set(NB_CORE_SOURCE ./src/Errors.cpp ./src/Processes.cpp ./src/Logger.cpp ) +set(NB_CORE_INCLUDE + ANSITerm.hpp + DataSink.hpp + Errors.hpp + Logger.hpp + Processes.hpp + ThreadsafeQueue.hpp + Types.hpp + TypeTraits.hpp +) + +toAbsolutePath(ENVNB_CORE_SOURCE ${NB_CORE_SOURCE}) +toAbsolutePath(ENVNB_CORE_INCLUDE ${NB_CORE_INCLUDE}) + +add_library(NBCore ${NB_CORE_SOURCE}) + if (NB_BUILD_TESTS) add_subdirectory(./tests) endif() \ No newline at end of file diff --git a/engine/NBEvents/CMakeLists.txt b/engine/NBEvents/CMakeLists.txt index 9bc882a..e81c3bc 100644 --- a/engine/NBEvents/CMakeLists.txt +++ b/engine/NBEvents/CMakeLists.txt @@ -1,5 +1,16 @@ include_directories(./.) -add_library(NBEvents +set(NB_EVENTS_SOURCE ./src/Events.cpp +) + +set(NB_EVENTS_INCLUDE + ./Events.hpp +) + +toAbsolutePath(ENVNB_EVENTS_SOURCE ${NB_EVENTS_SOURCE}) +toAbsolutePath(ENVNB_EVENTS_INCLUDE ${NB_EVENTS_INCLUDE}) + +add_library(NBEvents + ${NB_EVENTS_SOURCE} ) \ No newline at end of file diff --git a/engine/NBGraphics/CMakeLists.txt b/engine/NBGraphics/CMakeLists.txt index 32fa24f..e4b6a6a 100644 --- a/engine/NBGraphics/CMakeLists.txt +++ b/engine/NBGraphics/CMakeLists.txt @@ -10,9 +10,26 @@ set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) -add_library(NBGraphics +set(NB_GRAPHICS_SOURCE ./src/Window.cpp ./src/Buffers.cpp +) + +set(NB_GRAPHICS_INCLUDE + ./Buffers.hpp + ./Camera.hpp + ./Draw.hpp + ./GLLoad.hpp + ./shader.hpp + ./VAOManager.hpp + ./Window.hpp +) + +toAbsolutePath(ENVNB_GRAPHICS_SOURCE ${NB_GRAPHICS_SOURCE}) +toAbsolutePath(ENVNB_GRAPHICS_INCLUDE ${NB_GRAPHICS_INCLUDE}) + +add_library(NBGraphics + ${NB_GRAPHICS_SOURCE} ${GLAD_PATH}/src/glad.c ) target_link_libraries(NBGraphics glfw3)