| # 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() | |