-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCMakePresets.json
More file actions
147 lines (147 loc) · 5.37 KB
/
Copy pathCMakePresets.json
File metadata and controls
147 lines (147 loc) · 5.37 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
{
"version": 3,
"cmakeMinimumRequired": { "major": 3, "minor": 22, "patch": 0 },
"configurePresets": [
{
"name": "base",
"hidden": true,
"binaryDir": "${sourceDir}/build/${presetName}",
"cacheVariables": {
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
"BUILD_TESTING": "ON",
"CMAKE_PREFIX_PATH": "$penv{COMPOSITE_PREFIX}"
}
},
{
"name": "default",
"displayName": "Debug + tests",
"description": "Everyday development build. Resolves the framework via COMPS_COMPOSITE_PROVIDER=auto, so it works with an installed composite (point COMPOSITE_PREFIX at it) or falls back to fetching the pinned tag.",
"inherits": "base",
"cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" }
},
{
"name": "release",
"displayName": "Release + tests",
"description": "The build any performance measurement must use. The bare default is RelWithDebInfo (-O2 -g); this is -O3.",
"inherits": "base",
"cacheVariables": { "CMAKE_BUILD_TYPE": "Release" }
},
{
"name": "ci",
"displayName": "Debug + tests + warnings-as-errors",
"description": "The build gate. The fleet is warning-clean under -Wall -Wextra -Wpedantic as of the CMake restructure, so warnings fail here.",
"inherits": "base",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"COMPS_WERROR": "ON"
}
},
{
"name": "asan-ubsan",
"displayName": "Address+UB Sanitizer + tests",
"description": "The gate for the untrusted-input parse path (pkt_parser_fuzz) and the buffer/memory paths. Applies -fsanitize at directory scope, so every TU including Catch2 is instrumented.",
"inherits": "base",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"COMPS_SANITIZER": "address,undefined"
}
},
{
"name": "tsan",
"displayName": "ThreadSanitizer + tests",
"description": "The gate for the concurrency-dense components (psd/fft worker pools, udp_source receiver and stats threads, ws_sink server). test/race/ only has teeth under this preset.",
"inherits": "base",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"COMPS_SANITIZER": "thread"
}
},
{
"name": "portable",
"displayName": "Release, no CPU baseline, no fast-math",
"description": "Proves nothing in the fleet depends on -march=x86-64-v2 or -ffast-math to compile. Also the starting point for any future non-x86 port.",
"inherits": "base",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"COMPS_WERROR": "ON",
"COMPS_CPU_BASELINE": "",
"COMPS_FAST_MATH": "OFF"
}
},
{
"name": "install",
"displayName": "Release install tree",
"description": "What the container image builds: no tests, warnings-as-errors, and the framework version pinned EXACTLY so an image can never be built against a framework nobody chose.",
"inherits": "base",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"BUILD_TESTING": "OFF",
"COMPS_WERROR": "ON",
"COMPS_COMPOSITE_PROVIDER": "package",
"COMPS_REQUIRE_EXACT_COMPOSITE": "ON",
"CMAKE_INSTALL_PREFIX": "${sourceDir}/build/install/prefix"
}
},
{
"name": "dpdk",
"displayName": "Release + DPDK backend",
"description": "Compile gate for udp_source/socket/dpdk.cpp and igmp.cpp, which are invisible to every other preset. REQUIRES a framework built with COMPOSITE_USE_DPDK=ON -- point COMPOSITE_PREFIX at it; COMPS_HAS_DPDK is detected from the framework's interface definitions, not set here. Tests off: the DPDK paths need a NIC and hugepages to run, so compile coverage is the goal.",
"inherits": "base",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"BUILD_TESTING": "OFF",
"COMPS_WERROR": "ON",
"COMPS_COMPOSITE_PROVIDER": "package"
}
}
],
"buildPresets": [
{ "name": "default", "configurePreset": "default" },
{ "name": "release", "configurePreset": "release" },
{ "name": "ci", "configurePreset": "ci" },
{ "name": "asan-ubsan", "configurePreset": "asan-ubsan" },
{ "name": "tsan", "configurePreset": "tsan" },
{ "name": "portable", "configurePreset": "portable" },
{ "name": "install", "configurePreset": "install", "targets": ["install"] },
{ "name": "dpdk", "configurePreset": "dpdk" }
],
"testPresets": [
{
"name": "default",
"configurePreset": "default",
"output": { "outputOnFailure": true }
},
{
"name": "ci",
"configurePreset": "ci",
"output": { "outputOnFailure": true }
},
{
"name": "asan-ubsan",
"configurePreset": "asan-ubsan",
"output": { "outputOnFailure": true },
"environment": {
"ASAN_OPTIONS": "halt_on_error=1",
"UBSAN_OPTIONS": "halt_on_error=1 print_stacktrace=1"
}
},
{
"name": "tsan",
"configurePreset": "tsan",
"output": { "outputOnFailure": true },
"environment": {
"TSAN_OPTIONS": "halt_on_error=1 second_deadlock_stack=1"
}
},
{
"name": "release",
"configurePreset": "release",
"output": { "outputOnFailure": true }
},
{
"name": "portable",
"configurePreset": "portable",
"output": { "outputOnFailure": true }
}
]
}