1
0

CheckCXXLinkerFlag.cmake 945 B

1234567891011121314151617181920212223242526272829
  1. # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. # file LICENSE.rst or https://cmake.org/licensing for details.
  3. include_guard(GLOBAL)
  4. include(CheckCXXSourceCompiles)
  5. include(CMakeCheckCompilerFlagCommonPatterns)
  6. function(check_cxx_linker_flag _flag _var)
  7. if(CMAKE_VERSION VERSION_LESS "3.14")
  8. set(CMAKE_REQUIRED_LIBRARIES "${_flag}")
  9. else()
  10. set(CMAKE_REQUIRED_LINK_OPTIONS "${_flag}")
  11. endif()
  12. # Normalize locale during test compilation.
  13. set(_locale_vars LC_ALL LC_MESSAGES LANG)
  14. foreach(v IN LISTS _locale_vars)
  15. set(_locale_vars_saved_${v} "$ENV{${v}}")
  16. set(ENV{${v}} C)
  17. endforeach()
  18. check_compiler_flag_common_patterns(_common_patterns)
  19. check_cxx_source_compiles("int main() { return 0; }" ${_var}
  20. ${_common_patterns}
  21. )
  22. foreach(v IN LISTS _locale_vars)
  23. set(ENV{${v}} ${_locale_vars_saved_${v}})
  24. endforeach()
  25. set(${_var} "${${_var}}" PARENT_SCOPE)
  26. endfunction()