aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Build/Step/Options.zig
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std/Build/Step/Options.zig')
-rw-r--r--lib/std/Build/Step/Options.zig57
1 files changed, 28 insertions, 29 deletions
diff --git a/lib/std/Build/Step/Options.zig b/lib/std/Build/Step/Options.zig
index 441928d5b8..610d417aea 100644
--- a/lib/std/Build/Step/Options.zig
+++ b/lib/std/Build/Step/Options.zig
@@ -1,12 +1,13 @@
-const std = @import("std");
+const Options = @This();
const builtin = @import("builtin");
+
+const std = @import("std");
+const Io = std.Io;
const fs = std.fs;
const Step = std.Build.Step;
const GeneratedFile = std.Build.GeneratedFile;
const LazyPath = std.Build.LazyPath;
-const Options = @This();
-
pub const base_id: Step.Id = .options;
step: Step,
@@ -441,6 +442,7 @@ fn make(step: *Step, make_options: Step.MakeOptions) !void {
_ = make_options;
const b = step.owner;
+ const io = b.graph.io;
const options: *Options = @fieldParentPtr("step", step);
for (options.args.items) |item| {
@@ -468,18 +470,15 @@ fn make(step: *Step, make_options: Step.MakeOptions) !void {
// Optimize for the hot path. Stat the file, and if it already exists,
// cache hit.
- if (b.cache_root.handle.access(sub_path, .{})) |_| {
+ if (b.cache_root.handle.access(io, sub_path, .{})) |_| {
// This is the hot path, success.
step.result_cached = true;
return;
} else |outer_err| switch (outer_err) {
error.FileNotFound => {
const sub_dirname = fs.path.dirname(sub_path).?;
- b.cache_root.handle.makePath(sub_dirname) catch |e| {
- return step.fail("unable to make path '{f}{s}': {s}", .{
- b.cache_root, sub_dirname, @errorName(e),
- });
- };
+ b.cache_root.handle.createDirPath(io, sub_dirname) catch |e|
+ return step.fail("unable to make path '{f}{s}': {t}", .{ b.cache_root, sub_dirname, e });
const rand_int = std.crypto.random.int(u64);
const tmp_sub_path = "tmp" ++ fs.path.sep_str ++
@@ -487,40 +486,40 @@ fn make(step: *Step, make_options: Step.MakeOptions) !void {
basename;
const tmp_sub_path_dirname = fs.path.dirname(tmp_sub_path).?;
- b.cache_root.handle.makePath(tmp_sub_path_dirname) catch |err| {
- return step.fail("unable to make temporary directory '{f}{s}': {s}", .{
- b.cache_root, tmp_sub_path_dirname, @errorName(err),
+ b.cache_root.handle.createDirPath(io, tmp_sub_path_dirname) catch |err| {
+ return step.fail("unable to make temporary directory '{f}{s}': {t}", .{
+ b.cache_root, tmp_sub_path_dirname, err,
});
};
- b.cache_root.handle.writeFile(.{ .sub_path = tmp_sub_path, .data = options.contents.items }) catch |err| {
- return step.fail("unable to write options to '{f}{s}': {s}", .{
- b.cache_root, tmp_sub_path, @errorName(err),
+ b.cache_root.handle.writeFile(io, .{ .sub_path = tmp_sub_path, .data = options.contents.items }) catch |err| {
+ return step.fail("unable to write options to '{f}{s}': {t}", .{
+ b.cache_root, tmp_sub_path, err,
});
};
- b.cache_root.handle.rename(tmp_sub_path, sub_path) catch |err| switch (err) {
+ b.cache_root.handle.rename(tmp_sub_path, b.cache_root.handle, sub_path, io) catch |err| switch (err) {
error.PathAlreadyExists => {
// Other process beat us to it. Clean up the temp file.
- b.cache_root.handle.deleteFile(tmp_sub_path) catch |e| {
- try step.addError("warning: unable to delete temp file '{f}{s}': {s}", .{
- b.cache_root, tmp_sub_path, @errorName(e),
+ b.cache_root.handle.deleteFile(io, tmp_sub_path) catch |e| {
+ try step.addError("warning: unable to delete temp file '{f}{s}': {t}", .{
+ b.cache_root, tmp_sub_path, e,
});
};
step.result_cached = true;
return;
},
else => {
- return step.fail("unable to rename options from '{f}{s}' to '{f}{s}': {s}", .{
- b.cache_root, tmp_sub_path,
- b.cache_root, sub_path,
- @errorName(err),
+ return step.fail("unable to rename options from '{f}{s}' to '{f}{s}': {t}", .{
+ b.cache_root, tmp_sub_path,
+ b.cache_root, sub_path,
+ err,
});
},
};
},
- else => |e| return step.fail("unable to access options file '{f}{s}': {s}", .{
- b.cache_root, sub_path, @errorName(e),
+ else => |e| return step.fail("unable to access options file '{f}{s}': {t}", .{
+ b.cache_root, sub_path, e,
}),
}
}
@@ -544,11 +543,11 @@ test Options {
.cache = .{
.io = io,
.gpa = arena.allocator(),
- .manifest_dir = std.fs.cwd(),
+ .manifest_dir = Io.Dir.cwd(),
},
.zig_exe = "test",
.env_map = std.process.EnvMap.init(arena.allocator()),
- .global_cache_root = .{ .path = "test", .handle = std.fs.cwd() },
+ .global_cache_root = .{ .path = "test", .handle = Io.Dir.cwd() },
.host = .{
.query = .{},
.result = try std.zig.system.resolveTargetQuery(io, .{}),
@@ -559,8 +558,8 @@ test Options {
var builder = try std.Build.create(
&graph,
- .{ .path = "test", .handle = std.fs.cwd() },
- .{ .path = "test", .handle = std.fs.cwd() },
+ .{ .path = "test", .handle = Io.Dir.cwd() },
+ .{ .path = "test", .handle = Io.Dir.cwd() },
&.{},
);