Files
pcre2/cmake/PCRE2WarningAsError.cmake

36 lines
1.2 KiB
CMake

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