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