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