mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-18 00:02:21 +08:00
Darwin: honour CMAKE_OSX_SYSROOT
more faithfully
The libraries in the SDK should be given precedence over the system libraries. Check for the default library search path (in default order) of `/usr/lib` and `/usr/local/lib` and use these as system prefix paths for libraries when performing the link step against a specified SDK.
This commit is contained in:
@@ -42,6 +42,7 @@ endif()
|
|||||||
|
|
||||||
set(CMAKE_SHARED_LIBRARY_PREFIX "lib")
|
set(CMAKE_SHARED_LIBRARY_PREFIX "lib")
|
||||||
set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib")
|
set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib")
|
||||||
|
set(CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES ".tbd" ".so")
|
||||||
set(CMAKE_SHARED_MODULE_PREFIX "lib")
|
set(CMAKE_SHARED_MODULE_PREFIX "lib")
|
||||||
set(CMAKE_SHARED_MODULE_SUFFIX ".so")
|
set(CMAKE_SHARED_MODULE_SUFFIX ".so")
|
||||||
set(CMAKE_MODULE_EXISTS 1)
|
set(CMAKE_MODULE_EXISTS 1)
|
||||||
@@ -156,6 +157,13 @@ if(_CMAKE_OSX_SYSROOT_PATH)
|
|||||||
break()
|
break()
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
if(EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/lib)
|
||||||
|
list(INSERT CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES 0 ${_CMAKE_OSX_SYSROOT_PATH}/usr/lib)
|
||||||
|
endif()
|
||||||
|
if(EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/local/lib)
|
||||||
|
list(INSERT CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES 0 ${_CMAKE_OSX_SYSROOT_PATH}/usr/local/lib)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if (OSX_DEVELOPER_ROOT AND EXISTS "${OSX_DEVELOPER_ROOT}/Library/Frameworks")
|
if (OSX_DEVELOPER_ROOT AND EXISTS "${OSX_DEVELOPER_ROOT}/Library/Frameworks")
|
||||||
list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH
|
list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH
|
||||||
@@ -208,11 +216,19 @@ set(CMAKE_SYSTEM_APPBUNDLE_PATH
|
|||||||
unset(_apps_paths)
|
unset(_apps_paths)
|
||||||
|
|
||||||
include(Platform/UnixPaths)
|
include(Platform/UnixPaths)
|
||||||
if(_CMAKE_OSX_SYSROOT_PATH AND EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/include)
|
if(_CMAKE_OSX_SYSROOT_PATH)
|
||||||
list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${_CMAKE_OSX_SYSROOT_PATH}/usr)
|
if(EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/include)
|
||||||
foreach(lang C CXX OBJC OBJCXX Swift)
|
list(INSERT CMAKE_SYSTEM_PREFIX_PATH 0 ${_CMAKE_OSX_SYSROOT_PATH}/usr)
|
||||||
list(APPEND _CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES_INIT ${_CMAKE_OSX_SYSROOT_PATH}/usr/include)
|
foreach(lang C CXX OBJC OBJCXX Swift)
|
||||||
endforeach()
|
list(APPEND _CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES_INIT ${_CMAKE_OSX_SYSROOT_PATH}/usr/include)
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
if(EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/local/include)
|
||||||
|
list(INSERT CMAKE_SYSTEM_PREFIX_PATH 0 ${_CMAKE_OSX_SYSROOT_PATH}/usr/local)
|
||||||
|
foreach(lang C CXX OBJC OBJCXX Swift)
|
||||||
|
list(APPEND _CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES_INIT ${_CMAKE_OSX_SYSROOT_PATH}/usr/local/include)
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
|
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
|
||||||
/sw # Fink
|
/sw # Fink
|
||||||
|
Reference in New Issue
Block a user