@@ -396,16 +396,23 @@ endif()
396396if (NOT MSVC )
397397 # Use color in diagnostics
398398 set (
399- _COMPILER_FLAGS
399+ _C_FLAGS
400+ "$<$<C_COMPILER_ID :Clang >:-fcolor -diagnostics >"
401+ "$<$<C_COMPILER_ID :AppleClang >:-fcolor -diagnostics >"
402+ "$<$<C_COMPILER_ID :GNU >:-fdiagnostics -color =always >"
403+ )
404+ set (
405+ _CXX_FLAGS
400406 "$<$<C_COMPILER_ID :Clang >:-fcolor -diagnostics ;${CLANG_STDLIB_OPTION} >"
401407 "$<$<C_COMPILER_ID :AppleClang >:-fcolor -diagnostics >"
402408 "$<$<C_COMPILER_ID :GNU >:-fdiagnostics -color =always >"
403409 )
404410 add_compile_options (
405- "$<$<COMPILE_LANGUAGE :C >:${_COMPILER_FLAGS } >"
406- "$<$<COMPILE_LANGUAGE :CXX >:${_COMPILER_FLAGS } >"
411+ "$<$<COMPILE_LANGUAGE :C >:${_C_FLAGS } >"
412+ "$<$<COMPILE_LANGUAGE :CXX >:${_CXX_FLAGS } >"
407413 )
408- unset (_COMPILER_FLAGS)
414+ unset (_C_FLAGS)
415+ unset (_CXX_FLAGS)
409416else ()
410417 option (ZVEC_USE_STATIC_CRT "Use static CRT (/MT) instead of dynamic CRT (/MD), default=ON" ON )
411418
@@ -477,13 +484,25 @@ set(
477484 )
478485
479486# C/C++ strict compile flags
487+ if (ENABLE_WERROR)
488+ set (BAZEL_CC_WERROR_FLAGS
489+ "$<$<CXX_COMPILER_ID :Clang >:-Werror >"
490+ "$<$<CXX_COMPILER_ID :AppleClang >:-Werror >"
491+ "$<$<CXX_COMPILER_ID :GNU >:-Werror >"
492+ "$<$<CXX_COMPILER_ID :MSVC >:/WX >"
493+ )
494+ else ()
495+ set (BAZEL_CC_WERROR_FLAGS "" )
496+ endif ()
497+
480498if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0)
481499 set (
482500 BAZEL_CC_STRICT_COMPILE_FLAGS
483501 "$<$<CXX_COMPILER_ID :Clang >:-Wall ;-Wextra ;-Wshadow >"
484502 "$<$<CXX_COMPILER_ID :AppleClang >:-Wall ;-Wextra ;-Wshadow >"
485503 "$<$<CXX_COMPILER_ID :GNU >:-Wall ;-Wextra ;-Wshadow -local ;-Wno -misleading -indentation >"
486504 "$<$<CXX_COMPILER_ID :MSVC >:/W4 >"
505+ ${BAZEL_CC_WERROR_FLAGS}
487506 ${BAZEL_CC_ASAN_COMPILE_FLAGS}
488507 ${BAZEL_CC_COVERAGE_COMPILE_FLAGS}
489508 )
@@ -494,6 +513,7 @@ else()
494513 "$<$<CXX_COMPILER_ID :AppleClang >:-Wall ;-Wextra ;-Wshadow >"
495514 "$<$<CXX_COMPILER_ID :GNU >:-Wall ;-Wextra ;-Wshadow ;-Wno -misleading -indentation >"
496515 "$<$<CXX_COMPILER_ID :MSVC >:/W4 >"
516+ ${BAZEL_CC_WERROR_FLAGS}
497517 ${BAZEL_CC_ASAN_COMPILE_FLAGS}
498518 ${BAZEL_CC_COVERAGE_COMPILE_FLAGS}
499519 )
@@ -503,7 +523,6 @@ endif()
503523# C/C++ strict link flags
504524set (
505525 BAZEL_CC_STRICT_LINK_FLAGS
506- "$<$<CXX_COMPILER_ID :Clang >:${CLANG_STDLIB_OPTION} >"
507526 ${BAZEL_CC_ASAN_COMPILE_FLAGS}
508527 ${BAZEL_CC_COVERAGE_COMPILE_FLAGS}
509528 )
522541# C/C++ unstrict link flags
523542set (
524543 BAZEL_CC_UNSTRICT_LINK_FLAGS
525- "$<$<CXX_COMPILER_ID :Clang >:${CLANG_STDLIB_OPTION} >"
526544 ${BAZEL_CC_ASAN_COMPILE_FLAGS}
527545 ${BAZEL_CC_COVERAGE_COMPILE_FLAGS}
528546 )
0 commit comments