-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakePresets.json
More file actions
175 lines (175 loc) · 4.92 KB
/
Copy pathCMakePresets.json
File metadata and controls
175 lines (175 loc) · 4.92 KB
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
{
"version": 6,
"cmakeMinimumRequired": {
"major": 4,
"minor": 2,
"patch": 0
},
"configurePresets": [
{
"name": "msvc",
"displayName": "MSVC (Visual Studio)",
"description": "Default MSVC build using Visual Studio generator",
"generator": "Visual Studio 18 2026",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"BUILD_TESTS": "ON"
}
},
{
"name": "clangcl",
"displayName": "ClangCL (Clang with MSVC ABI)",
"description": "Clang-cl compiler via Ninja — catches Clang warnings with MSVC ABI",
"generator": "Ninja Multi-Config",
"binaryDir": "${sourceDir}/build-clang",
"toolchainFile": "${sourceDir}/cmake/ClangCLToolchain.cmake",
"cacheVariables": {
"FETCHCONTENT_BASE_DIR": "${sourceDir}/OloEngine/vendor/clang",
"BUILD_TESTS": "ON"
}
},
{
"name": "clangcl-asan",
"displayName": "ClangCL + ASan",
"description": "ClangCL with Address Sanitizer enabled",
"inherits": "clangcl",
"cacheVariables": {
"OLO_ENABLE_ASAN": "ON"
}
},
{
"name": "linux-gcc",
"displayName": "Linux GCC (Ninja)",
"description": "Base Linux preset using GCC 14 and Ninja Multi-Config",
"generator": "Ninja Multi-Config",
"binaryDir": "${sourceDir}/build-linux",
"cacheVariables": {
"BUILD_TESTS": "ON",
"CMAKE_C_COMPILER": "gcc-14",
"CMAKE_CXX_COMPILER": "g++-14"
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
}
},
{
"name": "linux-gcc-toolset",
"displayName": "Linux GCC (toolset / system gcc, Ninja)",
"description": "For distros where the compiler is `gcc`/`g++` on PATH rather than versioned gcc-14 binaries — e.g. an activated RHEL/Rocky gcc-toolset-N. Shares build-linux/ with linux-gcc, so use one or the other. FFmpeg is off by default (its from-source build needs nasm); enable with -DOLO_VIDEO_FFMPEG=ON once nasm is installed. Pass -DCMAKE_PREFIX_PATH=$VULKAN_SDK for the shader stack. See docs/ops/build.md.",
"generator": "Ninja Multi-Config",
"binaryDir": "${sourceDir}/build-linux",
"cacheVariables": {
"BUILD_TESTS": "ON",
"CMAKE_C_COMPILER": "gcc",
"CMAKE_CXX_COMPILER": "g++",
"OLO_VIDEO_FFMPEG": "OFF"
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
}
},
{
"name": "linux-asan",
"displayName": "Linux GCC + ASan",
"description": "GCC ASan build; also enables LSan automatically per cmake/Sanitizers.cmake.",
"inherits": "linux-gcc",
"binaryDir": "${sourceDir}/build-linux-asan",
"cacheVariables": {
"OLO_ENABLE_ASAN": "ON"
}
},
{
"name": "linux-ubsan",
"displayName": "Linux GCC + UBSan",
"description": "GCC Undefined Behavior Sanitizer build (no ASan).",
"inherits": "linux-gcc",
"binaryDir": "${sourceDir}/build-linux-ubsan",
"cacheVariables": {
"OLO_ENABLE_UBSAN": "ON"
}
},
{
"name": "linux-tsan",
"displayName": "Linux GCC + TSan",
"description": "GCC Thread Sanitizer build (incompatible with ASan). cmake/Sanitizers.cmake force-disables Tracy when OLO_ENABLE_TSAN is on — Tracy's rpmalloc has a known static-init-order race that TSan halts on. So plain `cmake -DOLO_ENABLE_TSAN=ON` also gets the right behaviour, not just this preset.",
"inherits": "linux-gcc",
"binaryDir": "${sourceDir}/build-linux-tsan",
"cacheVariables": {
"OLO_ENABLE_TSAN": "ON"
}
}
],
"buildPresets": [
{
"name": "msvc-debug",
"displayName": "MSVC Debug",
"configurePreset": "msvc",
"configuration": "Debug"
},
{
"name": "msvc-release",
"displayName": "MSVC Release",
"configurePreset": "msvc",
"configuration": "Release"
},
{
"name": "clangcl-debug",
"displayName": "ClangCL Debug",
"configurePreset": "clangcl",
"configuration": "Debug"
},
{
"name": "clangcl-release",
"displayName": "ClangCL Release",
"configurePreset": "clangcl",
"configuration": "Release"
},
{
"name": "clangcl-asan-release",
"displayName": "ClangCL ASan Release",
"description": "Project uses Debug/Release/Dist (see cmake/SetupConfigurations.cmake); Release already includes PDB debug info on MSVC.",
"configurePreset": "clangcl-asan",
"configuration": "Release"
},
{
"name": "linux-asan-release",
"displayName": "Linux ASan Release",
"configurePreset": "linux-asan",
"configuration": "Release"
},
{
"name": "linux-ubsan-release",
"displayName": "Linux UBSan Release",
"configurePreset": "linux-ubsan",
"configuration": "Release"
},
{
"name": "linux-tsan-release",
"displayName": "Linux TSan Release",
"configurePreset": "linux-tsan",
"configuration": "Release"
}
],
"testPresets": [
{
"name": "msvc-debug",
"configurePreset": "msvc",
"configuration": "Debug",
"output": {
"verbosity": "verbose"
}
},
{
"name": "clangcl-debug",
"configurePreset": "clangcl",
"configuration": "Debug",
"output": {
"verbosity": "verbose"
}
}
]
}