[submodule "third_party/cpptoml"] | |||||
path = third_party/cpptoml | |||||
[submodule "third-party/cpptoml"] | |||||
path = third-party/cpptoml | |||||
url = https://github.com/skystrife/cpptoml.git | url = https://github.com/skystrife/cpptoml.git | ||||
[submodule "third_party/msgpack-c"] | |||||
path = third_party/msgpack-c | |||||
[submodule "third-party/msgpack-c"] | |||||
path = third-party/msgpack-c | |||||
url = https://github.com/msgpack/msgpack-c.git | url = https://github.com/msgpack/msgpack-c.git | ||||
[submodule "third_party/imgui"] | |||||
path = third_party/imgui | |||||
[submodule "third-party/imgui"] | |||||
path = third-party/imgui | |||||
url = https://github.com/ocornut/imgui.git | url = https://github.com/ocornut/imgui.git | ||||
[submodule "third_party/PerlinNoise"] | |||||
path = third_party/PerlinNoise | |||||
[submodule "third-party/PerlinNoise"] | |||||
path = third-party/PerlinNoise | |||||
url = https://github.com/Reputeless/PerlinNoise.git | url = https://github.com/Reputeless/PerlinNoise.git | ||||
[submodule "third_party/imgui_sdl"] | |||||
path = third_party/imgui_sdl | |||||
[submodule "third-party/imgui_sdl"] | |||||
path = third-party/imgui_sdl | |||||
url = https://github.com/mortie/imgui_sdl | url = https://github.com/mortie/imgui_sdl | ||||
[submodule "third_party/imgui-plot"] | |||||
path = third_party/imgui-plot | |||||
[submodule "third-party/imgui-plot"] | |||||
path = third-party/imgui-plot | |||||
url = https://github.com/soulthreads/imgui-plot.git | url = https://github.com/soulthreads/imgui-plot.git | ||||
[submodule "third_party/fmt"] | |||||
path = third_party/fmt | |||||
[submodule "third-party/fmt"] | |||||
path = third-party/fmt | |||||
url = https://github.com/fmtlib/fmt.git | url = https://github.com/fmtlib/fmt.git | ||||
[submodule "third-party/tracy"] | |||||
path = third-party/fmt | |||||
url = https://github.com/wolfpld/tracy.git |
endif() | endif() | ||||
add_compile_options(-std=c++2a -Wall -Wextra -Wpedantic -Wno-unused-parameter) | add_compile_options(-std=c++2a -Wall -Wextra -Wpedantic -Wno-unused-parameter) | ||||
set(libraries | |||||
third-party imgui fmt cpptoml msgpack | |||||
SDL2 SDL2_image dl z) | |||||
if(CMAKE_BUILD_TYPE STREQUAL Sanitize OR CMAKE_BUILD_TYPE STREQUAL "") | if(CMAKE_BUILD_TYPE STREQUAL Sanitize OR CMAKE_BUILD_TYPE STREQUAL "") | ||||
message(STATUS "Build mode: Sanitize") | message(STATUS "Build mode: Sanitize") | ||||
add_compile_options(-g -Og -fsanitize=address -fsanitize=undefined) | add_compile_options(-g -Og -fsanitize=address -fsanitize=undefined) | ||||
add_link_options(-fsanitize=address -fsanitize=undefined) | add_link_options(-fsanitize=address -fsanitize=undefined) | ||||
elseif(CMAKE_BUILD_TYPE STREQUAL Debug) | elseif(CMAKE_BUILD_TYPE STREQUAL Debug) | ||||
message(STATUS "Build mode: Debug") | message(STATUS "Build mode: Debug") | ||||
add_compile_options(-g -Og) | |||||
add_compile_options(-g -Og -DTRACY_ENABLE) | |||||
elseif(CMAKE_BUILD_TYPE STREQUAL DebugRelease) | elseif(CMAKE_BUILD_TYPE STREQUAL DebugRelease) | ||||
message(STATUS "Build mode: DebugRelease") | message(STATUS "Build mode: DebugRelease") | ||||
add_compile_options(-O3 -flto -DNDEBUG -g) | add_compile_options(-O3 -flto -DNDEBUG -g) | ||||
elseif(CMAKE_BUILD_TYPE STREQUAL Tracy) | |||||
message(STATUS "Build mode: Tracy") | |||||
add_compile_options(-O3 -flto -DNDEBUG -g -DTRACY_ENABLE) | |||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto") | |||||
list(APPEND libraries tracy) | |||||
elseif(CMAKE_BUILD_TYPE STREQUAL Release) | elseif(CMAKE_BUILD_TYPE STREQUAL Release) | ||||
message(STATUS "Build mode: Release") | message(STATUS "Build mode: Release") | ||||
add_compile_options(-O3 -flto -DNDEBUG) | add_compile_options(-O3 -flto -DNDEBUG) | ||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto") | set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto") | ||||
else() | else() | ||||
message(FATAL_ERROR "CMAKE_BUILD_TYPE must be Debug or Release.") | message(FATAL_ERROR "CMAKE_BUILD_TYPE must be Debug or Release.") | ||||
endif() | endif() | ||||
add_subdirectory(third_party) | |||||
set(libraries imgui fmt cpptoml msgpack SDL2 SDL2_image dl z) | |||||
# We want to be able to use C++20 designated initializers, | # We want to be able to use C++20 designated initializers, | ||||
# but Clang doesn't support them yet. | # but Clang doesn't support them yet. | ||||
# Remove once Clang 9.1 or something comes out. | # Remove once Clang 9.1 or something comes out. | ||||
add_compile_options(-Wno-c99-extensions) | add_compile_options(-Wno-c99-extensions) | ||||
include_directories( | |||||
${PROJECT_SOURCE_DIR}/third_party | |||||
${SDL2_INCLUDE_DIRS}) | |||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib;${CMAKE_INSTALL_PREFIX}/lib64;${CMAKE_INSTALL_PREFIX}/swan/libswan;${CMAKE_INSTALL_PREFIX}/swan/third_party") | |||||
include_directories(${SDL2_INCLUDE_DIRS}) | |||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib;${CMAKE_INSTALL_PREFIX}/lib64;${CMAKE_INSTALL_PREFIX}/swan/libswan;${CMAKE_INSTALL_PREFIX}/swan/third-party") | |||||
add_subdirectory(third-party) | |||||
add_subdirectory(tracy-tools) | |||||
add_subdirectory(libswan) | add_subdirectory(libswan) | ||||
add_subdirectory(core.mod) | add_subdirectory(core.mod) | ||||
template<typename Ent> | template<typename Ent> | ||||
inline void EntityCollectionImpl<Ent>::update(const Context &ctx, float dt) { | inline void EntityCollectionImpl<Ent>::update(const Context &ctx, float dt) { | ||||
for (auto &ent: entities_) | |||||
ZoneScopedN(typeid(Ent).name()); | |||||
for (auto &ent: entities_) { | |||||
ZoneScopedN("update"); | |||||
ent->ent.update(ctx, dt); | ent->ent.update(ctx, dt); | ||||
} | |||||
} | } | ||||
template<typename Ent> | template<typename Ent> | ||||
inline void EntityCollectionImpl<Ent>::tick(const Context &ctx, float dt) { | inline void EntityCollectionImpl<Ent>::tick(const Context &ctx, float dt) { | ||||
for (auto &ent: entities_) | |||||
ZoneScopedN(typeid(Ent).name()); | |||||
for (auto &ent: entities_) { | |||||
ZoneScopedN("tick"); | |||||
ent->ent.tick(ctx, dt); | ent->ent.tick(ctx, dt); | ||||
} | |||||
} | } | ||||
template<typename Ent> | template<typename Ent> | ||||
inline void EntityCollectionImpl<Ent>::draw(const Context &ctx, Win &win) { | inline void EntityCollectionImpl<Ent>::draw(const Context &ctx, Win &win) { | ||||
for (auto &ent: entities_) | |||||
ZoneScopedN(typeid(Ent).name()); | |||||
for (auto &ent: entities_) { | |||||
ZoneScopedN("draw"); | |||||
ent->ent.draw(ctx, win); | ent->ent.draw(ctx, win); | ||||
} | |||||
} | } | ||||
} | } |
#pragma once | #pragma once | ||||
// We want every file to be able to easily add Tracy zones | |||||
#include <tracy/Tracy.hpp> | |||||
#include "Vector2.h" | #include "Vector2.h" | ||||
namespace Swan { | namespace Swan { |
} | } | ||||
void World::ChunkRenderer::tick(WorldPlane &plane, ChunkPos abspos) { | void World::ChunkRenderer::tick(WorldPlane &plane, ChunkPos abspos) { | ||||
ZoneScopedN("World::ChunkRenderer tick"); | |||||
int l = 0; | int l = 0; | ||||
RTClock clock; | RTClock clock; | ||||
} | } | ||||
void World::draw(Win &win) { | void World::draw(Win &win) { | ||||
ZoneScopedN("World draw"); | |||||
auto bounds = player_->getBody().getBounds(); | auto bounds = player_->getBody().getBounds(); | ||||
win.cam_ = bounds.pos - (win.getSize() / 2) + (bounds.size / 2); | win.cam_ = bounds.pos - (win.getSize() / 2) + (bounds.size / 2); | ||||
planes_[current_plane_].draw(win); | planes_[current_plane_].draw(win); | ||||
} | } | ||||
void World::update(float dt) { | void World::update(float dt) { | ||||
ZoneScopedN("World update"); | |||||
for (auto &plane: planes_) | for (auto &plane: planes_) | ||||
plane.update(dt); | plane.update(dt); | ||||
} | } | ||||
void World::tick(float dt) { | void World::tick(float dt) { | ||||
ZoneScopedN("World tick"); | |||||
for (auto &plane: planes_) | for (auto &plane: planes_) | ||||
plane.tick(dt); | plane.tick(dt); | ||||
// This function will be a bit weird because it's a really fucking hot function. | // This function will be a bit weird because it's a really fucking hot function. | ||||
Chunk &WorldPlane::getChunk(ChunkPos pos) { | Chunk &WorldPlane::getChunk(ChunkPos pos) { | ||||
ZoneScopedN("WorldPlane getChunk"); | |||||
// First, look through all chunks which have been in use this tick | // First, look through all chunks which have been in use this tick | ||||
for (auto [chpos, chunk]: tick_chunks_) { | for (auto [chpos, chunk]: tick_chunks_) { | ||||
if (chpos == pos) | if (chpos == pos) | ||||
} | } | ||||
Chunk &WorldPlane::slowGetChunk(ChunkPos pos) { | Chunk &WorldPlane::slowGetChunk(ChunkPos pos) { | ||||
ZoneScopedN("WorldPlane slowGetChunk"); | |||||
auto iter = chunks_.find(pos); | auto iter = chunks_.find(pos); | ||||
// Create chunk if that turns out to be necessary | // Create chunk if that turns out to be necessary | ||||
} | } | ||||
Tile::ID WorldPlane::getTileID(TilePos pos) { | Tile::ID WorldPlane::getTileID(TilePos pos) { | ||||
ZoneScopedN("WorldPlane getTileID"); | |||||
return getChunk(chunkPos(pos)).getTileID(relPos(pos)); | return getChunk(chunkPos(pos)).getTileID(relPos(pos)); | ||||
} | } | ||||
} | } | ||||
void WorldPlane::draw(Win &win) { | void WorldPlane::draw(Win &win) { | ||||
ZoneScopedN("WorldPlane draw"); | |||||
auto ctx = getContext(); | auto ctx = getContext(); | ||||
auto pbounds = world_->player_->getBody().getBounds(); | auto pbounds = world_->player_->getBody().getBounds(); | ||||
} | } | ||||
void WorldPlane::update(float dt) { | void WorldPlane::update(float dt) { | ||||
ZoneScopedN("WorldPlane update"); | |||||
auto ctx = getContext(); | auto ctx = getContext(); | ||||
debug_boxes_.clear(); | debug_boxes_.clear(); | ||||
} | } | ||||
void WorldPlane::tick(float dt) { | void WorldPlane::tick(float dt) { | ||||
ZoneScopedN("WorldPlane tick"); | |||||
auto ctx = getContext(); | auto ctx = getContext(); | ||||
// Any chunk which has been in use since last tick should be kept alive | // Any chunk which has been in use since last tick should be kept alive |
RTClock present_clock; | RTClock present_clock; | ||||
SDL_RenderPresent(renderer.get()); | SDL_RenderPresent(renderer.get()); | ||||
FrameMark | |||||
pcounter.countRenderPresent(present_clock.duration()); | pcounter.countRenderPresent(present_clock.duration()); | ||||
pcounter.countTotalTime(total_time_clock.duration()); | pcounter.countTotalTime(total_time_clock.duration()); |
add_library(third-party INTERFACE) | |||||
target_include_directories(third-party SYSTEM INTERFACE | |||||
${CMAKE_CURRENT_SOURCE_DIR}) | |||||
add_library(cpptoml INTERFACE) | |||||
target_include_directories(cpptoml SYSTEM INTERFACE | |||||
${CMAKE_CURRENT_SOURCE_DIR}/cpptoml/include) | |||||
add_library(fmt SHARED | |||||
${CMAKE_CURRENT_SOURCE_DIR}/fmt/src/format.cc | |||||
${CMAKE_CURRENT_SOURCE_DIR}/fmt/src/os.cc) | |||||
target_include_directories(fmt SYSTEM PUBLIC | |||||
${CMAKE_CURRENT_SOURCE_DIR}/fmt/include) | |||||
set_target_properties(fmt PROPERTIES CXX_CLANG_TIDY "") | |||||
install(TARGETS fmt DESTINATION swan/third-party) | |||||
add_library(imgui SHARED | |||||
${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_demo.cpp | |||||
${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_draw.cpp | |||||
${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_widgets.cpp | |||||
${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui.cpp | |||||
${CMAKE_CURRENT_SOURCE_DIR}/imgui_sdl/imgui_sdl.cpp | |||||
${CMAKE_CURRENT_SOURCE_DIR}/imgui-plot/src/imgui_plot.cpp) | |||||
target_include_directories(imgui SYSTEM PUBLIC | |||||
${CMAKE_CURRENT_SOURCE_DIR}/imgui | |||||
${CMAKE_CURRENT_SOURCE_DIR}/imgui-plot/include | |||||
${SDL2_INCLUDE_DIRS}) | |||||
set_target_properties(imgui PROPERTIES CXX_CLANG_TIDY "") | |||||
target_compile_options(imgui PRIVATE -Wno-sign-compare) | |||||
install(TARGETS imgui DESTINATION swan/third-party) | |||||
add_library(msgpack INTERFACE) | |||||
target_include_directories(msgpack SYSTEM INTERFACE | |||||
${CMAKE_CURRENT_SOURCE_DIR}/msgpack-c/include) | |||||
add_library(tracy SHARED | |||||
${CMAKE_CURRENT_SOURCE_DIR}/tracy/TracyClient.cpp) | |||||
set_target_properties(tracy PROPERTIES CXX_CLANG_TIDY "") | |||||
target_compile_options(tracy PRIVATE | |||||
-Wno-unused-function -Wno-unused-result -Wno-sign-compare -Wno-pedantic | |||||
-Wno-enum-compare -Wno-unused-variable) | |||||
install(TARGETS tracy DESTINATION swan/third-party) |
Subproject commit b4d8cdd714bfe2dc652084b93ab4f4979650a7d8 |
add_library(imgui SHARED | |||||
${PROJECT_SOURCE_DIR}/third_party/imgui/imgui_demo.cpp | |||||
${PROJECT_SOURCE_DIR}/third_party/imgui/imgui_draw.cpp | |||||
${PROJECT_SOURCE_DIR}/third_party/imgui/imgui_widgets.cpp | |||||
${PROJECT_SOURCE_DIR}/third_party/imgui/imgui.cpp | |||||
${PROJECT_SOURCE_DIR}/third_party/imgui_sdl/imgui_sdl.cpp | |||||
${PROJECT_SOURCE_DIR}/third_party/imgui-plot/src/imgui_plot.cpp) | |||||
target_include_directories(imgui PUBLIC | |||||
${PROJECT_SOURCE_DIR}/third_party/imgui | |||||
${PROJECT_SOURCE_DIR}/third_party/imgui-plot/include | |||||
${SDL2_INCLUDE_DIRS}) | |||||
set_target_properties(imgui PROPERTIES CXX_CLANG_TIDY "") | |||||
install(TARGETS imgui DESTINATION swan/third_party) | |||||
add_library(fmt SHARED | |||||
${PROJECT_SOURCE_DIR}/third_party/fmt/src/format.cc | |||||
${PROJECT_SOURCE_DIR}/third_party/fmt/src/os.cc) | |||||
target_include_directories(fmt PUBLIC | |||||
${PROJECT_SOURCE_DIR}/third_party/fmt/include) | |||||
install(TARGETS fmt DESTINATION swan/third_party) | |||||
add_library(cpptoml INTERFACE) | |||||
target_include_directories(cpptoml INTERFACE | |||||
${PROJECT_SOURCE_DIR}/third_party/cpptoml/include) | |||||
add_library(msgpack INTERFACE) | |||||
target_include_directories(msgpack INTERFACE | |||||
${PROJECT_SOURCE_DIR}/third_party/msgpack-c/include) | |||||
find_package(Freetype) | |||||
find_package(glfw3) | |||||
find_package(GTK2 REQUIRED COMPONENTS gtk) | |||||
#add_library(tracy-stuff OBJECT | |||||
add_library(tracy-libs-unix OBJECT EXCLUDE_FROM_ALL | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/nfd/nfd_gtk.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/libbacktrace/posix.cpp) | |||||
target_include_directories(tracy-libs-unix PRIVATE ${GTK2_INCLUDE_DIRS}) | |||||
target_link_libraries(tracy-libs-unix ${GTK2_LIBRARIES}) | |||||
target_compile_options(tracy-libs-unix | |||||
PUBLIC -UTRACY_ENABLE | |||||
PRIVATE -Wno-deprecated-declarations) | |||||
add_library(tracy-libs STATIC EXCLUDE_FROM_ALL | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/profiler/libs/gl3w/GL/gl3w.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/common/TracySocket.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/common/TracySystem.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/common/tracy_lz4.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/common/tracy_lz4hc.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/client/tracy_rpmalloc.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/client/TracyCallstack.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/client/TracyDxt1.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/client/TracyProfiler.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/client/TracySysTime.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/client/TracySysTrace.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/imguicolortextedit/TextEditor.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/imgui/imgui.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/imgui/imgui_demo.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/imgui/imgui_draw.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/imgui/imgui_widgets.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/nfd/nfd_common.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/libbacktrace/alloc.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/libbacktrace/dwarf.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/libbacktrace/elf.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/libbacktrace/fileline.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/libbacktrace/mmapio.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/libbacktrace/sort.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/libbacktrace/state.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/server/TracyBadVersion.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/server/TracyMemory.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/server/TracyMmap.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/server/TracyPrint.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/server/TracyStorage.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/server/TracyTaskDispatch.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/server/TracyTexture.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/server/TracyThreadCompress.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/server/TracyUserData.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/server/TracyView.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/server/TracyWorker.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/debug.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/entropy_common.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/error_private.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/fse_compress.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/fse_decompress.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/hist.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/huf_compress.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/huf_decompress.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/pool.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/threading.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/xxhash.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/zstdmt_compress.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/zstd_common.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/zstd_compress.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/zstd_compress_literals.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/zstd_compress_sequences.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/zstd_compress_superblock.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/zstd_ddict.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/zstd_decompress.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/zstd_decompress_block.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/zstd_double_fast.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/zstd_fast.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/zstd_lazy.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/zstd_ldm.c | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/zstd/zstd_opt.c) | |||||
set_target_properties(tracy-libs PROPERTIES CXX_CLANG_TIDY "") | |||||
target_include_directories(tracy-libs PUBLIC | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/profiler/libs/gl3w | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/imgui) | |||||
target_link_libraries(tracy-libs tracy-libs-unix | |||||
pthread dl Freetype::Freetype glfw GL) | |||||
target_compile_options(tracy-libs PUBLIC | |||||
-UTRACY_ENABLE | |||||
-Wno-class-memaccess -Wno-unused-variable -Wno-pedantic -Wno-ignored-qualifiers | |||||
-Wno-missing-field-initializers -Wno-unused-result -Wno-sign-compare | |||||
-Wno-reorder -Wno-sequence-point -Wno-enum-compare -Wno-unused-function | |||||
-Wno-deprecated-decleration | |||||
-DTRACY_FILESELECTOR -DTRACY_EXTENDED_FONT -DTRACY_ROOT_WINDOW | |||||
-DIMGUI_IMPL_OPENGL_LOADER_GL3W) | |||||
add_executable(tracy-profiler EXCLUDE_FROM_ALL | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/profiler/src/imgui_freetype.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/profiler/src/imgui_impl_glfw.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/profiler/src/imgui_impl_opengl3.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/profiler/src/main.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/profiler/src/ResolvService.cpp | |||||
${PROJECT_SOURCE_DIR}/third-party/tracy/profiler/src/winmainArchDiscovery.cpp) | |||||
set_target_properties(tracy-libs PROPERTIES CXX_CLANG_TIDY "") | |||||
target_link_libraries(tracy-profiler tracy-libs tbb) |