diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f2c2cd..f5bac96 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,12 +7,29 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) +function(toAbsolutePath SETVAR PATHS) + set(RET_VAL "") + foreach(FILE ${PATHS}) + get_filename_component(TMP + ${FILE} + REALPATH + ) + list( + APPEND + RET_VAL + ${TMP} + ) + endforeach() + set(${SETVAR} ${RET_VAL} PARENT_SCOPE) +endfunction() + if(CMAKE_BUILD_TYPE STREQUAL "Release") message(STATUS "Targeting Release build") elseif(CMAKE_BUILD_TYPE STREQUAL "Debug") message(STATUS "Targeting Debug build") set(NB_LOGGING ON) set(NB_BUILD_TESTS ON) + set(NB_BUILD_DOCS ON) add_compile_definitions(_NB_BUILD_DEBUG) endif() @@ -60,3 +77,10 @@ get_filename_component(GLFW_PATH ${GLFW_PATH} ABSOLUTE) get_filename_component(GLAD_PATH ${GLAD_PATH} ABSOLUTE) add_subdirectory(./engine) + +# Toggle +set(NB_REBUILD_DOCS) + +if (NB_BUILD_DOCS) + add_subdirectory(./docs) +endif() diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index b24215b..d830375 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -16,10 +16,10 @@ 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) +if(NB_SOURCE_FILES) message("Using file timestamps...") doxygen_add_docs(NBEngineDocumentation - ${NB_CORE_SOURCE} ALL + ${NB_SOURCE_FILES} ${NB_INCLUDE_FILES} USE_STAMP_FILE COMMENT "Building documentation" ) diff --git a/engine/CMakeLists.txt b/engine/CMakeLists.txt index cc3d400..d5e96b5 100644 --- a/engine/CMakeLists.txt +++ b/engine/CMakeLists.txt @@ -2,10 +2,16 @@ add_subdirectory(./NBCore) add_subdirectory(./NBEvents) add_subdirectory(./NBGraphics) -if (ENVNB_CORE_SOURCE OR ENVNB_EVENTS_SOURCE OR ENVNB_GRAPHICS_SOURCE) - set(ENVNB_SOURCE_FOUND ON) +if (NB_CORE_SOURCE OR NB_EVENTS_SOURCE OR NB_GRAPHICS_SOURCE) + set(NB_SOURCE_FILES "") + list(APPEND NB_SOURCE_FILES ${NB_CORE_SOURCE} ${NB_GRAPHICS_SOURCE} ${NB_EVENTS_SOURCE}) + set(NB_SOURCE_FILES ${NB_SOURCE_FILES} PARENT_SCOPE) endif() -if (ENVNB_CORE_INCLUDE OR ENVNB_EVENTS_INCLUDE OR ENVNB_GRAPHICS_INCLUDE) - set(ENVNB_INCLUDE_FOUND ON) + +if (NB_CORE_INCLUDE OR NB_EVENTS_INCLUDE OR NB_GRAPHICS_INCLUDE) + set(NB_INCLUDE_FILES "") + list(APPEND NB_INCLUDE_FILES ${NB_CORE_INCLUDE} ${NB_GRAPHICS_INCLUDE} ${NB_EVENTS_INCLUDE}) + set(NB_INCLUDE_FILES ${NB_INCLUDE_FILES} PARENT_SCOPE) endif() +message("${NB_INCLUDE_FILES}") diff --git a/engine/NBCore/CMakeLists.txt b/engine/NBCore/CMakeLists.txt index 5ece207..a609519 100644 --- a/engine/NBCore/CMakeLists.txt +++ b/engine/NBCore/CMakeLists.txt @@ -1,26 +1,26 @@ include_directories(./.) -set(NB_CORE_SOURCE - ./src/Errors.cpp - ./src/Processes.cpp - ./src/Logger.cpp -) +toAbsolutePath(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(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}) +set(NB_CORE_SOURCE ${NB_CORE_SOURCE} PARENT_SCOPE) +set(NB_CORE_INCLUDE ${NB_CORE_INCLUDE} PARENT_SCOPE) -add_library(NBCore ${NB_CORE_SOURCE}) +add_library(NBCore ${NB_CORE_SOURCE}) if (NB_BUILD_TESTS) add_subdirectory(./tests) diff --git a/engine/NBEvents/CMakeLists.txt b/engine/NBEvents/CMakeLists.txt index e81c3bc..9c3b781 100644 --- a/engine/NBEvents/CMakeLists.txt +++ b/engine/NBEvents/CMakeLists.txt @@ -1,15 +1,15 @@ include_directories(./.) -set(NB_EVENTS_SOURCE +toAbsolutePath(NB_EVENTS_SOURCE ./src/Events.cpp ) -set(NB_EVENTS_INCLUDE +toAbsolutePath(NB_EVENTS_INCLUDE ./Events.hpp ) -toAbsolutePath(ENVNB_EVENTS_SOURCE ${NB_EVENTS_SOURCE}) -toAbsolutePath(ENVNB_EVENTS_INCLUDE ${NB_EVENTS_INCLUDE}) +set(NB_EVENTS_SOURCE ${NB_EVENTS_SOURCE} PARENT_SCOPE) +set(NB_EVENTS_INCLUDE ${NB_EVENTS_INCLUDE} PARENT_SCOPE) add_library(NBEvents ${NB_EVENTS_SOURCE} diff --git a/engine/NBGraphics/CMakeLists.txt b/engine/NBGraphics/CMakeLists.txt index e4b6a6a..f7ded22 100644 --- a/engine/NBGraphics/CMakeLists.txt +++ b/engine/NBGraphics/CMakeLists.txt @@ -10,12 +10,12 @@ set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) -set(NB_GRAPHICS_SOURCE +toAbsolutePath(NB_GRAPHICS_SOURCE ./src/Window.cpp ./src/Buffers.cpp ) -set(NB_GRAPHICS_INCLUDE +toAbsolutePath(NB_GRAPHICS_INCLUDE ./Buffers.hpp ./Camera.hpp ./Draw.hpp @@ -25,8 +25,8 @@ set(NB_GRAPHICS_INCLUDE ./Window.hpp ) -toAbsolutePath(ENVNB_GRAPHICS_SOURCE ${NB_GRAPHICS_SOURCE}) -toAbsolutePath(ENVNB_GRAPHICS_INCLUDE ${NB_GRAPHICS_INCLUDE}) +set(NB_GRAPHICS_SOURCE ${NB_GRAPHICS_SOURCE} PARENT_SCOPE) +set(NB_GRAPHICS_INCLUDE ${NB_GRAPHICS_INCLUDE} PARENT_SCOPE) add_library(NBGraphics ${NB_GRAPHICS_SOURCE}