From ebf29b058a7e6ec3ebc2fddc8a2f5834bdb729d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Till=20W=C3=BCbbers?= Date: Sun, 16 Mar 2025 02:00:33 +0100 Subject: [PATCH] release build setup --- src/.gitignore | 3 ++- src/CMakeLists.txt | 15 ++++++++++----- src/build-release.bat | 1 + src/configure.bat | 2 ++ src/dependency/imgui | 2 +- src/game/Level.cpp | 2 +- src/game/Setup.cpp | 9 ++++++++- src/game/rendering/Rendering.cpp | 2 ++ src/game/rendering/Rendering.h | 2 +- 9 files changed, 28 insertions(+), 10 deletions(-) create mode 100644 src/build-release.bat diff --git a/src/.gitignore b/src/.gitignore index 4e70fbc..7f8c357 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -33,5 +33,6 @@ # build dirs cmake-build/ +cmake-build-release/ out/ -.vs/ \ No newline at end of file +.vs/ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d42b0d9..af3f866 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,17 +2,17 @@ cmake_minimum_required(VERSION 3.10) project(PuzGameProj) if (MSVC) - else() add_compile_options(-g -gcodeview) add_link_options(-fuse-ld=lld -g -Wl,--pdb=) endif() +add_compile_definitions("$<$:DEBUG>") + # set the output directory for built objects. # This makes sure that the dynamic library goes into the build directory automatically. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/$") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/$") -set(PROFILE ON) # Imgui file(GLOB imgui_sources dependency/imgui/*.h dependency/imgui/*.cpp) @@ -27,7 +27,6 @@ file(GLOB_RECURSE sources_engine engine/*.cpp engine/*.h) add_executable(PuzGameEngine ${sources_engine}) target_compile_definitions(PuzGameEngine PUBLIC "_AMD64_") set_property(TARGET PuzGameEngine PROPERTY CXX_STANDARD 17) -target_include_directories(PuzGameEngine PUBLIC dependency/tracy/public/) # Game add_custom_command( @@ -42,10 +41,11 @@ file(GLOB source_singleheader dependency/tinygltf/stb_image.h dependency/tinyglt add_library(PuzGame SHARED ${sources_game} ${source_singleheader} ${imgui_sources} ${imgui_backend_sdl}) set_property(TARGET PuzGame PROPERTY CXX_STANDARD 17) target_include_directories(PuzGame PUBLIC dependency/imgui) +target_include_directories(PuzGame PUBLIC dependency/tracy/public/) # Profiling -if (PROFILE) - option(TRACY_ENABLE "" ON) +option(TRACY_ENABLE "" OFF) +if (TRACY_ENABLE) option(TRACY_ON_DEMAND "" ON) set(TRACY_DELAYED_INIT ON) set(TRACY_MANUAL_LIFETIME ON) @@ -61,6 +61,11 @@ SET(BGFX_BUILD_EXAMPLES OFF) add_subdirectory("${CMAKE_SOURCE_DIR}/dependency/bgfx.cmake") # Link +if (TRACY_ENABLE) target_link_libraries(PuzGame bx bimg bgfx SDL3::SDL3 Tracy::TracyClient) target_link_libraries(PuzGameEngine bx SDL3::SDL3 Tracy::TracyClient) +else() +target_link_libraries(PuzGame bx bimg bgfx SDL3::SDL3) +target_link_libraries(PuzGameEngine bx SDL3::SDL3) +endif() set_target_properties(PuzGame PROPERTIES OUTPUT_NAME "PuzGame2") diff --git a/src/build-release.bat b/src/build-release.bat new file mode 100644 index 0000000..453b56f --- /dev/null +++ b/src/build-release.bat @@ -0,0 +1 @@ +cmake --build cmake-build-release diff --git a/src/configure.bat b/src/configure.bat index 7251a3e..1956b60 100644 --- a/src/configure.bat +++ b/src/configure.bat @@ -1,4 +1,6 @@ cd dependency/bgfx.cmake cmake -G "Ninja" -S . -B cmake-build -DCMAKE_C_COMPILER="clang.exe" -DCMAKE_CXX_COMPILER="clang++.exe" -DBGFX_BUILD_TOOLS=OFF -DBGFX_BUILD_EXAMPLES=OFF +cmake -G "Ninja" -S . -B cmake-build-release -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER="clang.exe" -DCMAKE_CXX_COMPILER="clang++.exe" -DBGFX_BUILD_TOOLS=OFF -DBGFX_BUILD_EXAMPLES=OFF cd ..\.. cmake -G "Ninja" -S . -B cmake-build -DCMAKE_C_COMPILER="clang.exe" -DCMAKE_CXX_COMPILER="clang++.exe" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON +cmake -G "Ninja" -S . -B cmake-build-release -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER="clang.exe" -DCMAKE_CXX_COMPILER="clang++.exe" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON diff --git a/src/dependency/imgui b/src/dependency/imgui index afd659b..126d004 160000 --- a/src/dependency/imgui +++ b/src/dependency/imgui @@ -1 +1 @@ -Subproject commit afd659bb926c94f32928ec586205e27075e93c92 +Subproject commit 126d004f9e1eef062bf4b044b3b2faaf58d48c51 diff --git a/src/game/Level.cpp b/src/game/Level.cpp index a7ceadc..610e897 100644 --- a/src/game/Level.cpp +++ b/src/game/Level.cpp @@ -15,7 +15,7 @@ #include #include #include -#include +#include namespace Game { diff --git a/src/game/Setup.cpp b/src/game/Setup.cpp index 91a89fe..1e8d30e 100644 --- a/src/game/Setup.cpp +++ b/src/game/Setup.cpp @@ -7,8 +7,10 @@ #include "bx/bx.h" #include "bx/timer.h" +#ifdef TRACY_ENABLE #include -#include +#endif +#include namespace Game { @@ -26,7 +28,10 @@ namespace Game void Setup(SharedData& shared) { LOG("Game Setup Start!"); +#ifdef TRACY_ENABLE + LOG("Tracy is enabled"); tracy::StartupProfiler(); +#endif if (shared.Game.PermanentStorage == nullptr) { @@ -89,6 +94,8 @@ namespace Game { LOG("Shutdown"); SetupInstance.Rendering.Shutdown(); +#ifdef TRACY_ENABLE tracy::ShutdownProfiler(); +#endif } } // namespace Game diff --git a/src/game/rendering/Rendering.cpp b/src/game/rendering/Rendering.cpp index 5e3b338..0e83e05 100644 --- a/src/game/rendering/Rendering.cpp +++ b/src/game/rendering/Rendering.cpp @@ -342,7 +342,9 @@ namespace Game bgfx::Init init; init.type = bgfx::RendererType::Direct3D12; +#ifdef _DEBUG init.debug = true; +#endif init.platformData.nwh = shared.Window.Handle; init.platformData.ndt = nullptr; init.platformData.type = bgfx::NativeWindowHandleType::Default; diff --git a/src/game/rendering/Rendering.h b/src/game/rendering/Rendering.h index 11d4030..199167e 100644 --- a/src/game/rendering/Rendering.h +++ b/src/game/rendering/Rendering.h @@ -105,7 +105,7 @@ namespace Game Model Models[MaxModels]; int32_t LastWidth = 0; int32_t LastHeight = 0; - uint32_t ResetFlags = 0; // BGFX_RESET_VSYNC; + uint32_t ResetFlags = BGFX_RESET_NONE; uint16_t MainViewID = 10; float LastShaderLoadTime = 0.0f; int32_t DitherRecursion = 1;