aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Build/Step/Compile.zig
diff options
context:
space:
mode:
authorJay Petacat <jay@jayschwa.net>2024-11-25 00:01:36 -0700
committerAndrew Kelley <andrew@ziglang.org>2024-11-29 15:11:14 -0500
commit97b8d662e63ae90bc7b8bb29221e8b79bca5bfbe (patch)
treeb9caad8d43aab8648380fc4ee1b7e630f10044ec /lib/std/Build/Step/Compile.zig
parentcfdb001a8f0353466a4445cc046341ce9cc43fc5 (diff)
downloadzig-97b8d662e63ae90bc7b8bb29221e8b79bca5bfbe.tar.gz
zig-97b8d662e63ae90bc7b8bb29221e8b79bca5bfbe.zip
std.Build: Detect `pkg-config` names with "lib" prefix
Diffstat (limited to 'lib/std/Build/Step/Compile.zig')
-rw-r--r--lib/std/Build/Step/Compile.zig12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig
index f0dad8b49a..1dd444abf2 100644
--- a/lib/std/Build/Step/Compile.zig
+++ b/lib/std/Build/Step/Compile.zig
@@ -695,6 +695,7 @@ fn runPkgConfig(compile: *Compile, lib_name: []const u8) !PkgConfigResult {
// -lSDL2 -> pkg-config sdl2
// -lgdk-3 -> pkg-config gdk-3.0
// -latk-1.0 -> pkg-config atk
+ // -lpulse -> pkg-config libpulse
const pkgs = try getPkgConfigList(b);
// Exact match means instant winner.
@@ -711,13 +712,14 @@ fn runPkgConfig(compile: *Compile, lib_name: []const u8) !PkgConfigResult {
}
}
- // Now try appending ".0".
+ // Prefixed "lib" or suffixed ".0".
for (pkgs) |pkg| {
if (std.ascii.indexOfIgnoreCase(pkg.name, lib_name)) |pos| {
- if (pos != 0) continue;
- if (mem.eql(u8, pkg.name[lib_name.len..], ".0")) {
- break :match pkg.name;
- }
+ const prefix = pkg.name[0..pos];
+ const suffix = pkg.name[pos + lib_name.len ..];
+ if (prefix.len > 0 and !mem.eql(u8, prefix, "lib")) continue;
+ if (suffix.len > 0 and !mem.eql(u8, suffix, ".0")) continue;
+ break :match pkg.name;
}
}