Skip to content

Commit 94ff175

Browse files
committed
[pkg-config] Handle whitespaces while parsing pc files.
1 parent 4bcdcc9 commit 94ff175

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

Sources/Build/PkgConfig.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,10 @@ struct PkgConfigParser {
9595

9696
let file = File(path: self.pcFile)
9797
for line in try file.enumerate() {
98-
// Ignore any commented line.
99-
if line.hasPrefix("#") || line.isEmpty { continue }
100-
// Remove any trailing comment from the line.
101-
let line = removeComment(line: line)
98+
// Remove commented or any trailing comment from the line.
99+
let uncommentedLine = removeComment(line: line)
100+
// Ignore any empty or whitespace line.
101+
guard let line = uncommentedLine.chuzzle() else { continue }
102102

103103
if let colonIndex = line.characters.index(of: ":") where
104104
line.endIndex == colonIndex.successor() || line[colonIndex.successor()] == " " {
@@ -120,9 +120,9 @@ struct PkgConfigParser {
120120
if line.hasPrefix("Requires: ") {
121121
dependencies = try parseDependencies(resolveVariables(value(line: line)))
122122
} else if line.hasPrefix("Libs: ") {
123-
libs = try resolveVariables(value(line: line)).chomp()
123+
libs = try resolveVariables(value(line: line))
124124
} else if line.hasPrefix("Cflags: ") {
125-
cFlags = try resolveVariables(value(line: line)).chomp()
125+
cFlags = try resolveVariables(value(line: line))
126126
}
127127
}
128128

Tests/Build/PkgConfigParserTests.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ final class PkgConfigParserTests: XCTestCase {
1919
guard let parser = parser else { XCTFail("Unexpected parsing error"); return}
2020
XCTAssertEqual(parser.variables, ["libdir": "/usr/local/Cellar/gtk+3/3.18.9/lib", "gtk_host": "x86_64-apple-darwin15.3.0", "includedir": "/usr/local/Cellar/gtk+3/3.18.9/include", "prefix": "/usr/local/Cellar/gtk+3/3.18.9", "gtk_binary_version": "3.0.0", "exec_prefix": "/usr/local/Cellar/gtk+3/3.18.9", "targets": "quartz"])
2121
XCTAssertEqual(parser.dependencies, ["gdk-3.0", "atk", "cairo", "cairo-gobject", "gdk-pixbuf-2.0", "gio-2.0"])
22-
XCTAssertEqual(parser.cFlags, "-I/usr/local/Cellar/gtk+3/3.18.9/include/gtk-3.0 ")
23-
XCTAssertEqual(parser.libs, "-L/usr/local/Cellar/gtk+3/3.18.9/lib -lgtk-3 ")
22+
XCTAssertEqual(parser.cFlags, "-I/usr/local/Cellar/gtk+3/3.18.9/include/gtk-3.0")
23+
XCTAssertEqual(parser.libs, "-L/usr/local/Cellar/gtk+3/3.18.9/lib -lgtk-3")
2424
}
2525
}
2626

@@ -30,7 +30,7 @@ final class PkgConfigParserTests: XCTestCase {
3030
XCTAssertEqual(parser.variables, ["prefix": "/usr/local/bin", "exec_prefix": "/usr/local/bin"])
3131
XCTAssertEqual(parser.dependencies, ["gdk-3.0", "atk"])
3232
XCTAssertEqual(parser.cFlags, "")
33-
XCTAssertEqual(parser.libs, "-L/usr/local/bin -lgtk-3 ")
33+
XCTAssertEqual(parser.libs, "-L/usr/local/bin -lgtk-3")
3434
}
3535
}
3636

@@ -40,7 +40,7 @@ final class PkgConfigParserTests: XCTestCase {
4040
XCTAssertEqual(parser.variables, ["prefix": "/usr/local/bin", "exec_prefix": "/usr/local/bin", "my_dep": "atk"])
4141
XCTAssertEqual(parser.dependencies, ["gdk-3.0", "atk"])
4242
XCTAssertEqual(parser.cFlags, "-I")
43-
XCTAssertEqual(parser.libs, "-L/usr/local/bin -lgtk-3 ")
43+
XCTAssertEqual(parser.libs, "-L/usr/local/bin -lgtk-3")
4444
}
4545
}
4646

0 commit comments

Comments
 (0)