1# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2# file Copyright.txt or https://cmake.org/licensing for details.
3
4
5# This module is shared by multiple languages; use include blocker.
6include_guard()
7
8macro(__apple_compiler_gnu lang)
9  set(CMAKE_${lang}_VERBOSE_FLAG "-v -Wl,-v") # also tell linker to print verbose output
10  # GNU does not have -shared on OS X
11  set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-dynamiclib -Wl,-headerpad_max_install_names")
12  set(CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS "-bundle -Wl,-headerpad_max_install_names")
13
14  if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.3)
15    set(CMAKE_${lang}_SYSTEM_FRAMEWORK_SEARCH_FLAG "-iframework ")
16  endif()
17endmacro()
18
19macro(cmake_gnu_set_sysroot_flag lang)
20  if(NOT DEFINED CMAKE_${lang}_SYSROOT_FLAG)
21    set(_doc "${lang} compiler has -isysroot")
22    message(CHECK_START "Checking whether ${_doc}")
23    execute_process(
24      COMMAND ${CMAKE_${lang}_COMPILER} "-v" "--help"
25      OUTPUT_VARIABLE _gcc_help
26      ERROR_VARIABLE _gcc_help
27      )
28    if("${_gcc_help}" MATCHES "isysroot")
29      message(CHECK_PASS "yes")
30      set(CMAKE_${lang}_SYSROOT_FLAG "-isysroot")
31    else()
32      message(CHECK_FAIL "no")
33      set(CMAKE_${lang}_SYSROOT_FLAG "")
34    endif()
35    set(CMAKE_${lang}_SYSROOT_FLAG_CODE "set(CMAKE_${lang}_SYSROOT_FLAG \"${CMAKE_${lang}_SYSROOT_FLAG}\")")
36  endif()
37endmacro()
38
39macro(cmake_gnu_set_osx_deployment_target_flag lang)
40  if(NOT DEFINED CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG)
41    set(_doc "${lang} compiler supports OSX deployment target flag")
42    message(CHECK_START "Checking whether ${_doc}")
43    execute_process(
44      COMMAND ${CMAKE_${lang}_COMPILER} "-v" "--help"
45      OUTPUT_VARIABLE _gcc_help
46      ERROR_VARIABLE _gcc_help
47      )
48    if("${_gcc_help}" MATCHES "macosx-version-min")
49      message(CHECK_PASS "yes")
50      set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG "-mmacosx-version-min=")
51    else()
52      message(CHECK_FAIL "no")
53      set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG "")
54    endif()
55    set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG_CODE "set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG \"${CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG}\")")
56  endif()
57endmacro()
58