@@ -412,22 +412,26 @@ function(pybind11_enable_warnings target_name)
412412 endif ()
413413
414414 if (PYBIND11_WERROR)
415- if (MSVC )
416- target_compile_options (${target_name} PRIVATE /WX )
417- elseif (PYBIND11_CUDA_TESTS)
418- target_compile_options (${target_name} PRIVATE "SHELL:-Werror all-warnings" )
419- elseif (CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang|IntelLLVM)" )
420- target_compile_options (${target_name} PRIVATE -Werror )
421- elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel" )
415+ if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel" )
422416 if (CMAKE_CXX_STANDARD EQUAL 17) # See PR #3570
423417 target_compile_options (${target_name} PRIVATE -Wno-conversion )
424418 endif ()
425- target_compile_options (
426- ${target_name}
427- PRIVATE
428- -Werror-all
429- # "Inlining inhibited by limit max-size", "Inlining inhibited by limit max-total-size"
430- -diag-disable 11074,11076 )
419+ # "Inlining inhibited by limit max-size", "Inlining inhibited by limit max-total-size"
420+ target_compile_options (${target_name} PRIVATE -diag-disable 11074,11076 )
421+ endif ()
422+
423+ if (CMAKE_VERSION VERSION_LESS "3.24" )
424+ if (MSVC )
425+ target_compile_options (${target_name} PRIVATE /WX )
426+ elseif (PYBIND11_CUDA_TESTS)
427+ target_compile_options (${target_name} PRIVATE "SHELL:-Werror all-warnings" )
428+ elseif (CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang|IntelLLVM)" )
429+ target_compile_options (${target_name} PRIVATE -Werror )
430+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel" )
431+ target_compile_options (${target_name} PRIVATE -Werror-all )
432+ endif ()
433+ else ()
434+ set_target_properties (${target_name} PROPERTIES COMPILE_WARNING_AS_ERROR ON )
431435 endif ()
432436 endif ()
433437endfunction ()
0 commit comments