Commit 0820aa4a46

Meghan Denny <hello@nektro.net>
2024-04-18 12:07:44
std: fix and add test for Build.dependencyFromBuildZig
1 parent 21a6a1b
Changed files (7)
lib
test
lib/std/Build.zig
@@ -1974,7 +1974,7 @@ pub fn dependencyFromBuildZig(
         const dep_name = for (b.available_deps) |dep| {
             if (mem.eql(u8, dep[1], pkg_hash)) break dep[1];
         } else break :find_dep;
-        return dependencyInner(b, dep_name, pkg.build_root, pkg.build_zig, pkg.deps, args);
+        return dependencyInner(b, dep_name, pkg.build_root, pkg.build_zig, pkg_hash, pkg.deps, args);
     }
 
     const full_path = b.pathFromRoot("build.zig.zon");
test/standalone/dependencyFromBuildZig/other/add.zig
@@ -0,0 +1,3 @@
+pub fn add(x: u32, y: u32) u32 {
+    return x + y;
+}
test/standalone/dependencyFromBuildZig/other/build.zig
@@ -0,0 +1,7 @@
+const std = @import("std");
+
+pub fn build(b: *std.Build) void {
+    _ = b.addModule("add", .{
+        .root_source_file = b.path("add.add.zig"),
+    });
+}
test/standalone/dependencyFromBuildZig/other/build.zig.zon
@@ -0,0 +1,6 @@
+.{
+    .name = "other",
+    .version = "0.0.0",
+    .dependencies = .{},
+    .paths = .{""},
+}
test/standalone/dependencyFromBuildZig/build.zig
@@ -0,0 +1,16 @@
+const std = @import("std");
+
+pub fn build(b: *std.Build) void {
+    const test_step = b.step("test", "Test it");
+    b.default_step = test_step;
+
+    const dep1 = b.dependency("other", .{});
+
+    const build_runner = @import("root");
+    const deps = build_runner.dependencies;
+    const zon_decls = @typeInfo(deps.packages).Struct.decls;
+    const pkg = @field(deps.packages, zon_decls[0].name);
+    const dep2 = b.dependencyFromBuildZig(pkg.build_zig, .{});
+
+    std.debug.assert(dep1.module("add") == dep2.module("add"));
+}
test/standalone/dependencyFromBuildZig/build.zig.zon
@@ -0,0 +1,10 @@
+.{
+    .name = "dependencyFromBuildZig",
+    .version = "0.0.0",
+    .dependencies = .{
+        .other = .{
+            .path = "other",
+        },
+    },
+    .paths = .{""},
+}
test/standalone/build.zig.zon
@@ -158,6 +158,9 @@
         .install_headers = .{
             .path = "install_headers",
         },
+        .dependencyFromBuildZig = .{
+            .path = "dependencyFromBuildZig",
+        },
     },
     .paths = .{
         "build.zig",