summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorTarget.cxx
diff options
context:
space:
mode:
authorClinton Stimpson <clinton@elemtech.com>2017-02-09 15:12:10 (GMT)
committerClinton Stimpson <clinton@elemtech.com>2017-02-14 21:28:07 (GMT)
commit1ba91291e3237e5535a46c6ff1bce6a33d298a76 (patch)
treedb163ae2e44d0e9f8ab6cb6238bd8128b677eaea /Source/cmGeneratorTarget.cxx
parentf7b9bf41c5386dfc38b7a722f75b0e23a02d542b (diff)
downloadCMake-1ba91291e3237e5535a46c6ff1bce6a33d298a76.zip
CMake-1ba91291e3237e5535a46c6ff1bce6a33d298a76.tar.gz
CMake-1ba91291e3237e5535a46c6ff1bce6a33d298a76.tar.bz2
Add policy CMP0068 separate install_name and RPATH settings on macOS
BUILD_WITH_INSTALL_RPATH, SKIP_BUILD_RPATH, CMAKE_SKIP_RPATH and CMAKE_SKIP_INSTALL_RPATH no longer any effect on the install name of a target on macOS. Fixes: #16589
Diffstat (limited to 'Source/cmGeneratorTarget.cxx')
-rw-r--r--Source/cmGeneratorTarget.cxx21
1 files changed, 21 insertions, 0 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index d32bcd8..8512b99 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -1402,14 +1402,30 @@ bool cmGeneratorTarget::MacOSXUseInstallNameDir() const
return cmSystemTools::IsOn(build_with_install_name);
}
+ cmPolicies::PolicyStatus cmp0068 = this->GetPolicyStatusCMP0068();
+ if (cmp0068 == cmPolicies::NEW) {
+ return false;
+ }
+
bool use_install_name = this->GetPropertyAsBool("BUILD_WITH_INSTALL_RPATH");
+ if (use_install_name && cmp0068 == cmPolicies::WARN) {
+ this->LocalGenerator->GetGlobalGenerator()->AddCMP0068WarnTarget(
+ this->GetName());
+ }
+
return use_install_name;
}
bool cmGeneratorTarget::CanGenerateInstallNameDir(
InstallNameType name_type) const
{
+ cmPolicies::PolicyStatus cmp0068 = this->GetPolicyStatusCMP0068();
+
+ if (cmp0068 == cmPolicies::NEW) {
+ return true;
+ }
+
bool skip = this->Makefile->IsOn("CMAKE_SKIP_RPATH");
if (name_type == INSTALL_NAME_FOR_INSTALL) {
skip |= this->Makefile->IsOn("CMAKE_SKIP_INSTALL_RPATH");
@@ -1417,6 +1433,11 @@ bool cmGeneratorTarget::CanGenerateInstallNameDir(
skip |= this->GetPropertyAsBool("SKIP_BUILD_RPATH");
}
+ if (skip && cmp0068 == cmPolicies::WARN) {
+ this->LocalGenerator->GetGlobalGenerator()->AddCMP0068WarnTarget(
+ this->GetName());
+ }
+
return !skip;
}