Skip to content

Commit 17b3ad8

Browse files
authored
read pkg-config files case insensitive (#5778)
* read pkg-config files case insensitive * Test to make sure that Cflags & CFlags get parsed
1 parent b0d8867 commit 17b3ad8

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

Sources/PackageLoading/PkgConfig.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -208,14 +208,14 @@ internal struct PkgConfigParser {
208208
}
209209
let (key, maybeValue) = line.spm_split(around: ":")
210210
let value = try resolveVariables(maybeValue?.spm_chuzzle() ?? "")
211-
switch key {
212-
case "Requires":
211+
switch key.lowercased() {
212+
case "requires":
213213
dependencies = try parseDependencies(value)
214-
case "Requires.private":
214+
case "requires.private":
215215
privateDependencies = try parseDependencies(value)
216-
case "Libs":
216+
case "libs":
217217
libs = try splitEscapingSpace(value)
218-
case "Cflags":
218+
case "cflags":
219219
cFlags = try splitEscapingSpace(value)
220220
default:
221221
break

Tests/PackageLoadingTests/PkgConfigParserTests.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@ final class PkgConfigParserTests: XCTestCase {
6666
}
6767
}
6868

69+
func testCFlagsCaseInsensitveKeys() {
70+
try! loadPCFile("case_insensitive.pc") { parser in
71+
XCTAssertEqual(parser.cFlags, ["-I/usr/local/include"])
72+
}
73+
}
74+
6975
func testVariableinDependency() {
7076
try! loadPCFile("deps_variable.pc") { parser in
7177
XCTAssertEqual(parser.variables, [
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
prefix=/usr/local/bin
2+
exec_prefix=${prefix}
3+
4+
#some comment
5+
6+
# upstream pkg-config parser allows Cflags & CFlags as key
7+
CFlags: -I/usr/local/include

0 commit comments

Comments
 (0)