From 8965669d6aaa7451c2469887db10757c604162a8 Mon Sep 17 00:00:00 2001 From: Jiga228 Date: Fri, 24 Oct 2025 17:05:10 +0700 Subject: [PATCH] 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". --- CMakeLists.txt | 40 +++++++++++++++++++++++++++++++--------- build_Engine.bat | 11 +++++++++++ build_tests.bat | 5 +++++ configurate Win32.bat | 2 +- configurate Win64.bat | 2 +- 5 files changed, 49 insertions(+), 11 deletions(-) create mode 100644 build_Engine.bat create mode 100644 build_tests.bat diff --git a/CMakeLists.txt b/CMakeLists.txt index 9bd95eb..366968c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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() diff --git a/build_Engine.bat b/build_Engine.bat new file mode 100644 index 0000000..d6cbf48 --- /dev/null +++ b/build_Engine.bat @@ -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 \ No newline at end of file diff --git a/build_tests.bat b/build_tests.bat new file mode 100644 index 0000000..bef0c34 --- /dev/null +++ b/build_tests.bat @@ -0,0 +1,5 @@ +@echo off +mkdir build +cd build +cmake -DBUILD_MODE=Tests .. +cmake --build . --config Release diff --git a/configurate Win32.bat b/configurate Win32.bat index ff63dcc..4a49a47 100644 --- a/configurate Win32.bat +++ b/configurate Win32.bat @@ -1,5 +1,5 @@ @echo off mkdir build cd build -cmake .. -A Win32 +cmake -DBUILD_MODE=All .. -A Win32 pause \ No newline at end of file diff --git a/configurate Win64.bat b/configurate Win64.bat index 2a1279f..08a7e36 100644 --- a/configurate Win64.bat +++ b/configurate Win64.bat @@ -1,5 +1,5 @@ @echo off mkdir build cd build -cmake .. -A x64 +cmake -DBUILD_MODE=All .. -A x64 pause \ No newline at end of file