diff --git a/cmake/modules/CompileWarnings.cmake b/cmake/modules/CompileWarnings.cmake index 911787d2ef..93b35b8abf 100644 --- a/cmake/modules/CompileWarnings.cmake +++ b/cmake/modules/CompileWarnings.cmake @@ -4,4 +4,12 @@ macro(wpilib_target_warnings target) else() target_compile_options(${target} PRIVATE /wd4146 /wd4244 /wd4251 /wd4267 /WX /D_CRT_SECURE_NO_WARNINGS ${WPILIB_TARGET_WARNINGS}) endif() + + # Suppress C++-specific OpenCV warning; C compiler rejects it with an error + # https://github.com/opencv/opencv/issues/20269 + if(UNIX AND NOT APPLE) + target_compile_options(${target} PRIVATE $<$:-Wno-deprecated-enum-enum-conversion>) + elseif(UNIX AND APPLE) + target_compile_options(${target} PRIVATE $<$:-Wno-deprecated-anon-enum-enum-conversion>) + endif() endmacro() diff --git a/shared/config.gradle b/shared/config.gradle index a565026cc6..097dc0ad88 100644 --- a/shared/config.gradle +++ b/shared/config.gradle @@ -43,6 +43,16 @@ nativeUtils.platformConfigs.each { } } +// Suppress OpenCV warning +// https://github.com/opencv/opencv/issues/20269 +nativeUtils.platformConfigs.each { + if (it.name == 'linuxx86-64') { + it.cppCompiler.args.add("-Wno-deprecated-enum-enum-conversion") + } else if (it.name == 'osxx86-64' || it.name == 'osxarm64') { + it.cppCompiler.args.add("-Wno-deprecated-anon-enum-enum-conversion") + } +} + nativeUtils.platformConfigs.linuxathena.linker.args.add("-Wl,--fatal-warnings") model {