Skip to content

Commit 9a3540d

Browse files
committed
std.Build: resolved generated paths are cwd-relative
The doc comment here agreed with the implementation, but not with *any* `Step` which populates a `GeneratedFile`, where they are treated as cwd-relative. This is the obvious correct choice, because these paths usually come from joining onto a cache root, and those are cwd-relative if not absolute. This was a pre-existing bug, but #23836 caused it to trigger more often, because the compiler now commonly passes the local cache directory to the build runner process as a relative path where it was previously an absolute path. Resolves: #23954
1 parent 931c6f9 commit 9a3540d

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

lib/std/Build.zig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2443,12 +2443,12 @@ pub const GeneratedFile = struct {
24432443
/// The step that generates the file
24442444
step: *Step,
24452445

2446-
/// The path to the generated file. Must be either absolute or relative to the build root.
2446+
/// The path to the generated file. Must be either absolute or relative to the build runner cwd.
24472447
/// This value must be set in the `fn make()` of the `step` and must not be `null` afterwards.
24482448
path: ?[]const u8 = null,
24492449

24502450
pub fn getPath(gen: GeneratedFile) []const u8 {
2451-
return gen.step.owner.pathFromRoot(gen.path orelse std.debug.panic(
2451+
return gen.step.owner.pathFromCwd(gen.path orelse std.debug.panic(
24522452
"getPath() was called on a GeneratedFile that wasn't built yet. Is there a missing Step dependency on step '{s}'?",
24532453
.{gen.step.name},
24542454
));

0 commit comments

Comments
 (0)