Function detectFromBuilding [src]

Prototype

pub fn detectFromBuilding( arena: Allocator, zig_lib_dir: []const u8, target: std.Target, ) !LibCDirs

Parameters

arena: Allocatorzig_lib_dir: []const u8target: std.Target

Source

pub fn detectFromBuilding( arena: Allocator, zig_lib_dir: []const u8, target: std.Target, ) !LibCDirs { const s = std.fs.path.sep_str; if (target.os.tag.isDarwin()) { const list = try arena.alloc([]const u8, 1); list[0] = try std.fmt.allocPrint( arena, "{s}" ++ s ++ "libc" ++ s ++ "include" ++ s ++ "any-macos-any", .{zig_lib_dir}, ); return .{ .libc_include_dir_list = list, .libc_installation = null, .libc_framework_dir_list = &.{}, .sysroot = null, .darwin_sdk_layout = .vendored, }; } const generic_name = libCGenericName(target); // Some architecture families are handled by the same set of headers. const arch_name = if (target.abi.isMusl()) std.zig.target.muslArchNameHeaders(target.cpu.arch) else @tagName(target.cpu.arch); const os_name = @tagName(target.os.tag); const abi_name = if (target.abi.isMusl()) std.zig.target.muslAbiNameHeaders(target.abi) else @tagName(target.abi); const arch_include_dir = try std.fmt.allocPrint( arena, "{s}" ++ s ++ "libc" ++ s ++ "include" ++ s ++ "{s}-{s}-{s}", .{ zig_lib_dir, arch_name, os_name, abi_name }, ); const generic_include_dir = try std.fmt.allocPrint( arena, "{s}" ++ s ++ "libc" ++ s ++ "include" ++ s ++ "generic-{s}", .{ zig_lib_dir, generic_name }, ); const generic_arch_name = std.zig.target.osArchName(target); const arch_os_include_dir = try std.fmt.allocPrint( arena, "{s}" ++ s ++ "libc" ++ s ++ "include" ++ s ++ "{s}-{s}-any", .{ zig_lib_dir, generic_arch_name, os_name }, ); const generic_os_include_dir = try std.fmt.allocPrint( arena, "{s}" ++ s ++ "libc" ++ s ++ "include" ++ s ++ "any-{s}-any", .{ zig_lib_dir, os_name }, ); const list = try arena.alloc([]const u8, 4); list[0] = arch_include_dir; list[1] = generic_include_dir; list[2] = arch_os_include_dir; list[3] = generic_os_include_dir; return .{ .libc_include_dir_list = list, .libc_installation = null, .libc_framework_dir_list = &.{}, .sysroot = null, .darwin_sdk_layout = .vendored, }; }