cmake/Modules/Internal/CheckCompilerFlag.cmake

32 lines
973 B
CMake
Raw Normal View History

2021-09-14 00:13:48 +02:00
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
include_guard(GLOBAL)
2022-03-29 21:10:50 +02:00
include(Internal/CheckFlagCommonConfig)
2021-09-14 00:13:48 +02:00
include(Internal/CheckSourceCompiles)
include(CMakeCheckCompilerFlagCommonPatterns)
function(CMAKE_CHECK_COMPILER_FLAG _lang _flag _var)
2022-03-29 21:10:50 +02:00
# Parse extra arguments
cmake_parse_arguments(PARSE_ARGV 3 CHECK_COMPILER_FLAG "" "OUTPUT_VARIABLE" "")
2021-09-14 00:13:48 +02:00
2022-03-29 21:10:50 +02:00
cmake_check_flag_common_init("check_compiler_flag" ${_lang} _lang_src _lang_fail_regex)
2021-09-14 00:13:48 +02:00
set(CMAKE_REQUIRED_DEFINITIONS ${_flag})
check_compiler_flag_common_patterns(_common_patterns)
cmake_check_source_compiles(${_lang}
"${_lang_src}"
${_var}
${_lang_fail_regex}
${_common_patterns}
2022-03-29 21:10:50 +02:00
OUTPUT_VARIABLE _output
2021-09-14 00:13:48 +02:00
)
2022-03-29 21:10:50 +02:00
if (CHECK_COMPILER_FLAG_OUTPUT_VARIABLE)
set(${CHECK_COMPILER_FLAG_OUTPUT_VARIABLE} "${_output}" PARENT_SCOPE)
endif()
2021-09-14 00:13:48 +02:00
2022-03-29 21:10:50 +02:00
cmake_check_flag_common_finish()
endfunction()