You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With CMake 3.13, I've been writing a bunch of targets like this, where the SOURCES property of a target can be added by subdirectories and its evaluation is deferred to "generation time."
Unfortunately, this makes these targets incompatible with add_sanitizers(...) because the scripts are not able to find any source files in the target:
CMake Warning at third_party/sanitizers-cmake/cmake/FindSanitizers.cmake:82 (message):
Sanitizers for target myexecutable may not be usable, because it uses no or an
unknown compiler. This is a false warning for targets using only object
lib(s) as input.
Call Stack (most recent call first):
CMakeLists.txt:35 (add_sanitizers)
I'm pretty new to "modern" CMake and I don't know how to get around this. Maybe the compiler flags added by sanitizer_add_flags need to be generator expressions that get evaluated at generation time?
The text was updated successfully, but these errors were encountered:
Hmmm, interesting —I wonder if this same issue might be why I can't seem to get the sanitisers provided by this package to fail my CI builds? saxbophone/arby#153
I am also using target_sources(), although IIRC I'm not getting a build warning or error, and when compiling it does appear to be using libasan/ubsan, but I can't seem to deliberately fail the build by introducing undefined behaviour into my code:
int k = 0x7fffffff;
k += 1; // cause integer overflow
which makes this pretty useless for actually detecting any UB...
With CMake 3.13, I've been writing a bunch of targets like this, where the
SOURCES
property of a target can be added by subdirectories and its evaluation is deferred to "generation time."Unfortunately, this makes these targets incompatible with
add_sanitizers(...)
because the scripts are not able to find any source files in the target:I'm pretty new to "modern" CMake and I don't know how to get around this. Maybe the compiler flags added by
sanitizer_add_flags
need to be generator expressions that get evaluated at generation time?The text was updated successfully, but these errors were encountered: