More CMake changes

This commit is contained in:
NaifBanana 2026-04-02 03:52:24 -05:00
parent 768d6c595b
commit 5ae4ac16b9
6 changed files with 62 additions and 32 deletions

View File

@ -7,12 +7,29 @@ set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF) 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") if(CMAKE_BUILD_TYPE STREQUAL "Release")
message(STATUS "Targeting Release build") message(STATUS "Targeting Release build")
elseif(CMAKE_BUILD_TYPE STREQUAL "Debug") elseif(CMAKE_BUILD_TYPE STREQUAL "Debug")
message(STATUS "Targeting Debug build") message(STATUS "Targeting Debug build")
set(NB_LOGGING ON) set(NB_LOGGING ON)
set(NB_BUILD_TESTS ON) set(NB_BUILD_TESTS ON)
set(NB_BUILD_DOCS ON)
add_compile_definitions(_NB_BUILD_DEBUG) add_compile_definitions(_NB_BUILD_DEBUG)
endif() endif()
@ -60,3 +77,10 @@ get_filename_component(GLFW_PATH ${GLFW_PATH} ABSOLUTE)
get_filename_component(GLAD_PATH ${GLAD_PATH} ABSOLUTE) get_filename_component(GLAD_PATH ${GLAD_PATH} ABSOLUTE)
add_subdirectory(./engine) add_subdirectory(./engine)
# Toggle
set(NB_REBUILD_DOCS)
if (NB_BUILD_DOCS)
add_subdirectory(./docs)
endif()

View File

@ -16,10 +16,10 @@ set(DOXYGEN_GENERATE_HTML YES)
set(DOXYGEN_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/docs) set(DOXYGEN_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/docs)
set(DOXYGEN_HTML_EXTRA_STYLESHEET ${AWESOME_CSS_DIR}/doxygen-awesome.css) set(DOXYGEN_HTML_EXTRA_STYLESHEET ${AWESOME_CSS_DIR}/doxygen-awesome.css)
if(ENVNB_SOURCE_FOUND) if(NB_SOURCE_FILES)
message("Using file timestamps...") message("Using file timestamps...")
doxygen_add_docs(NBEngineDocumentation doxygen_add_docs(NBEngineDocumentation
${NB_CORE_SOURCE} ALL ${NB_SOURCE_FILES} ${NB_INCLUDE_FILES}
USE_STAMP_FILE USE_STAMP_FILE
COMMENT "Building documentation" COMMENT "Building documentation"
) )

View File

@ -2,10 +2,16 @@ add_subdirectory(./NBCore)
add_subdirectory(./NBEvents) add_subdirectory(./NBEvents)
add_subdirectory(./NBGraphics) add_subdirectory(./NBGraphics)
if (ENVNB_CORE_SOURCE OR ENVNB_EVENTS_SOURCE OR ENVNB_GRAPHICS_SOURCE) if (NB_CORE_SOURCE OR NB_EVENTS_SOURCE OR NB_GRAPHICS_SOURCE)
set(ENVNB_SOURCE_FOUND ON) 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() 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() endif()
message("${NB_INCLUDE_FILES}")

View File

@ -1,26 +1,26 @@
include_directories(./.) include_directories(./.)
set(NB_CORE_SOURCE toAbsolutePath(NB_CORE_SOURCE "
./src/Errors.cpp ./src/Errors.cpp;
./src/Processes.cpp ./src/Processes.cpp;
./src/Logger.cpp ./src/Logger.cpp;
) ")
set(NB_CORE_INCLUDE toAbsolutePath(NB_CORE_INCLUDE "
ANSITerm.hpp ANSITerm.hpp;
DataSink.hpp DataSink.hpp;
Errors.hpp Errors.hpp;
Logger.hpp Logger.hpp;
Processes.hpp Processes.hpp;
ThreadsafeQueue.hpp ThreadsafeQueue.hpp;
Types.hpp Types.hpp;
TypeTraits.hpp TypeTraits.hpp;
) ")
toAbsolutePath(ENVNB_CORE_SOURCE ${NB_CORE_SOURCE}) set(NB_CORE_SOURCE ${NB_CORE_SOURCE} PARENT_SCOPE)
toAbsolutePath(ENVNB_CORE_INCLUDE ${NB_CORE_INCLUDE}) 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) if (NB_BUILD_TESTS)
add_subdirectory(./tests) add_subdirectory(./tests)

View File

@ -1,15 +1,15 @@
include_directories(./.) include_directories(./.)
set(NB_EVENTS_SOURCE toAbsolutePath(NB_EVENTS_SOURCE
./src/Events.cpp ./src/Events.cpp
) )
set(NB_EVENTS_INCLUDE toAbsolutePath(NB_EVENTS_INCLUDE
./Events.hpp ./Events.hpp
) )
toAbsolutePath(ENVNB_EVENTS_SOURCE ${NB_EVENTS_SOURCE}) set(NB_EVENTS_SOURCE ${NB_EVENTS_SOURCE} PARENT_SCOPE)
toAbsolutePath(ENVNB_EVENTS_INCLUDE ${NB_EVENTS_INCLUDE}) set(NB_EVENTS_INCLUDE ${NB_EVENTS_INCLUDE} PARENT_SCOPE)
add_library(NBEvents add_library(NBEvents
${NB_EVENTS_SOURCE} ${NB_EVENTS_SOURCE}

View File

@ -10,12 +10,12 @@ set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(NB_GRAPHICS_SOURCE toAbsolutePath(NB_GRAPHICS_SOURCE
./src/Window.cpp ./src/Window.cpp
./src/Buffers.cpp ./src/Buffers.cpp
) )
set(NB_GRAPHICS_INCLUDE toAbsolutePath(NB_GRAPHICS_INCLUDE
./Buffers.hpp ./Buffers.hpp
./Camera.hpp ./Camera.hpp
./Draw.hpp ./Draw.hpp
@ -25,8 +25,8 @@ set(NB_GRAPHICS_INCLUDE
./Window.hpp ./Window.hpp
) )
toAbsolutePath(ENVNB_GRAPHICS_SOURCE ${NB_GRAPHICS_SOURCE}) set(NB_GRAPHICS_SOURCE ${NB_GRAPHICS_SOURCE} PARENT_SCOPE)
toAbsolutePath(ENVNB_GRAPHICS_INCLUDE ${NB_GRAPHICS_INCLUDE}) set(NB_GRAPHICS_INCLUDE ${NB_GRAPHICS_INCLUDE} PARENT_SCOPE)
add_library(NBGraphics add_library(NBGraphics
${NB_GRAPHICS_SOURCE} ${NB_GRAPHICS_SOURCE}