Jonathan Marler d9f1a952b8 build: fix WriteFile and addCSourceFiles not adding LazyPath deps
Adds a missing call to addLazyPathDependenciesOnly in
std.Build.Module.addCSourceFiles.  Also fixes an issue in
std.Build.Step.WriteFile where it wasn't updating all the GeneratedFile
instances for every directory.  To fix the second issue, I removed
all the GeneratedFile instances and now all files/directories reference
the steps main GeneratedFile via sub paths.
2024-07-04 13:34:17 -04:00

38 lines
1.1 KiB
Zig

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 optimize: std.builtin.OptimizeMode = .Debug;
{
const write_files = b.addWriteFiles();
const generated_main_c = write_files.add("main.c", "");
const exe = b.addExecutable(.{
.name = "test",
.target = b.graph.host,
.optimize = optimize,
});
exe.addCSourceFiles(.{
.root = generated_main_c.dirname(),
.files = &.{"main.c"},
});
b.step("csourcefiles", "").dependOn(&exe.step);
test_step.dependOn(&exe.step);
}
{
const write_files = b.addWriteFiles();
const dir = write_files.addCopyDirectory(b.path("inc"), "", .{});
const exe = b.addExecutable(.{
.name = "test",
.root_source_file = b.path("inctest.zig"),
.target = b.graph.host,
.optimize = optimize,
});
exe.addIncludePath(dir);
b.step("copydir", "").dependOn(&exe.step);
test_step.dependOn(&exe.step);
}
}