summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Cole <david.cole@kitware.com>2011-12-16 10:15:07 -0500
committerCMake Topic Stage <kwrobot@kitware.com>2011-12-16 10:15:07 -0500
commit65db5b4a993937aca84d600d3370eb584a51354a (patch)
tree3db453defff99ddd8ce357682a7625b0a53620f9
parent2f82798ef88e8d03aa6457e57faebf4fc16d1660 (diff)
parent5d9934312d0b553eafb7c690487215cff7ddedb3 (diff)
downloadcmake-65db5b4a993937aca84d600d3370eb584a51354a.tar.gz
Merge topic 'osx-dependent-libraries'
5d99343 Do not link private dependent shared libraries on OS X > 10.4
-rw-r--r--Modules/Platform/Darwin.cmake12
-rw-r--r--Source/cmComputeLinkInformation.cxx4
2 files changed, 10 insertions, 6 deletions
diff --git a/Modules/Platform/Darwin.cmake b/Modules/Platform/Darwin.cmake
index c11c8fbaa8..867c788fa8 100644
--- a/Modules/Platform/Darwin.cmake
+++ b/Modules/Platform/Darwin.cmake
@@ -187,11 +187,13 @@ IF(XCODE)
SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX)
ENDIF(XCODE)
-# Need to list dependent shared libraries on link line. When building
-# with -isysroot (for universal binaries), the linker always looks for
-# dependent libraries under the sysroot. Listing them on the link
-# line works around the problem.
-SET(CMAKE_LINK_DEPENDENT_LIBRARY_FILES 1)
+IF("${_CURRENT_OSX_VERSION}" VERSION_LESS "10.5")
+ # Need to list dependent shared libraries on link line. When building
+ # with -isysroot (for universal binaries), the linker always looks for
+ # dependent libraries under the sysroot. Listing them on the link
+ # line works around the problem.
+ SET(CMAKE_LINK_DEPENDENT_LIBRARY_FILES 1)
+ENDIF()
SET(CMAKE_C_CREATE_SHARED_LIBRARY_FORBIDDEN_FLAGS -w)
SET(CMAKE_CXX_CREATE_SHARED_LIBRARY_FORBIDDEN_FLAGS -w)
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx
index f8ab6869ae..edf6c35f67 100644
--- a/Source/cmComputeLinkInformation.cxx
+++ b/Source/cmComputeLinkInformation.cxx
@@ -161,7 +161,9 @@ listed on the command line.
- On Windows, DLLs are not directly linked, and the import libraries
have no transitive dependencies.
- - On Mac, we need to actually list the transitive dependencies.
+ - On Mac OS X 10.5 and above transitive dependencies are not needed.
+
+ - On Mac OS X 10.4 and below we need to actually list the dependencies.
Otherwise when using -isysroot for universal binaries it cannot
find the dependent libraries. Listing them on the command line
tells the linker where to find them, but unfortunately also links