Xcode: Enable multi-arch TARGET_OBJECTS genex in [INTERFACE_]LINK_LIBRARIES

This was an oversight in the original implementation.
This commit is contained in:
Brad King
2021-05-26 14:22:32 -04:00
parent c5657a2fe4
commit 2ae72ef74b
3 changed files with 9 additions and 11 deletions

View File

@@ -6291,6 +6291,7 @@ void cmGeneratorTarget::ExpandLinkItems(
}
std::vector<std::string> libs;
std::unique_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(value);
cge->SetEvaluateForBuildsystem(true);
cmExpandList(cge->Evaluate(this->LocalGenerator, config, headTarget,
&dagChecker, this, headTarget->LinkerLanguage),
libs);
@@ -7428,6 +7429,7 @@ void cmGeneratorTarget::ComputeLinkImplementationLibraries(
nullptr);
cmGeneratorExpression ge(*btIt);
std::unique_ptr<cmCompiledGeneratorExpression> const cge = ge.Parse(*le);
cge->SetEvaluateForBuildsystem(true);
std::string const& evaluated =
cge->Evaluate(this->LocalGenerator, config, head, &dagChecker, nullptr,
this->LinkerLanguage);

View File

@@ -2,6 +2,4 @@ include(RunCMake)
run_cmake(NoSources)
run_cmake(OnlyObjectSources)
if(NOT RunCMake_GENERATOR STREQUAL "Xcode" OR NOT "$ENV{CMAKE_OSX_ARCHITECTURES}" MATCHES "[;$]")
run_cmake(NoSourcesButLinkObjects)
endif()
run_cmake(NoSourcesButLinkObjects)

View File

@@ -16,11 +16,9 @@ run_cmake(SHAREDwithOnlyObjectSources)
run_cmake(MODULEwithOnlyObjectSources)
run_cmake(UNKNOWNwithOnlyObjectSources)
if(NOT RunCMake_GENERATOR STREQUAL "Xcode" OR NOT "$ENV{CMAKE_OSX_ARCHITECTURES}" MATCHES "[;$]")
run_cmake(INTERFACEwithNoSourcesButLinkObjects)
run_cmake(OBJECTwithNoSourcesButLinkObjects)
run_cmake(STATICwithNoSourcesButLinkObjects)
run_cmake(SHAREDwithNoSourcesButLinkObjects)
run_cmake(MODULEwithNoSourcesButLinkObjects)
run_cmake(UNKNOWNwithNoSourcesButLinkObjects)
endif()
run_cmake(INTERFACEwithNoSourcesButLinkObjects)
run_cmake(OBJECTwithNoSourcesButLinkObjects)
run_cmake(STATICwithNoSourcesButLinkObjects)
run_cmake(SHAREDwithNoSourcesButLinkObjects)
run_cmake(MODULEwithNoSourcesButLinkObjects)
run_cmake(UNKNOWNwithNoSourcesButLinkObjects)