summaryrefslogtreecommitdiffstats
path: root/Source/cmComputeLinkInformation.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmComputeLinkInformation.cxx')
-rw-r--r--Source/cmComputeLinkInformation.cxx19
1 files changed, 17 insertions, 2 deletions
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx
index 5d44a6a..b80b3cb 100644
--- a/Source/cmComputeLinkInformation.cxx
+++ b/Source/cmComputeLinkInformation.cxx
@@ -1175,7 +1175,14 @@ void cmComputeLinkInformation::AddItem(LinkEntry const& entry)
LinkEntry libEntry{ entry };
libEntry.Item = lib;
this->AddTargetItem(libEntry);
- this->AddLibraryRuntimeInfo(lib.Value, tgt);
+ if (tgt->IsApple() && tgt->HasImportLibrary(config)) {
+ // Use the library rather than the tbd file for runpath computation
+ this->AddLibraryRuntimeInfo(
+ tgt->GetFullPath(config, cmStateEnums::RuntimeBinaryArtifact, true),
+ tgt);
+ } else {
+ this->AddLibraryRuntimeInfo(lib.Value, tgt);
+ }
if (tgt && tgt->GetType() == cmStateEnums::SHARED_LIBRARY &&
this->Target->IsDLLPlatform()) {
this->AddRuntimeDLL(tgt);
@@ -1261,7 +1268,15 @@ void cmComputeLinkInformation::AddSharedDepItem(LinkEntry const& entry)
? cmStateEnums::ImportLibraryArtifact
: cmStateEnums::RuntimeBinaryArtifact;
lib = tgt->GetFullPath(this->Config, artifact);
- this->AddLibraryRuntimeInfo(lib, tgt);
+ if (tgt->IsApple() && tgt->HasImportLibrary(this->Config)) {
+ // Use the library rather than the tbd file for runpath computation
+ this->AddLibraryRuntimeInfo(
+ tgt->GetFullPath(this->Config, cmStateEnums::RuntimeBinaryArtifact,
+ true),
+ tgt);
+ } else {
+ this->AddLibraryRuntimeInfo(lib, tgt);
+ }
} else {
lib = item.Value;
this->AddLibraryRuntimeInfo(lib);