瀏覽代碼

Merge topic 'xcode-link-TARGET_OBJECTS'

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

Acked-by: Kitware Robot <[email protected]>
Merge-request: !6161
Brad King 4 年之前
父節點
當前提交
34a5163fec

+ 2 - 0
Source/cmGeneratorTarget.cxx

@@ -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);

+ 1 - 3
Tests/RunCMake/add_executable/RunCMakeTest.cmake

@@ -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)

+ 6 - 8
Tests/RunCMake/add_library/RunCMakeTest.cmake

@@ -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)