forked from wolfpld/tracy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
129 lines (125 loc) · 4.75 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
cmake_minimum_required(VERSION 3.10)
# Tracy Client Library (Based on tracy.pdf from May 19, 2021)
add_library(TracyClient
TracyClient.cpp
)
target_include_directories(TracyClient PUBLIC ./)
target_compile_options(TracyClient PUBLIC -DTRACY_ENABLE)
target_link_libraries(TracyClient PUBLIC ws2_32 imagehlp dbghelp)
# Tracy Server Executable (Based on same tracy.pdf)
# Requires installation of various dependencies on each platform.
# We will do a local installation within the project directory - No other changes to the machine are made.
if(WIN32)
# There is a magic script we can run.
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
add_custom_target(TracyServerDepInstall
COMMENT "Installing Tracy Server dependencies via vcpkg (MSVC)"
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/install_vcpkg_dependencies.bat)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
add_custom_target(TracyServerDepInstall
COMMENT "Installing Tracy Server dependencies via vcpkg (GNU/Clang)"
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/install_vcpkg_dependencies_mingw.bat)
endif()
elseif(UNIX)
# We require pkg-config.
add_custom_target(TracyServerDepInstall
COMMENT "Tracy Server is not yet supported for xnix. Please do not try to build it.")
else()
add_custom_target(TracyServerDepInstall
COMMENT "Tracy Server is not yet supported for this platform. Please do not try to build it.")
endif()
add_executable(TracyServer
common/TracySocket.cpp
common/TracyStackFrames.cpp
common/TracySystem.cpp
common/tracy_lz4.cpp
common/tracy_lz4hc.cpp
imgui/imgui.cpp
imgui/imgui_demo.cpp
imgui/imgui_draw.cpp
imgui/imgui_tables.cpp
imgui/imgui_widgets.cpp
imgui/misc/freetype/imgui_freetype.cpp
nfd/nfd_common.c
nfd/nfd_win.cpp
server/TracyBadVersion.cpp
server/TracyColor.cpp
server/TracyFilesystem.cpp
server/TracyMemory.cpp
server/TracyMicroArchitecture.cpp
server/TracyMmap.cpp
server/TracyMouse.cpp
server/TracyPrint.cpp
server/TracySourceContents.cpp
server/TracySourceTokenizer.cpp
server/TracySourceView.cpp
server/TracyStorage.cpp
server/TracyTaskDispatch.cpp
server/TracyTexture.cpp
server/TracyTextureCompression.cpp
server/TracyThreadCompress.cpp
server/TracyUserData.cpp
server/TracyView.cpp
server/TracyWeb.cpp
server/TracyWorker.cpp
zstd/common/debug.c
zstd/common/entropy_common.c
zstd/common/error_private.c
zstd/common/fse_decompress.c
zstd/common/pool.c
zstd/common/threading.c
zstd/common/xxhash.c
zstd/common/zstd_common.c
zstd/compress/fse_compress.c
zstd/compress/hist.c
zstd/compress/huf_compress.c
zstd/compress/zstdmt_compress.c
zstd/compress/zstd_compress.c
zstd/compress/zstd_compress_literals.c
zstd/compress/zstd_compress_sequences.c
zstd/compress/zstd_compress_superblock.c
zstd/compress/zstd_double_fast.c
zstd/compress/zstd_fast.c
zstd/compress/zstd_lazy.c
zstd/compress/zstd_ldm.c
zstd/compress/zstd_opt.c
zstd/decompress/huf_decompress.c
zstd/decompress/zstd_ddict.c
zstd/decompress/zstd_decompress.c
zstd/decompress/zstd_decompress_block.c
zstd/dictBuilder/cover.c
zstd/dictBuilder/divsufsort.c
zstd/dictBuilder/fastcover.c
zstd/dictBuilder/zdict.c
profiler/libs/gl3w/GL/gl3w.c
profiler/src/HttpRequest.cpp
profiler/src/imgui_impl_glfw.cpp
profiler/src/imgui_impl_opengl3.cpp
profiler/src/main.cpp
profiler/src/NativeWindow.cpp
profiler/src/ResolvService.cpp
profiler/src/winmain.cpp
profiler/src/winmainArchDiscovery
profiler/build/win32/Tracy.rc
)
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
set(TracyServerLinkDirectories ${PROJECT_BINARY_DIR}/lib/tracy/vcpkg/installed/x64-windows-static/lib)
set(TracyServerIncludeDirectories ${PROJECT_BINARY_DIR}/lib/tracy/vcpkg/installed/x64-windows-static/include ${PROJECT_BINARY_DIR}/lib/tracy/vcpkg/installed/x64-windows-static/include/capstone)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
set(TracyServerLinkDirectories ${PROJECT_BINARY_DIR}/lib/tracy/vcpkg/installed/x64-mingw-static/lib)
set(TracyServerIncludeDirectories ${PROJECT_BINARY_DIR}/lib/tracy/vcpkg/installed/x64-mingw-static/include ${PROJECT_BINARY_DIR}/lib/tracy/vcpkg/installed/x64-mingw-static/include/capstone)
endif()
target_include_directories(TracyServer PRIVATE
profiler/libs/gl3w
imgui
${TracyServerIncludeDirectories}
)
add_dependencies(TracyServer TracyServerDepInstall)
target_link_directories(TracyServer PRIVATE ${TracyServerLinkDirectories})
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
target_link_libraries(TracyServer PRIVATE brotlicommon-static brotlidec-static brotlienc-static ws2_32 freetype glfw3 png16 zlib bz2 capstone)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_link_libraries(TracyServer PRIVATE ws2_32 freetype glfw3 png16 zlib bz2 capstone oleaut32 imm32)
endif()
target_compile_options(TracyServer PRIVATE -mlzcnt)
target_compile_definitions(TracyServer PRIVATE -DNOMINMAX)