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_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()

View File

@ -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"
)

View File

@ -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}")

View File

@ -1,24 +1,24 @@
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})

View File

@ -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}

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_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}