Add build modes. Engine - build framework only. Tests - build unit tests only. TestGame - build TestGame and engine libraries. All - build all. Add scripts for easy build projects in different modes. "build_tests.bat" - create build directory, configure tests project and build there. "build_Engine.bat" - create build directory, configure engine projects, build there and copy header files to "build/bin/include".

This commit is contained in:
Jiga228
2025-10-24 17:05:10 +07:00
parent 8d7dcac563
commit 8965669d6a
5 changed files with 49 additions and 11 deletions
+31 -9
View File
@@ -6,19 +6,41 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_DIR})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_DIR})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_DIR})
# Build mode
set(BUILD_MODE "All" CACHE STRING "Build mode: Engine / Tests / TestGame / All")
set_property(CACHE BUILD_MODE PROPERTY STRINGS "Engine" "Tests" "TestGame" "All")
if(NOT MSVC)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g")
endif()
if(MSVC)
add_compile_options(/GR-)
add_compile_options(/GR-)
else()
add_compile_options(-fno-rtti)
add_compile_options(-fno-rtti)
endif()
add_subdirectory(FastRTTI)
add_subdirectory(glfw)
add_subdirectory(Core)
add_subdirectory(TestGame)
add_subdirectory(ProjectGenerator)
add_subdirectory(Tests)
if(BUILD_MODE STREQUAL "Engine")
add_subdirectory(FastRTTI)
add_subdirectory(glfw)
add_subdirectory(Core)
add_subdirectory(ProjectGenerator)
elseif(BUILD_MODE STREQUAL "Tests")
add_subdirectory(Tests)
elseif(BUILD_MODE STREQUAL "TestGame")
add_subdirectory(FastRTTI)
add_subdirectory(glfw)
add_subdirectory(Core)
add_subdirectory(TestGame)
elseif(BUILD_MODE STREQUAL "All")
add_subdirectory(FastRTTI)
add_subdirectory(glfw)
add_subdirectory(Core)
add_subdirectory(ProjectGenerator)
add_subdirectory(TestGame)
add_subdirectory(Tests)
endif()