@@ -15,7 +15,7 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
1515# Release: Optimizations, LTCG, no Incremental linking, ASan disabled, Tracy in ON_DEMAND mode
1616# but for distribution binaries to be `Release` for best performance (because Tracy introduces it's own overhead)
1717# 19/01/2025
18- set (CMAKE_CONFIGURATION_TYPES "Debug;Release" )
18+ set (CMAKE_CONFIGURATION_TYPES "Debug;Release;DebugTSan;ReleaseTSan " )
1919
2020project (PhoenixEngine LANGUAGES C CXX )
2121
@@ -57,7 +57,7 @@ target_include_directories(PhoenixEngine PUBLIC
5757 "Vendor/tinyfd"
5858)
5959
60- set (PHX_BUILD_TYPE $<IF :$<CONFIG :Debug >,Debug ,$<IF :$<CONFIG :Release >,Release ,RelTracy >>)
60+ set (PHX_BUILD_TYPE $<IF :$<CONFIG :Debug >,Debug ,$<IF :$<CONFIG :Release >,Release ,$< IF :$< CONFIG : DebugTSan >, DebugTSan , ReleaseTSan > >>)
6161
6262target_compile_definitions (PhoenixEngine PRIVATE PHX_BUILD_TYPE= "${PHX_BUILD_TYPE} " )
6363
@@ -67,6 +67,7 @@ endif()
6767
6868target_link_libraries (PhoenixEngine PRIVATE
6969 Vendor
70+ OpenGL
7071 glm
7172 miniaudio
7273 $<IF :$<BOOL :${PHX_HEADLESS} >,,glfw >
@@ -84,6 +85,18 @@ add_compile_definitions(TRACY_ENABLE TRACY_FIBERS)
8485add_compile_definitions ($<$<CONFIG :Release >:NDEBUG >)
8586add_compile_definitions ($<$<CONFIG :Release >:TRACY_ON_DEMAND >)
8687
88+ # remove unnecessary projects
89+ option (LUAU_BUILD_CLI "Build CLI" OFF )
90+ option (LUAU_BUILD_TESTS "Build tests" OFF )
91+ option (MINIAUDIO_NO_EXTRA_NODES "Do not build extra node graph nodes" ON )
92+
93+ add_subdirectory (Vendor )
94+ add_subdirectory (Vendor/luau )
95+ add_subdirectory (Vendor/glm )
96+ add_subdirectory (Vendor/tracy )
97+ add_subdirectory (Vendor/miniaudio )
98+ add_subdirectory (Vendor/glfw )
99+
87100if (MSVC )
88101 include (cmake/cmake-msvc.txt )
89102 target_compile_definitions (PhoenixEngine PRIVATE PHX_TARGET_COMPILER= "MSVC" )
@@ -101,18 +114,6 @@ else()
101114 message (WARNING "Unsupported compiler - expected either MSVC or GNU (G++)" )
102115endif ()
103116
104- # remove unnecessary projects
105- option (LUAU_BUILD_CLI "Build CLI" OFF )
106- option (LUAU_BUILD_TESTS "Build tests" OFF )
107- option (MINIAUDIO_NO_EXTRA_NODES "Do not build extra node graph nodes" ON )
108-
109- add_subdirectory (Vendor )
110- add_subdirectory (Vendor/luau )
111- add_subdirectory (Vendor/glm )
112- add_subdirectory (Vendor/tracy )
113- add_subdirectory (Vendor/miniaudio )
114- add_subdirectory (Vendor/glfw )
115-
116117# organize VS folders
117118set_property (TARGET Vendor PROPERTY FOLDER "Vendor" )
118119set_property (TARGET TracyClient PROPERTY FOLDER "Vendor" )
@@ -137,6 +138,7 @@ set_property(TARGET update_mappings PROPERTY FOLDER "Vendor/GLFW3")
137138# build engine after all libs
138139add_dependencies (PhoenixEngine
139140 Vendor
141+ OpenGL
140142 TracyClient
141143 glm
142144 Luau.Compiler
0 commit comments