Skip to content

Commit 673d666

Browse files
committed
[pkg-config] Resolve variables in dependencies
1 parent 508c083 commit 673d666

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

Sources/Build/PkgConfig.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ struct PkgConfigParser {
118118

119119
private mutating func parseKeyValue(line: String) throws {
120120
if line.hasPrefix("Requires: ") {
121-
dependencies = try parseDependencies(value(line: line))
121+
dependencies = try parseDependencies(resolveVariables(value(line: line)))
122122
} else if line.hasPrefix("Libs: ") {
123123
libs = try resolveVariables(value(line: line)).chomp()
124124
} else if line.hasPrefix("Cflags: ") {

Tests/Build/PkgConfigParserTests.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,15 @@ final class PkgConfigParserTests: XCTestCase {
3232
}
3333
}
3434

35+
func testVariableinDependency() {
36+
loadPCFile("deps_variable.pc") { parser in
37+
XCTAssertEqual(parser.variables, ["prefix": "/usr/local/bin", "exec_prefix": "/usr/local/bin", "my_dep": "atk"])
38+
XCTAssertEqual(parser.dependencies, ["gdk-3.0", "atk"])
39+
XCTAssertEqual(parser.cFlags, "-I")
40+
XCTAssertEqual(parser.libs, "-L/usr/local/bin -lgtk-3 ")
41+
}
42+
}
43+
3544
private func loadPCFile(_ inputName: String, line: UInt = #line, body: (PkgConfigParser) -> Void) {
3645
do {
3746
let input = Path.join(#file, "../pkgconfigInputs", inputName).normpath
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
prefix=/usr/local/bin
2+
exec_prefix=${prefix}
3+
my_dep=atk
4+
#some comment
5+
6+
Requires: gdk-3.0 >= 1.0.0 ${my_dep}
7+
Libs: -L${prefix} -lgtk-3
8+
Cflags: -I

0 commit comments

Comments
 (0)