Source
pub fn isLibCLibName(target: std.Target, name: []const u8) bool {
const ignore_case = target.os.tag.isDarwin() or target.os.tag == .windows;
if (eqlIgnoreCase(ignore_case, name, "c"))
return true;
if (target.isMinGW()) {
if (eqlIgnoreCase(ignore_case, name, "adsiid"))
return true;
if (eqlIgnoreCase(ignore_case, name, "amstrmid"))
return true;
if (eqlIgnoreCase(ignore_case, name, "bits"))
return true;
if (eqlIgnoreCase(ignore_case, name, "delayimp"))
return true;
if (eqlIgnoreCase(ignore_case, name, "dloadhelper"))
return true;
if (eqlIgnoreCase(ignore_case, name, "dmoguids"))
return true;
if (eqlIgnoreCase(ignore_case, name, "dxerr8"))
return true;
if (eqlIgnoreCase(ignore_case, name, "dxerr9"))
return true;
if (eqlIgnoreCase(ignore_case, name, "dxguid"))
return true;
if (eqlIgnoreCase(ignore_case, name, "ksguid"))
return true;
if (eqlIgnoreCase(ignore_case, name, "largeint"))
return true;
if (eqlIgnoreCase(ignore_case, name, "m"))
return true;
if (eqlIgnoreCase(ignore_case, name, "mfuuid"))
return true;
if (eqlIgnoreCase(ignore_case, name, "mingw32"))
return true;
if (eqlIgnoreCase(ignore_case, name, "mingwex"))
return true;
if (eqlIgnoreCase(ignore_case, name, "mingwthrd"))
return true;
if (eqlIgnoreCase(ignore_case, name, "moldname"))
return true;
if (eqlIgnoreCase(ignore_case, name, "msvcrt-os"))
return true;
if (eqlIgnoreCase(ignore_case, name, "portabledeviceguids"))
return true;
if (eqlIgnoreCase(ignore_case, name, "pthread"))
return true;
if (eqlIgnoreCase(ignore_case, name, "scrnsave"))
return true;
if (eqlIgnoreCase(ignore_case, name, "scrnsavw"))
return true;
if (eqlIgnoreCase(ignore_case, name, "strmiids"))
return true;
if (eqlIgnoreCase(ignore_case, name, "uuid"))
return true;
if (eqlIgnoreCase(ignore_case, name, "wbemuuid"))
return true;
if (eqlIgnoreCase(ignore_case, name, "wiaguid"))
return true;
if (eqlIgnoreCase(ignore_case, name, "winpthread"))
return true;
if (eqlIgnoreCase(ignore_case, name, "wmcodecdspuuid"))
return true;
return false;
}
if (target.abi.isGnu() or target.abi.isMusl()) {
if (eqlIgnoreCase(ignore_case, name, "m"))
return true;
if (eqlIgnoreCase(ignore_case, name, "rt"))
return true;
if (eqlIgnoreCase(ignore_case, name, "pthread"))
return true;
if (eqlIgnoreCase(ignore_case, name, "util"))
return true;
if (eqlIgnoreCase(ignore_case, name, "resolv"))
return true;
if (eqlIgnoreCase(ignore_case, name, "dl"))
return true;
}
if (target.abi.isMusl()) {
if (eqlIgnoreCase(ignore_case, name, "crypt"))
return true;
if (eqlIgnoreCase(ignore_case, name, "xnet"))
return true;
if (target.os.tag == .wasi) {
if (eqlIgnoreCase(ignore_case, name, "wasi-emulated-getpid"))
return true;
if (eqlIgnoreCase(ignore_case, name, "wasi-emulated-mman"))
return true;
if (eqlIgnoreCase(ignore_case, name, "wasi-emulated-process-clocks"))
return true;
if (eqlIgnoreCase(ignore_case, name, "wasi-emulated-signal"))
return true;
}
}
if (target.os.tag.isDarwin()) {
if (eqlIgnoreCase(ignore_case, name, "System"))
return true;
if (eqlIgnoreCase(ignore_case, name, "dbm"))
return true;
if (eqlIgnoreCase(ignore_case, name, "dl"))
return true;
if (eqlIgnoreCase(ignore_case, name, "info"))
return true;
if (eqlIgnoreCase(ignore_case, name, "m"))
return true;
if (eqlIgnoreCase(ignore_case, name, "poll"))
return true;
if (eqlIgnoreCase(ignore_case, name, "proc"))
return true;
if (eqlIgnoreCase(ignore_case, name, "pthread"))
return true;
if (eqlIgnoreCase(ignore_case, name, "rpcsvc"))
return true;
}
if (target.os.isAtLeast(.macos, .{ .major = 10, .minor = 8, .patch = 0 }) orelse false) {
if (eqlIgnoreCase(ignore_case, name, "mx"))
return true;
}
if (target.os.tag == .haiku) {
if (eqlIgnoreCase(ignore_case, name, "root"))
return true;
if (eqlIgnoreCase(ignore_case, name, "network"))
return true;
}
if (target.os.tag == .serenity) {
if (eqlIgnoreCase(ignore_case, name, "dl"))
return true;
if (eqlIgnoreCase(ignore_case, name, "m"))
return true;
if (eqlIgnoreCase(ignore_case, name, "pthread"))
return true;
if (eqlIgnoreCase(ignore_case, name, "ssp"))
return true;
}
return false;
}