Skip to content

Commit b5542af

Browse files
abertelrudaciidgh
authored andcommitted
R-37354691
Make sure that OTHER_CFLAGS starts out with `$(inherited)`, as OTHER_LDFLAGS and OTHER_SWIFT_FLAGS do. This is appropriate even if there is no other addition to OTHER_CFLAGS; in that case it is a no-op but serves as an indication that if anything else is added by hand, `$(inherited)` needs to be included to avoid masking underlying values.
1 parent 592e14b commit b5542af

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

Sources/Xcodeproj/pbxproj().swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,11 @@ func xcodeProject(
445445
}
446446
}
447447

448+
// Make sure that build settings for C flags, Swift flags, and linker
449+
// flags include any inherited value at the beginning. This is useful
450+
// even if nothing ends up being added, since it's a cue to anyone who
451+
// edits the setting that the inherited value should be preserved.
452+
targetSettings.common.OTHER_CFLAGS = ["$(inherited)"]
448453
targetSettings.common.OTHER_LDFLAGS = ["$(inherited)"]
449454
targetSettings.common.OTHER_SWIFT_FLAGS = ["$(inherited)"]
450455

Tests/XcodeprojTests/PackageGraphTests.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ class PackageGraphTests: XCTestCase {
7575
result.check(target: "Foo") { targetResult in
7676
targetResult.check(productType: .framework)
7777
targetResult.check(dependencies: [])
78+
XCTAssertEqual(targetResult.commonBuildSettings.OTHER_CFLAGS?.first, "$(inherited)")
79+
XCTAssertEqual(targetResult.commonBuildSettings.OTHER_LDFLAGS?.first, "$(inherited)")
80+
XCTAssertEqual(targetResult.commonBuildSettings.OTHER_SWIFT_FLAGS?.first, "$(inherited)")
7881
XCTAssertEqual(targetResult.commonBuildSettings.SKIP_INSTALL, "YES")
7982
XCTAssertEqual(targetResult.target.buildSettings.xcconfigFileRef?.path, "../Overrides.xcconfig")
8083
XCTAssertNil(targetResult.target.buildSettings.common.SDKROOT)
@@ -84,6 +87,9 @@ class PackageGraphTests: XCTestCase {
8487
targetResult.check(productType: .framework)
8588
targetResult.check(dependencies: ["Foo"])
8689
XCTAssertEqual(targetResult.commonBuildSettings.LD_RUNPATH_SEARCH_PATHS ?? [], ["$(inherited)", "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx"])
90+
XCTAssertEqual(targetResult.commonBuildSettings.OTHER_CFLAGS?.first, "$(inherited)")
91+
XCTAssertEqual(targetResult.commonBuildSettings.OTHER_LDFLAGS?.first, "$(inherited)")
92+
XCTAssertEqual(targetResult.commonBuildSettings.OTHER_SWIFT_FLAGS?.first, "$(inherited)")
8793
XCTAssertEqual(targetResult.commonBuildSettings.SKIP_INSTALL, "YES")
8894
XCTAssertEqual(targetResult.target.buildSettings.xcconfigFileRef?.path, "../Overrides.xcconfig")
8995
}
@@ -92,6 +98,9 @@ class PackageGraphTests: XCTestCase {
9298
targetResult.check(productType: .framework)
9399
targetResult.check(dependencies: ["Foo"])
94100
XCTAssertEqual(targetResult.commonBuildSettings.MODULEMAP_FILE, nil)
101+
XCTAssertEqual(targetResult.commonBuildSettings.OTHER_CFLAGS?.first, "$(inherited)")
102+
XCTAssertEqual(targetResult.commonBuildSettings.OTHER_LDFLAGS?.first, "$(inherited)")
103+
XCTAssertEqual(targetResult.commonBuildSettings.OTHER_SWIFT_FLAGS?.first, "$(inherited)")
95104
XCTAssertEqual(targetResult.commonBuildSettings.SKIP_INSTALL, "YES")
96105
XCTAssertEqual(targetResult.target.buildSettings.xcconfigFileRef?.path, "../Overrides.xcconfig")
97106
}
@@ -100,6 +109,9 @@ class PackageGraphTests: XCTestCase {
100109
targetResult.check(productType: .framework)
101110
targetResult.check(dependencies: ["Foo"])
102111
XCTAssertEqual(targetResult.commonBuildSettings.MODULEMAP_FILE, nil)
112+
XCTAssertEqual(targetResult.commonBuildSettings.OTHER_CFLAGS?.first, "$(inherited)")
113+
XCTAssertEqual(targetResult.commonBuildSettings.OTHER_LDFLAGS?.first, "$(inherited)")
114+
XCTAssertEqual(targetResult.commonBuildSettings.OTHER_SWIFT_FLAGS?.first, "$(inherited)")
103115
XCTAssertEqual(targetResult.commonBuildSettings.SKIP_INSTALL, "YES")
104116
XCTAssertEqual(targetResult.target.buildSettings.xcconfigFileRef?.path, "../Overrides.xcconfig")
105117
}
@@ -108,6 +120,9 @@ class PackageGraphTests: XCTestCase {
108120
targetResult.check(productType: .unitTest)
109121
targetResult.check(dependencies: ["Bar", "Foo"])
110122
XCTAssertEqual(targetResult.commonBuildSettings.LD_RUNPATH_SEARCH_PATHS ?? [], ["$(inherited)", "@loader_path/../Frameworks", "@loader_path/Frameworks"])
123+
XCTAssertEqual(targetResult.commonBuildSettings.OTHER_CFLAGS?.first, "$(inherited)")
124+
XCTAssertEqual(targetResult.commonBuildSettings.OTHER_LDFLAGS?.first, "$(inherited)")
125+
XCTAssertEqual(targetResult.commonBuildSettings.OTHER_SWIFT_FLAGS?.first, "$(inherited)")
111126
XCTAssertEqual(targetResult.target.buildSettings.xcconfigFileRef?.path, "../Overrides.xcconfig")
112127
}
113128

0 commit comments

Comments
 (0)