build: update for zig-0.12.0-dev.2208+4debd4338
Incorporate various build API changes. Hopefully there won't be any other major API changes before the 0.12.0 release.
This commit is contained in:
parent
c673c25fc9
commit
9679f074d2
36
build.zig
36
build.zig
@ -5,11 +5,12 @@ const LibreSslBuildOptions = struct {
|
|||||||
libcrypto_name: []const u8 = "crypto",
|
libcrypto_name: []const u8 = "crypto",
|
||||||
libssl_name: []const u8 = "ssl",
|
libssl_name: []const u8 = "ssl",
|
||||||
libtls_name: []const u8 = "tls",
|
libtls_name: []const u8 = "tls",
|
||||||
target: std.zig.CrossTarget,
|
target: std.Build.ResolvedTarget,
|
||||||
optimize: std.builtin.OptimizeMode,
|
optimize: std.builtin.OptimizeMode,
|
||||||
};
|
};
|
||||||
|
|
||||||
const LibreSslLibs = struct {
|
const LibreSslLibs = struct {
|
||||||
|
target: std.Build.ResolvedTarget,
|
||||||
libcrypto: *std.Build.Step.Compile,
|
libcrypto: *std.Build.Step.Compile,
|
||||||
libssl: *std.Build.Step.Compile,
|
libssl: *std.Build.Step.Compile,
|
||||||
libtls: *std.Build.Step.Compile,
|
libtls: *std.Build.Step.Compile,
|
||||||
@ -44,7 +45,7 @@ const LibreSslLibs = struct {
|
|||||||
base: []const u8,
|
base: []const u8,
|
||||||
skiplist: []const SkipSpec,
|
skiplist: []const SkipSpec,
|
||||||
) !void {
|
) !void {
|
||||||
const dir = try b.build_root.handle.openIterableDir(base, .{});
|
const dir = try b.build_root.handle.openDir(base, .{ .iterate = true });
|
||||||
var walker = try dir.walk(b.allocator);
|
var walker = try dir.walk(b.allocator);
|
||||||
defer walker.deinit();
|
defer walker.deinit();
|
||||||
|
|
||||||
@ -73,6 +74,7 @@ pub fn libresslBuild(
|
|||||||
options: LibreSslBuildOptions,
|
options: LibreSslBuildOptions,
|
||||||
) !LibreSslLibs {
|
) !LibreSslLibs {
|
||||||
const libressl_libs: LibreSslLibs = .{
|
const libressl_libs: LibreSslLibs = .{
|
||||||
|
.target = options.target,
|
||||||
.libcrypto = b.addStaticLibrary(.{
|
.libcrypto = b.addStaticLibrary(.{
|
||||||
.name = options.libcrypto_name,
|
.name = options.libcrypto_name,
|
||||||
.target = options.target,
|
.target = options.target,
|
||||||
@ -94,7 +96,7 @@ pub fn libresslBuild(
|
|||||||
|
|
||||||
libressl_libs.linkLibC();
|
libressl_libs.linkLibC();
|
||||||
|
|
||||||
const tinfo = libressl_libs.libcrypto.target_info.target;
|
const tinfo = libressl_libs.target.result;
|
||||||
|
|
||||||
const common_cflags = [_][]const u8{
|
const common_cflags = [_][]const u8{
|
||||||
"-fno-sanitize=undefined",
|
"-fno-sanitize=undefined",
|
||||||
@ -106,13 +108,13 @@ pub fn libresslBuild(
|
|||||||
else => &common_cflags,
|
else => &common_cflags,
|
||||||
};
|
};
|
||||||
|
|
||||||
libressl_libs.libcrypto.addCSourceFiles(&libcrypto_sources, cflags);
|
libressl_libs.libcrypto.addCSourceFiles(.{ .files = &libcrypto_sources, .flags = cflags });
|
||||||
libressl_libs.libcrypto.addCSourceFiles(&libcrypto_nonasm, cflags);
|
libressl_libs.libcrypto.addCSourceFiles(.{ .files = &libcrypto_nonasm, .flags = cflags });
|
||||||
libressl_libs.libcrypto.addCSourceFiles(&libcrypto_nonasm_or_armv4, cflags);
|
libressl_libs.libcrypto.addCSourceFiles(.{ .files = &libcrypto_nonasm_or_armv4, .flags = cflags });
|
||||||
|
|
||||||
libressl_libs.libssl.addCSourceFiles(&libssl_sources, cflags);
|
libressl_libs.libssl.addCSourceFiles(.{ .files = &libssl_sources, .flags = cflags });
|
||||||
|
|
||||||
libressl_libs.libtls.addCSourceFiles(&libtls_sources, cflags);
|
libressl_libs.libtls.addCSourceFiles(.{ .files = &libtls_sources, .flags = cflags });
|
||||||
|
|
||||||
libressl_libs.defineCMacro("LIBRESSL_INTERNAL", null);
|
libressl_libs.defineCMacro("LIBRESSL_INTERNAL", null);
|
||||||
libressl_libs.defineCMacro("OPENSSL_NO_HW_PADLOCK", null);
|
libressl_libs.defineCMacro("OPENSSL_NO_HW_PADLOCK", null);
|
||||||
@ -123,8 +125,8 @@ pub fn libresslBuild(
|
|||||||
|
|
||||||
switch (tinfo.os.tag) {
|
switch (tinfo.os.tag) {
|
||||||
.macos => {
|
.macos => {
|
||||||
libressl_libs.libcrypto.addCSourceFiles(&libcrypto_unix_sources, cflags);
|
libressl_libs.libcrypto.addCSourceFiles(.{ .files = &libcrypto_unix_sources, .flags = cflags });
|
||||||
libressl_libs.libcrypto.addCSourceFiles(&libcrypto_macos_compat, cflags);
|
libressl_libs.libcrypto.addCSourceFiles(.{ .files = &libcrypto_macos_compat, .flags = cflags });
|
||||||
|
|
||||||
libressl_libs.defineCMacro("HAVE_CLOCK_GETTIME", null);
|
libressl_libs.defineCMacro("HAVE_CLOCK_GETTIME", null);
|
||||||
libressl_libs.defineCMacro("HAVE_ASPRINTF", null);
|
libressl_libs.defineCMacro("HAVE_ASPRINTF", null);
|
||||||
@ -147,8 +149,8 @@ pub fn libresslBuild(
|
|||||||
libressl_libs.defineCMacro("HAVE_NETINET_IP_H", null);
|
libressl_libs.defineCMacro("HAVE_NETINET_IP_H", null);
|
||||||
},
|
},
|
||||||
.linux => {
|
.linux => {
|
||||||
libressl_libs.libcrypto.addCSourceFiles(&libcrypto_unix_sources, cflags);
|
libressl_libs.libcrypto.addCSourceFiles(.{ .files = &libcrypto_unix_sources, .flags = cflags });
|
||||||
libressl_libs.libcrypto.addCSourceFiles(&libcrypto_linux_compat, cflags);
|
libressl_libs.libcrypto.addCSourceFiles(.{ .files = &libcrypto_linux_compat, .flags = cflags });
|
||||||
|
|
||||||
libressl_libs.defineCMacro("_DEFAULT_SOURCE", null);
|
libressl_libs.defineCMacro("_DEFAULT_SOURCE", null);
|
||||||
libressl_libs.defineCMacro("_BSD_SOURCE", null);
|
libressl_libs.defineCMacro("_BSD_SOURCE", null);
|
||||||
@ -176,9 +178,9 @@ pub fn libresslBuild(
|
|||||||
libressl_libs.defineCMacro("HAVE_NETINET_IP_H", null);
|
libressl_libs.defineCMacro("HAVE_NETINET_IP_H", null);
|
||||||
|
|
||||||
if (tinfo.abi.isGnu()) {
|
if (tinfo.abi.isGnu()) {
|
||||||
libressl_libs.libcrypto.addCSourceFiles(&libcrypto_linux_glibc_compat, cflags);
|
libressl_libs.libcrypto.addCSourceFiles(.{ .files = &libcrypto_linux_glibc_compat, .flags = cflags });
|
||||||
} else if (tinfo.abi.isMusl()) {
|
} else if (tinfo.abi.isMusl()) {
|
||||||
libressl_libs.libcrypto.addCSourceFiles(&libcrypto_linux_musl_compat, cflags);
|
libressl_libs.libcrypto.addCSourceFiles(.{ .files = &libcrypto_linux_musl_compat, .flags = cflags });
|
||||||
|
|
||||||
libressl_libs.defineCMacro("HAVE_STRLCAT", null);
|
libressl_libs.defineCMacro("HAVE_STRLCAT", null);
|
||||||
libressl_libs.defineCMacro("HAVE_STRLCPY", null);
|
libressl_libs.defineCMacro("HAVE_STRLCPY", null);
|
||||||
@ -188,9 +190,9 @@ pub fn libresslBuild(
|
|||||||
libressl_libs.linkSystemLibrary("pthread");
|
libressl_libs.linkSystemLibrary("pthread");
|
||||||
},
|
},
|
||||||
.windows => {
|
.windows => {
|
||||||
libressl_libs.libcrypto.addCSourceFiles(&libcrypto_windows_sources, cflags);
|
libressl_libs.libcrypto.addCSourceFiles(.{ .files = &libcrypto_windows_sources, .flags = cflags });
|
||||||
libressl_libs.libcrypto.addCSourceFiles(&libcrypto_windows_compat, cflags);
|
libressl_libs.libcrypto.addCSourceFiles(.{ .files = &libcrypto_windows_compat, .flags = cflags });
|
||||||
libressl_libs.libtls.addCSourceFiles(&libtls_windows_sources, cflags);
|
libressl_libs.libtls.addCSourceFiles(.{ .files = &libtls_windows_sources, .flags = cflags });
|
||||||
|
|
||||||
if (tinfo.abi != .msvc) {
|
if (tinfo.abi != .msvc) {
|
||||||
libressl_libs.defineCMacro("_GNU_SOURCE", null);
|
libressl_libs.defineCMacro("_GNU_SOURCE", null);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user