Hi,
I’m using add_subdirectory via CPM to add a library:
CPMAddPackage(
NAME JUCE
GITHUB_REPOSITORY juce-framework/JUCE
SYSTEM YES
)
target_link_libraries(${PROJECT_NAME}
PRIVATE
juce_osc
)
# Options to apply to my project but not the library
target_compile_options(${PROJECT_NAME} PRIVATE
-Werror
-Wextra
-Wall
-Wfloat-equal
-Wconversion
-Wparentheses
-pedantic
-Wunused-parameter
-Wunused-variable
-Wreturn-type
-Wunused-function
-Wredundant-decls
-Wreturn-type
-Wunused-value
-Wswitch-default
-Wuninitialized
-Winit-self
-Wcast-align
-Wextra-semi
-Wformat=2
-Wmissing-include-dirs
-Wsuggest-override
-Wvla
-Wformat-security
-Wpointer-arith
-Wundef
)
The SYSTEM flag is hiding a bunch of warnings from the external library. If I set SYSTEM to NO then more appear, but I am still seeing these for the library’s *.cpp source files:
In file included from /REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/juce_osc.h:68,
from /REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/juce_osc.cpp:44:
/REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/osc/juce_OSCTypes.h:100:14: error: "JUCE_UNIT_TESTS" is not defined, evaluates to 0 [-Werror=undef]
100 | #if ! JUCE_UNIT_TESTS
| ^~~~~~~~~~~~~~~
In file included from /REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/juce_osc.cpp:47:
/REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/osc/juce_OSCTimeTag.cpp:86:5: error: "JUCE_UNIT_TESTS" is not defined, evaluates to 0 [-Werror=undef]
86 | #if JUCE_UNIT_TESTS
| ^~~~~~~~~~~~~~~
In file included from /REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/juce_osc.cpp:48:
/REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/osc/juce_OSCArgument.cpp:92:5: error: "JUCE_UNIT_TESTS" is not defined, evaluates to 0 [-Werror=undef]
92 | #if JUCE_UNIT_TESTS
| ^~~~~~~~~~~~~~~
In file included from /REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/juce_osc.cpp:49:
/REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/osc/juce_OSCAddress.cpp:409:5: error: "JUCE_UNIT_TESTS" is not defined, evaluates to 0 [-Werror=undef]
409 | #if JUCE_UNIT_TESTS
| ^~~~~~~~~~~~~~~
In file included from /REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/juce_osc.cpp:50:
/REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/osc/juce_OSCMessage.cpp:110:5: error: "JUCE_UNIT_TESTS" is not defined, evaluates to 0 [-Werror=undef]
110 | #if JUCE_UNIT_TESTS
| ^~~~~~~~~~~~~~~
In file included from /REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/juce_osc.cpp:51:
/REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/osc/juce_OSCBundle.cpp:122:5: error: "JUCE_UNIT_TESTS" is not defined, evaluates to 0 [-Werror=undef]
122 | #if JUCE_UNIT_TESTS
| ^~~~~~~~~~~~~~~
In file included from /REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/juce_osc.cpp:52:
/REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/osc/juce_OSCReceiver.cpp:673:5: error: "JUCE_UNIT_TESTS" is not defined, evaluates to 0 [-Werror=undef]
673 | #if JUCE_UNIT_TESTS
| ^~~~~~~~~~~~~~~
In file included from /REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/juce_osc.cpp:53:
/REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/osc/juce_OSCSender.cpp:346:5: error: "JUCE_UNIT_TESTS" is not defined, evaluates to 0 [-Werror=undef]
346 | #if JUCE_UNIT_TESTS
| ^~~~~~~~~~~~~~~
/REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/osc/juce_OSCTimeTag.cpp: In constructor ‘juce::OSCTimeTag::OSCTimeTag(juce::Time)’:
/REDACTED/.cpm-cache/juce/REDACTED/modules/juce_osc/osc/juce_OSCTimeTag.cpp:57:65: error: conversion from ‘long long unsigned int’ to ‘double’ may change value [-Werror=conversion]
57 | uint32 fractionalPart = uint32 (4294967.296 * (milliseconds % 1000));
|
How can I disable the warnings for the sources too? I tried target_compile_options(juce_osc INTERFACE -w), but that seems to apply to my project target too.