zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 97b8d662e63ae90bc7b8bb29221e8b79bca5bfbe (tree)
parent cfdb001a8f0353466a4445cc046341ce9cc43fc5
Author: Jay Petacat <jay@jayschwa.net>
Date:   Mon, 25 Nov 2024 00:01:36 -0700

std.Build: Detect `pkg-config` names with "lib" prefix

Diffstat:
Mlib/std/Build/Step/Compile.zig | 12+++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)

diff --git 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; } }