Allow header and framework search paths to inherit from the project

This commit is contained in:
Oliver Atkinson 2019-03-22 21:08:13 +00:00
parent 2153c7daf1
commit 0eea9275f5
4 changed files with 9 additions and 4 deletions

View File

@ -21,6 +21,7 @@ Please, check out guidelines: https://keepachangelog.com/en/1.0.0/
- Fix manifest target linker errors https://github.com/tuist/tuist/pull/287 by @kwridan
- Build settings not being generated properly https://github.com/tuist/tuist/pull/282 by @pepibumur
- Fix `instance method nearly matches optional requirements` warning in generated `AppDelegate.swift` in iOS projects https://github.com/tuist/tuist/pull/291 by @BalestraPatrick
- Fix Header & Framework search paths override project or xcconfig settings TBC by @ollieatkinson
## 0.12.0

View File

@ -178,7 +178,7 @@ final class LinkGenerator: LinkGenerating {
let pathsValue = Set(paths).sorted().joined(separator: " ")
buildConfigurations?.forEach { buildConfiguration in
var frameworkSearchPaths = (buildConfiguration.buildSettings["FRAMEWORK_SEARCH_PATHS"] as? String) ?? ""
var frameworkSearchPaths = (buildConfiguration.buildSettings["FRAMEWORK_SEARCH_PATHS"] as? String) ?? "$(inherited)"
if frameworkSearchPaths.isEmpty {
frameworkSearchPaths = pathsValue
} else {
@ -198,7 +198,7 @@ final class LinkGenerator: LinkGenerating {
throw LinkGeneratorError.missingConfigurationList(targetName: pbxTarget.name)
}
configurationList.buildConfigurations.forEach {
var headers = ($0.buildSettings["HEADER_SEARCH_PATHS"] as? String) ?? ""
var headers = ($0.buildSettings["HEADER_SEARCH_PATHS"] as? String) ?? "$(inherited)"
headers.append(" \(relativePaths.joined(separator: " "))")
$0.buildSettings["HEADER_SEARCH_PATHS"] = headers
}

View File

@ -96,7 +96,7 @@ final class LinkGeneratorErrorTests: XCTestCase {
pbxTarget: pbxTarget,
sourceRootPath: sourceRootPath)
let expected = "$(SRCROOT)/Dependencies $(SRCROOT)/Dependencies/C"
let expected = "$(inherited) $(SRCROOT)/Dependencies $(SRCROOT)/Dependencies/C"
XCTAssertEqual(debugConfig.buildSettings["FRAMEWORK_SEARCH_PATHS"] as? String, expected)
XCTAssertEqual(releaseConfig.buildSettings["FRAMEWORK_SEARCH_PATHS"] as? String, expected)
}
@ -122,7 +122,7 @@ final class LinkGeneratorErrorTests: XCTestCase {
pbxTarget: pbxTarget,
sourceRootPath: sourceRootPath)
XCTAssertEqual(config.buildSettings["HEADER_SEARCH_PATHS"] as? String, " $(SRCROOT)/headers")
XCTAssertEqual(config.buildSettings["HEADER_SEARCH_PATHS"] as? String, "$(inherited) $(SRCROOT)/headers")
}
func test_setupHeadersSearchPath_throws_whenTheConfigurationListIsMissing() throws {

View File

@ -1,6 +1,10 @@
import ProjectDescription
let settings = Settings(base: [
"HEADER_SEARCH_PATHS": "path/to/lib/include",
])
let project = Project(name: "MainApp",
settings: settings,
targets: [
Target(name: "App",
platform: .iOS,