| # This file can be removed once the minimum CMake version is increased to 3.24 |
| # or higher. Calls to pcre2_warning_as_error can be changed to the built in |
| # CMAKE_C_COMPILE_OPTIONS_WARNING_AS_ERROR. |
| |
| function(pcre2_warning_as_error out_var) |
| set(${out_var} "" PARENT_SCOPE) |
| |
| if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.24) |
| # Since CMake 3.24, we should use the CMAKE_C_COMPILE_OPTIONS_WARNING_AS_ERROR |
| # variable for greatest compiler compatibility. |
| if(DEFINED CMAKE_C_COMPILE_OPTIONS_WARNING_AS_ERROR) |
| set(${out_var} "${CMAKE_C_COMPILE_OPTIONS_WARNING_AS_ERROR}" PARENT_SCOPE) |
| endif() |
| else() |
| # The fallback probes for support, trying a few common flags. |
| |
| if(NOT MSVC) |
| include(CheckCCompilerFlag) |
| include(CMakePushCheckState) |
| |
| cmake_push_check_state(RESET) |
| check_c_compiler_flag("-Werror" HAVE_WERROR) |
| if(HAVE_WERROR) |
| set(${out_var} "-Werror" PARENT_SCOPE) |
| else() |
| check_c_compiler_flag("-errwarn=%all" HAVE_ERRWARN_ALL) |
| if(HAVE_ERRWARN_ALL) |
| set(${out_var} "-errwarn=%all" PARENT_SCOPE) |
| endif() |
| endif() |
| |
| cmake_pop_check_state() |
| endif() |
| endif() |
| endfunction() |