diff --git a/cmake/modules/CompileWarnings.cmake b/cmake/modules/CompileWarnings.cmake index b56c175a9b..fd4f9294ba 100644 --- a/cmake/modules/CompileWarnings.cmake +++ b/cmake/modules/CompileWarnings.cmake @@ -14,18 +14,20 @@ macro(wpilib_target_warnings target) target_compile_options(${target} PRIVATE ${WARNING_FLAGS}) else() - target_compile_options( - ${target} - PRIVATE - /wd4146 - /wd4244 - /wd4251 - /wd4267 - /wd4324 - /WX - /D_CRT_SECURE_NO_WARNINGS - ${WPILIB_TARGET_WARNINGS} + set(WARNING_FLAGS + /wd4146 + /wd4244 + /wd4251 + /wd4267 + /wd4324 + /D_CRT_SECURE_NO_WARNINGS + ${WPILIB_TARGET_WARNINGS} ) + if(NOT NO_WERROR) + set(WARNING_FLAGS ${WARNING_FLAGS} /WX) + endif() + + target_compile_options(${target} PRIVATE ${WARNING_FLAGS}) endif() # Suppress C++-specific OpenCV warning; C compiler rejects it with an error