summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2021-04-07 14:06:47 (GMT)
committerKitware Robot <kwrobot@kitware.com>2021-04-07 14:06:55 (GMT)
commit196376a33eaa01b76935c174cdefee1ad842604c (patch)
tree0c3ab6e13a090292d9b448e7c83842baa1c4dc7a
parent9780079ba6753cf63584778f8a8677274f8f782d (diff)
parent4aed96e2309e64571aabfda263b3ca4c4f62d619 (diff)
downloadCMake-196376a33eaa01b76935c174cdefee1ad842604c.zip
CMake-196376a33eaa01b76935c174cdefee1ad842604c.tar.gz
CMake-196376a33eaa01b76935c174cdefee1ad842604c.tar.bz2
Merge topic 'ios-rpath-linker-flag' into release-3.20
4aed96e230 Apple: Set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG on non-macOS too Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5980
-rw-r--r--Help/prop_tgt/INSTALL_NAME_DIR.rst8
-rw-r--r--Help/release/3.20.rst6
-rw-r--r--Help/variable/CMAKE_INSTALL_NAME_DIR.rst2
-rw-r--r--Modules/Platform/Darwin.cmake6
4 files changed, 13 insertions, 9 deletions
diff --git a/Help/prop_tgt/INSTALL_NAME_DIR.rst b/Help/prop_tgt/INSTALL_NAME_DIR.rst
index 8faefb7..47a0037 100644
--- a/Help/prop_tgt/INSTALL_NAME_DIR.rst
+++ b/Help/prop_tgt/INSTALL_NAME_DIR.rst
@@ -1,11 +1,13 @@
INSTALL_NAME_DIR
----------------
-macOS directory name for installed targets.
+Directory name for installed targets on Apple platforms.
``INSTALL_NAME_DIR`` is a string specifying the directory portion of the
-"install_name" field of shared libraries on macOS to use in the
-installed targets.
+"install_name" field of shared libraries on Apple platforms for
+installed targets. When not set, the default directory used is determined
+by :prop_tgt:`MACOSX_RPATH`. Policies :policy:`CMP0068` and :policy:`CMP0042`
+are also relevant.
This property is initialized by the value of the variable
:variable:`CMAKE_INSTALL_NAME_DIR` if it is set when a target is
diff --git a/Help/release/3.20.rst b/Help/release/3.20.rst
index 9991eab..e452926 100644
--- a/Help/release/3.20.rst
+++ b/Help/release/3.20.rst
@@ -341,3 +341,9 @@ Changes made since CMake 3.20.0 include the following.
and ``Intl_IS_BUILTIN``, but they were not implemented correctly.
These have been removed and replaced with a single ``Intl_IS_BUILT_IN``
check, whose name is consistent with the :module:`FindIconv` module.
+
+* The ``-rpath`` linker flag is now specified as supported on all Apple
+ platforms, not just macOS. The ``install_name_dir`` used for
+ iOS, tvOS and watchOS should now default to ``@rpath`` instead of using
+ a full absolute path and failing at runtime when the library or framework
+ is embedded in an application bundle (see :prop_tgt:`XCODE_EMBED_<type>`).
diff --git a/Help/variable/CMAKE_INSTALL_NAME_DIR.rst b/Help/variable/CMAKE_INSTALL_NAME_DIR.rst
index 5ba4c04..b07d44f 100644
--- a/Help/variable/CMAKE_INSTALL_NAME_DIR.rst
+++ b/Help/variable/CMAKE_INSTALL_NAME_DIR.rst
@@ -1,7 +1,7 @@
CMAKE_INSTALL_NAME_DIR
----------------------
-macOS directory name for installed targets.
+Directory name for installed targets on Apple platforms.
``CMAKE_INSTALL_NAME_DIR`` is used to initialize the
:prop_tgt:`INSTALL_NAME_DIR` property on all targets. See that target
diff --git a/Modules/Platform/Darwin.cmake b/Modules/Platform/Darwin.cmake
index 80595ea..d9a7894 100644
--- a/Modules/Platform/Darwin.cmake
+++ b/Modules/Platform/Darwin.cmake
@@ -47,11 +47,7 @@ set(CMAKE_SHARED_MODULE_PREFIX "lib")
set(CMAKE_SHARED_MODULE_SUFFIX ".so")
set(CMAKE_MODULE_EXISTS 1)
set(CMAKE_DL_LIBS "")
-
-# Enable rpath support for 10.5 and greater where it is known to work.
-if("${DARWIN_MAJOR_VERSION}" GREATER 8)
- set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
-endif()
+set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
foreach(lang C CXX OBJC OBJCXX)
set(CMAKE_${lang}_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ")