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.
This commit is contained in:
1 parent
0972903d27
commit
f363523195
3 files changed
+149
No files matched your search
@@ -23,10 +23,12 @@
|
||||
{
|
||||
"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,
|
||||
|
||||
Reference in new issue
Block a user