OS X: Add CMP0042 to enable MACOSX_RPATH by default

Also adding documentation for CMAKE_MACOSX_RPATH, and improving
documentation for MACOSX_RPATH.
This commit is contained in:
Clinton Stimpson
2013-12-18 21:25:29 -07:00
committed by Brad King
parent 2a384e08cc
commit d25ad482e9
30 changed files with 223 additions and 14 deletions

View File

@@ -75,3 +75,4 @@ All Policies
/policy/CMP0039
/policy/CMP0040
/policy/CMP0041
/policy/CMP0042

View File

@@ -207,6 +207,7 @@ Variables that Control the Build
/variable/CMAKE_LINK_LIBRARY_FILE_FLAG
/variable/CMAKE_LINK_LIBRARY_FLAG
/variable/CMAKE_MACOSX_BUNDLE
/variable/CMAKE_MACOSX_RPATH
/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG
/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG
/variable/CMAKE_MODULE_LINKER_FLAGS

19
Help/policy/CMP0042.rst Normal file
View File

@@ -0,0 +1,19 @@
CMP0042
-------
:prop_tgt:`MACOSX_RPATH` is enabled by default.
CMake 2.8.12 and newer has support for using ``@rpath`` in a target's install
name. This was enabled by setting the target property
:prop_tgt:`MACOSX_RPATH`. The ``@rpath`` in an install name is a more
flexible and powerful mechanism than ``@executable_path`` or ``@loader_path``
for locating shared libraries.
CMake 3.0.0 and later prefer this property to be ON by default. Projects
wanting ``@rpath`` in a target's install name may remove any setting of
the :prop_tgt:`INSTALL_NAME_DIR` and :variable:`CMAKE_INSTALL_NAME_DIR`
variables.
This policy was introduced in CMake version 3.0.0. CMake version
|release| warns when the policy is not set and uses OLD behavior. Use
the cmake_policy command to set it to OLD or NEW explicitly.

View File

@@ -4,7 +4,15 @@ MACOSX_RPATH
Whether to use rpaths on Mac OS X.
When this property is set to true, the directory portion of
the"install_name" field of shared libraries will default to
"@rpath".Runtime paths will also be embedded in binaries using this
target.This property is initialized by the value of the variable
CMAKE_MACOSX_RPATH if it is set when a target is created.
the "install_name" field of shared libraries will be ``@rpath``
unless overridden by :prop_tgt:`INSTALL_NAME_DIR`. Runtime
paths will also be embedded in binaries using this target and
can be controlled by the :prop_tgt:`INSTALL_RPATH` target property.
This property is initialized by the value of the variable
:variable:`CMAKE_MACOSX_RPATH` if it is set when a target is
created.
Policy CMP0042 was introduced to change the default value of
MACOSX_RPATH to ON. This is because use of ``@rpath`` is a
more flexible and powerful alternative to ``@executable_path`` and
``@loader_path``.

View File

@@ -0,0 +1,7 @@
CMAKE_MACOSX_RPATH
-------------------
Whether to use rpaths on Mac OS X.
This variable is used to initialize the :prop_tgt:`MACOSX_RPATH` property on
all targets.