Files
plotter/CMakePresets.json
T
Martino Ferrari f363523195 fix(build): keep counter instrumentation out of the installed release library
The linux-release preset inherited PLOT_BUILD_TESTS=ON, so the release build
compiled the pyramid cover/merge and ring upload/wait/slot counters into
libplot_core.a and cmake --install shipped them. Set PLOT_BUILD_TESTS=OFF in the
preset; the suite keeps running in linux-debug and linux-asan, which are
unchanged.

Also pin the two header properties the plan calls Global Constraints and that
nothing guarded: every header under include/plot/ compiles standalone, and
include/plot/plot.hpp includes every public one. tests/CMakeLists.txt globs the
headers at configure time (CONFIGURE_DEPENDS) and generates one TU per header
plus an umbrella TU that constructs Plot, Renderer, data::StreamSeries and
input::Controller; a ctest entry builds the header TUs and runs the umbrella,
and cmake/plot_umbrella_check.cmake fails configure and ctest when a public
header is missing from the umbrella.
2026-09-28 03:25:59 +02:00

69 lines
1.8 KiB
JSON

{
"version": 5,
"cmakeMinimumRequired": {
"major": 3,
"minor": 24,
"patch": 0
},
"configurePresets": [
{
"name": "linux-debug",
"displayName": "Linux Debug",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/debug",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"PLOT_BUILD_GLFW": true,
"PLOT_BUILD_IMGUI": true,
"PLOT_BUILD_EXAMPLES": true,
"PLOT_BUILD_QT6": true,
"PLOT_BUILD_GTK4": true
}
},
{
"name": "linux-release",
"displayName": "Linux Release",
"description": "Release artifact for install: PLOT_BUILD_TESTS is OFF so the installed libplot_core.a carries none of the test-only counter instrumentation (PLOT_PYRAMID_COUNT_*, PLOT_RING_STATS). The suite runs in linux-debug and linux-asan.",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/release",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"PLOT_BUILD_TESTS": false,
"PLOT_BUILD_GLFW": true,
"PLOT_BUILD_IMGUI": true,
"PLOT_BUILD_EXAMPLES": true,
"PLOT_BUILD_QT6": true,
"PLOT_BUILD_GTK4": true
}
},
{
"name": "linux-asan",
"displayName": "Linux Debug (AddressSanitizer)",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/asan",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"PLOT_SANITIZE": "address",
"PLOT_BUILD_GLFW": true,
"PLOT_BUILD_IMGUI": true,
"PLOT_BUILD_QT6": true,
"PLOT_BUILD_GTK4": true
}
}
],
"buildPresets": [
{
"name": "linux-debug",
"configurePreset": "linux-debug"
},
{
"name": "linux-release",
"configurePreset": "linux-release"
},
{
"name": "linux-asan",
"configurePreset": "linux-asan"
}
]
}