mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-26 18:58:34 -06:00
Merge branch 'cuda_device_link_handle_frameworks' into release-3.14
Merge-request: !3039
This commit is contained in:
@@ -34,6 +34,7 @@ static bool cmLinkItemValidForDevice(std::string const& item)
|
||||
// * '-lpthread' => pass-along
|
||||
// * '-pthread' => drop
|
||||
// * '-a' => drop
|
||||
// * '-framework Name' (as one string) => drop
|
||||
return (!cmHasLiteralPrefix(item, "-") || //
|
||||
cmHasLiteralPrefix(item, "-l") || //
|
||||
cmHasLiteralPrefix(item, "-L") || //
|
||||
@@ -54,7 +55,13 @@ std::string cmLinkLineDeviceComputer::ComputeLinkLibraries(
|
||||
typedef cmComputeLinkInformation::ItemVector ItemVector;
|
||||
ItemVector const& items = cli.GetItems();
|
||||
std::string config = cli.GetConfig();
|
||||
bool skipItemAfterFramework = false;
|
||||
for (auto const& item : items) {
|
||||
if (skipItemAfterFramework) {
|
||||
skipItemAfterFramework = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (item.Target) {
|
||||
bool skip = false;
|
||||
switch (item.Target->GetType()) {
|
||||
@@ -84,6 +91,11 @@ std::string cmLinkLineDeviceComputer::ComputeLinkLibraries(
|
||||
out += this->ConvertToOutputFormat(
|
||||
this->ConvertToLinkReference(item.Value));
|
||||
}
|
||||
} else if (item.Value == "-framework") {
|
||||
// This is the first part of '-framework Name' where the framework
|
||||
// name is specified as a following item. Ignore both.
|
||||
skipItemAfterFramework = true;
|
||||
continue;
|
||||
} else if (cmLinkItemValidForDevice(item.Value)) {
|
||||
out += item.Value;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user