|
|
@@ -2363,20 +2363,21 @@ void cmComputeLinkInformation::AddLibraryRuntimeInfo(
|
|
|
if (target->GetType() != cmStateEnums::SHARED_LIBRARY) {
|
|
|
return;
|
|
|
}
|
|
|
- auto const* info = target->GetImportInfo(this->Config);
|
|
|
+
|
|
|
+ // Skip targets that do not have a known runtime artifact.
|
|
|
+ if (!target->HasKnownRuntimeArtifactLocation(this->Config)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
// Try to get the soname of the library. Only files with this name
|
|
|
// could possibly conflict.
|
|
|
- const char* soname =
|
|
|
- (!info || info->SOName.empty()) ? nullptr : info->SOName.c_str();
|
|
|
-
|
|
|
- // If this shared library has a known runtime artifact (IMPORTED_LOCATION),
|
|
|
- // include its location in the runtime path ordering.
|
|
|
- if (!info || !info->Location.empty()) {
|
|
|
- this->OrderRuntimeSearchPath->AddRuntimeLibrary(fullPath, soname);
|
|
|
- if (this->LinkWithRuntimePath) {
|
|
|
- this->OrderLinkerSearchPath->AddRuntimeLibrary(fullPath, soname);
|
|
|
- }
|
|
|
+ std::string soName = target->GetSOName(this->Config);
|
|
|
+ const char* soname = soName.empty() ? nullptr : soName.c_str();
|
|
|
+
|
|
|
+ // Include this library in the runtime path ordering.
|
|
|
+ this->OrderRuntimeSearchPath->AddRuntimeLibrary(fullPath, soname);
|
|
|
+ if (this->LinkWithRuntimePath) {
|
|
|
+ this->OrderLinkerSearchPath->AddRuntimeLibrary(fullPath, soname);
|
|
|
}
|
|
|
}
|
|
|
|