You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
947 B
30 lines
947 B
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
# file Copyright.txt or https://cmake.org/licensing for details.
|
|
|
|
include_guard(GLOBAL)
|
|
include(CheckCXXSourceCompiles)
|
|
include(CMakeCheckCompilerFlagCommonPatterns)
|
|
|
|
function(check_cxx_linker_flag _flag _var)
|
|
if(CMAKE_VERSION VERSION_LESS "3.14")
|
|
set(CMAKE_REQUIRED_LIBRARIES "${_flag}")
|
|
else()
|
|
set(CMAKE_REQUIRED_LINK_OPTIONS "${_flag}")
|
|
endif()
|
|
|
|
# Normalize locale during test compilation.
|
|
set(_locale_vars LC_ALL LC_MESSAGES LANG)
|
|
foreach(v IN LISTS _locale_vars)
|
|
set(_locale_vars_saved_${v} "$ENV{${v}}")
|
|
set(ENV{${v}} C)
|
|
endforeach()
|
|
check_compiler_flag_common_patterns(_common_patterns)
|
|
check_cxx_source_compiles("int main() { return 0; }" ${_var}
|
|
${_common_patterns}
|
|
)
|
|
foreach(v IN LISTS _locale_vars)
|
|
set(ENV{${v}} ${_locale_vars_saved_${v}})
|
|
endforeach()
|
|
set(${_var} "${${_var}}" PARENT_SCOPE)
|
|
endfunction()
|