浏览代码

Xcode: Inherit target library and framework search paths from project

Xcode has multiple levels of build settings with priority in descending
order:

1. Target
2. Project
3. Workspace
4. SDK defaults

`CMAKE_XCODE_ATTRIBUTE_*` path variables add these to project level, but
linked frameworks and libraries override this in target level.  Add the
`$(inherited)` macro to keep both in the final list.

Fixes: #21387
Gusts Kaksis 5 年之前
父节点
当前提交
bffb17be3d
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      Source/cmGlobalXCodeGenerator.cxx

+ 4 - 0
Source/cmGlobalXCodeGenerator.cxx

@@ -3557,6 +3557,8 @@ void cmGlobalXCodeGenerator::AddDependAndLinkInformation(cmXCodeObject* target)
       for (auto& libDir : linkSearchPaths) {
         libSearchPaths.Add(this->XCodeEscapePath(libDir));
       }
+      // Add paths defined in project-wide build settings
+      libSearchPaths.Add("$(inherited)");
       this->AppendBuildSettingAttribute(target, "LIBRARY_SEARCH_PATHS",
                                         libSearchPaths.CreateList(),
                                         configName);
@@ -3570,6 +3572,8 @@ void cmGlobalXCodeGenerator::AddDependAndLinkInformation(cmXCodeObject* target)
       for (auto& fwDir : frameworkSearchPaths) {
         fwSearchPaths.Add(this->XCodeEscapePath(fwDir));
       }
+      // Add paths defined in project-wide build settings
+      fwSearchPaths.Add("$(inherited)");
       this->AppendBuildSettingAttribute(target, "FRAMEWORK_SEARCH_PATHS",
                                         fwSearchPaths.CreateList(),
                                         configName);