mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-02 11:49:55 -06:00
xcode: Don't set INSTALL_PATH unless target is SHARED_LIBRARY
An empty INSTALL_PATH will confuse Xcode, resulting in the archive action producing archives that can not be uploaded to the App Store. The logic to pull out a install_name_dir only applies to SHARED_LIBRARY targets, so we can skip the setting of the property for all other targets. There might be cases where the INSTALL_PATH code path will also end up setting an empty INSTALL_PATH, but it's unclear whether this is a problem, so to keep the patch minimal the existing code is left as is. Fixes: #15183
This commit is contained in:
committed by
Brad King
parent
5b949bbb91
commit
61acaa12af
@@ -2894,8 +2894,8 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt,
|
||||
}
|
||||
|
||||
// Create the INSTALL_PATH attribute.
|
||||
std::string install_name_dir;
|
||||
if (gtgt->GetType() == cmStateEnums::SHARED_LIBRARY) {
|
||||
std::string install_name_dir;
|
||||
// Get the install_name directory for the build tree.
|
||||
install_name_dir = gtgt->GetInstallNameDirForBuildTree(configName);
|
||||
// Xcode doesn't create the correct install_name in some cases.
|
||||
@@ -2917,9 +2917,9 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt,
|
||||
extraLinkOptions += " -install_name ";
|
||||
extraLinkOptions += XCodeEscapePath(install_name);
|
||||
}
|
||||
buildSettings->AddAttribute("INSTALL_PATH",
|
||||
this->CreateString(install_name_dir));
|
||||
}
|
||||
buildSettings->AddAttribute("INSTALL_PATH",
|
||||
this->CreateString(install_name_dir));
|
||||
|
||||
// Create the LD_RUNPATH_SEARCH_PATHS
|
||||
cmComputeLinkInformation* pcli = gtgt->GetLinkInformation(configName);
|
||||
|
||||
Reference in New Issue
Block a user