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_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_DIR})
set(CMAKE_ARCHIVE_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) if(NOT MSVC)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g")
endif() endif()
if(MSVC) if(MSVC)
add_compile_options(/GR-) add_compile_options(/GR-)
else() else()
add_compile_options(-fno-rtti) add_compile_options(-fno-rtti)
endif() endif()
add_subdirectory(FastRTTI) if(BUILD_MODE STREQUAL "Engine")
add_subdirectory(glfw) add_subdirectory(FastRTTI)
add_subdirectory(Core) add_subdirectory(glfw)
add_subdirectory(TestGame) add_subdirectory(Core)
add_subdirectory(ProjectGenerator) add_subdirectory(ProjectGenerator)
add_subdirectory(Tests)
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()
+11
View File
@@ -0,0 +1,11 @@
@echo off
mkdir .\build
cd build
cmake -DBUILD_MODE=Engine ..
cmake --build . --config Release
cd ..
mkdir ".\build\bin\include"
robocopy ".\Core" ".\build\bin\include\Core" *.h *.hpp /S
robocopy ".\Delegate" ".\build\bin\include\Delegate" *.h *.hpp /S
robocopy ".\FastRTTI" ".\build\bin\include\FastRTTI" *.h *.hpp /S
pause
+5
View File
@@ -0,0 +1,5 @@
@echo off
mkdir build
cd build
cmake -DBUILD_MODE=Tests ..
cmake --build . --config Release
+1 -1
View File
@@ -1,5 +1,5 @@
@echo off @echo off
mkdir build mkdir build
cd build cd build
cmake .. -A Win32 cmake -DBUILD_MODE=All .. -A Win32
pause pause
+1 -1
View File
@@ -1,5 +1,5 @@
@echo off @echo off
mkdir build mkdir build
cd build cd build
cmake .. -A x64 cmake -DBUILD_MODE=All .. -A x64
pause pause