diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fca9e61..b27e327 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,9 +34,9 @@ jobs: submodules: recursive - name: Setup Zig - uses: mlugg/setup-zig@v1 + uses: mlugg/setup-zig@v2 with: - version: 0.14.0 + version: 0.15.2 - name: Build run: zig build -Dtarget=${{ matrix.target }} -Doptimize=${{ matrix.optimize }} diff --git a/build.zig b/build.zig index 4acf920..c1c6142 100644 --- a/build.zig +++ b/build.zig @@ -18,8 +18,8 @@ const BuildSource = struct { bssl: BoringSSLModule, crypto: BoringSSLModule, crypto_test: BoringSSLModule, - // decrepit: BoringSSLModule, - // decrepit_test: BoringSSLModule, + decrepit: BoringSSLModule, + decrepit_test: BoringSSLModule, // fuzz: BoringSSLModule, // modulewrapper: BoringSSLModule, // pki: BoringSSLModule, @@ -146,10 +146,7 @@ pub fn build(b: *std.Build) !void { const upstream_root = patch_step.getDirectory(); // Grab the sources.json which tells us what to build - const sources_json = b.path("sources.json"); - const sources_path = sources_json.getPath(b); - - const sources_file = try build_root.openFile(sources_path, .{}); + const sources_file = try build_root.openFile("sources.json", .{}); const source_content = try sources_file.readToEndAlloc(b.allocator, 1024 * 1024 * 1024); // Parse it @@ -213,6 +210,27 @@ pub fn build(b: *std.Build) !void { .kind = .lib, .dependencies = &.{ gtest, gmock }, }, + ModuleInfo{ + .name = "decrepit", + .module = &build_source.decrepit, + .kind = .lib, + .module_dependencies = &.{ + "crypto", + }, + }, + ModuleInfo{ + .name = "decrepit_test", + .module = &build_source.decrepit_test, + .kind = .exe, + .module_dependencies = &.{ + "decrepit", + "crypto", + "bcm", + "test_support", + }, + .dependencies = &.{ gtest, gmock }, + .system_dependencies = if (target.result.os.tag == .windows) &.{ "ws2_32", "dbghelp" } else &.{}, + }, ModuleInfo{ .name = "ssl_test", .module = &build_source.ssl_test, @@ -248,16 +266,21 @@ pub fn build(b: *std.Build) !void { .exe => { const mod = b.addExecutable(.{ .name = module.name, - .optimize = optimize, - .target = target, + .root_module = b.createModule(.{ + .target = target, + .optimize = optimize, + }), }); break :blk mod; }, .lib => { - const mod = b.addStaticLibrary(.{ + const mod = b.addLibrary(.{ .name = module.name, - .optimize = optimize, - .target = target, + .root_module = b.createModule(.{ + .target = target, + .optimize = optimize, + }), + .linkage = .static, }); break :blk mod; }, @@ -279,8 +302,8 @@ pub fn build(b: *std.Build) !void { const mod = steps.get(module.name).?; // Link std - mod.linkLibC(); - mod.linkLibCpp(); + mod.root_module.link_libc = true; + mod.root_module.link_libcpp = true; // Add the sources from the json module to the zig mod try addSourceFilesFromModule(b, upstream_root, mod, module.module, nasm); diff --git a/build.zig.zon b/build.zig.zon index c378750..dbf5ea4 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -3,22 +3,22 @@ .version = "0.20250514.0", .fingerprint = 0x5f0947d235641b12, .dependencies = .{ - .googletest = .{ - .url = "https://github.com/lukaskastern/googletest/archive/b026ea2f0e2c900ed88e10de39884167a484081b.tar.gz", - .hash = "googletest-1.15.2-AAAAAI0MAABls8Mqi55vY2QzQ1Da9H5AB7l4_Z5x5WMx", - }, .boringssl = .{ .url = "https://github.com/google/boringssl/archive/5622da92e1e7bacb5d0785ff5650a5a23b143b84.tar.gz", .hash = "N-V-__8AALNPTAg4NYYxg9JBYM-yGB8-T1iza-OvymI1uPJY", }, - .patch = .{ - .url = "git+https://github.com/akunaakwei/zig-patch.git#3e609dff44f5ddfc388b9498f72274466b8a677b", - .hash = "patch-2.6.1-po1jOVRtAAAGruHh4xmWulsWNmjhnfZKLvMbtfL1qieU", - }, .nasm = .{ .url = "git+https://github.com/sno2/nasm.git#31622af89d7e90af49d2e610d7dcdf36f8e23c7a", .hash = "nasm-2.16.3-B_NnpU5KAADHG19LPMfgWVyyYyQLDt8S2x3UFOLQfjiN", }, + .patch = .{ + .url = "git+https://github.com/akunaakwei/zig-patch.git#799ade2cd8954a38aba3d730de1a69891aa68234", + .hash = "patch-2.6.1-po1jORRvAAD4_gRpqMKvC00UPblvIpkxvnJdDpG4-DMY", + }, + .googletest = .{ + .url = "git+https://github.com/LukasKastern/googletest.git?ref=boringssl#84916a2eefd59e970ad79c8f067c678d8a72a8fb", + .hash = "googletest-1.15.2-WJyzm3oNAAB198ZoHl_qz-Dwizz6U9JGkjGyofBVZnDj", + }, }, .paths = .{ "build.zig",