add a hack to the hack to allow building libraries that link to libraries

with OBJECT type so that path/to/object.o does not get translated to -lobject.o

ok aja@, sthen@, rsadowski@
This commit is contained in:
robert 2022-03-26 08:14:00 +00:00
parent 0979cae76c
commit 30649e8a7a
2 changed files with 10 additions and 6 deletions

View File

@ -6,7 +6,7 @@ VER = 3.20.3
EPOCH = 0
DISTNAME = cmake-${VER}
CATEGORIES = devel
REVISION = 5
REVISION = 6
HOMEPAGE = https://www.cmake.org/

View File

@ -12,7 +12,7 @@ Index: Source/cmComputeLinkInformation.cxx
this->OrderRuntimeSearchPath->SetImplicitDirectories(this->ImplicitLinkDirs);
if (this->OrderDependentRPath) {
this->OrderDependentRPath->SetImplicitDirectories(this->ImplicitLinkDirs);
@@ -713,10 +714,16 @@ void cmComputeLinkInformation::AddItem(BT<std::string>
@@ -713,10 +714,20 @@ void cmComputeLinkInformation::AddItem(BT<std::string>
// This is a directory.
this->DropDirectoryItem(item.Value);
} else {
@ -25,14 +25,18 @@ Index: Source/cmComputeLinkInformation.cxx
+ this->AddFullItem(item);
+ this->AddLibraryRuntimeInfo(item.Value);
+ } else {
+ std::string file = cmSystemTools::GetFilenameName(item.Value);
+ this->AddUserItem(file, false);
+ if (cmHasLiteralSuffix(item.Value, ".o"))
+ this->AddFullItem(item);
+ else {
+ std::string file = cmSystemTools::GetFilenameName(item.Value);
+ this->AddUserItem(file, false);
+ }
+ this->OrderLinkerSearchPath->AddLinkLibrary(item.Value);
+ }
}
} else {
// This is a library or option specified by the user.
@@ -1049,11 +1056,18 @@ void cmComputeLinkInformation::AddTargetItem(BT<std::s
@@ -1049,11 +1060,18 @@ void cmComputeLinkInformation::AddTargetItem(BT<std::s
this->SharedLibrariesLinked.insert(target);
}
@ -55,7 +59,7 @@ Index: Source/cmComputeLinkInformation.cxx
}
// For compatibility with CMake 2.4 include the item's directory in
@@ -1066,6 +1080,27 @@ void cmComputeLinkInformation::AddTargetItem(BT<std::s
@@ -1066,6 +1084,27 @@ void cmComputeLinkInformation::AddTargetItem(BT<std::s
// Now add the full path to the library.
this->Items.emplace_back(item, true, target);