aboutsummaryrefslogtreecommitdiff
path: root/lib/std/build
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-02-11 23:45:40 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-02-11 23:45:40 -0700
commitb4e344bcf859f2df89637e0825a2e0e57d092ef6 (patch)
tree44465c5c3eadcfdc57f0a0a3eb5cffff9107bd7f /lib/std/build
parent3d0f4b90305bc1815ccc86613cb3da715e9b62c0 (diff)
parentd3565ed6b48c9c66128f181e7b90b5348504cb3f (diff)
downloadzig-b4e344bcf859f2df89637e0825a2e0e57d092ef6.tar.gz
zig-b4e344bcf859f2df89637e0825a2e0e57d092ef6.zip
Merge remote-tracking branch 'origin/master' into ast-memory-layout
Conflicts: * lib/std/zig/ast.zig * lib/std/zig/parse.zig * lib/std/zig/parser_test.zig * lib/std/zig/render.zig * src/Module.zig * src/zir.zig I resolved some of the conflicts by reverting a small portion of @tadeokondrak's stage2 logic here regarding `callconv(.Inline)`. It will need to get reworked as part of this branch.
Diffstat (limited to 'lib/std/build')
-rw-r--r--lib/std/build/check_file.zig4
-rw-r--r--lib/std/build/run.zig13
-rw-r--r--lib/std/build/translate_c.zig4
-rw-r--r--lib/std/build/write_file.zig5
4 files changed, 16 insertions, 10 deletions
diff --git a/lib/std/build/check_file.zig b/lib/std/build/check_file.zig
index 31966fad52..28c98547b7 100644
--- a/lib/std/build/check_file.zig
+++ b/lib/std/build/check_file.zig
@@ -27,8 +27,8 @@ pub const CheckFileStep = struct {
self.* = CheckFileStep{
.builder = builder,
.step = Step.init(.CheckFile, "CheckFile", builder.allocator, make),
- .source = source,
- .expected_matches = expected_matches,
+ .source = source.dupe(builder),
+ .expected_matches = builder.dupeStrings(expected_matches),
};
self.source.addStepDependencies(&self.step);
return self;
diff --git a/lib/std/build/run.zig b/lib/std/build/run.zig
index 8f8fa2eba0..ca39b0216e 100644
--- a/lib/std/build/run.zig
+++ b/lib/std/build/run.zig
@@ -76,7 +76,7 @@ pub const RunStep = struct {
self.argv.append(Arg{
.WriteFile = .{
.step = write_file,
- .file_name = file_name,
+ .file_name = self.builder.dupePath(file_name),
},
}) catch unreachable;
self.step.dependOn(&write_file.step);
@@ -119,7 +119,7 @@ pub const RunStep = struct {
const new_path = self.builder.fmt("{s}" ++ [1]u8{fs.path.delimiter} ++ "{s}", .{ pp, search_path });
env_map.set(key, new_path) catch unreachable;
} else {
- env_map.set(key, search_path) catch unreachable;
+ env_map.set(key, self.builder.dupePath(search_path)) catch unreachable;
}
}
@@ -134,15 +134,18 @@ pub const RunStep = struct {
pub fn setEnvironmentVariable(self: *RunStep, key: []const u8, value: []const u8) void {
const env_map = self.getEnvMap();
- env_map.set(key, value) catch unreachable;
+ env_map.set(
+ self.builder.dupe(key),
+ self.builder.dupe(value),
+ ) catch unreachable;
}
pub fn expectStdErrEqual(self: *RunStep, bytes: []const u8) void {
- self.stderr_action = .{ .expect_exact = bytes };
+ self.stderr_action = .{ .expect_exact = self.builder.dupe(bytes) };
}
pub fn expectStdOutEqual(self: *RunStep, bytes: []const u8) void {
- self.stdout_action = .{ .expect_exact = bytes };
+ self.stdout_action = .{ .expect_exact = self.builder.dupe(bytes) };
}
fn stdIoActionToBehavior(action: StdIoAction) std.ChildProcess.StdIo {
diff --git a/lib/std/build/translate_c.zig b/lib/std/build/translate_c.zig
index b98b0ae9eb..4009079e3d 100644
--- a/lib/std/build/translate_c.zig
+++ b/lib/std/build/translate_c.zig
@@ -57,11 +57,11 @@ pub const TranslateCStep = struct {
}
pub fn addIncludeDir(self: *TranslateCStep, include_dir: []const u8) void {
- self.include_dirs.append(include_dir) catch unreachable;
+ self.include_dirs.append(self.builder.dupePath(include_dir)) catch unreachable;
}
pub fn addCheckFile(self: *TranslateCStep, expected_matches: []const []const u8) *CheckFileStep {
- return CheckFileStep.create(self.builder, .{ .translate_c = self }, expected_matches);
+ return CheckFileStep.create(self.builder, .{ .translate_c = self }, self.builder.dupeStrings(expected_matches));
}
fn make(step: *Step) !void {
diff --git a/lib/std/build/write_file.zig b/lib/std/build/write_file.zig
index bbe6ec5086..6e88aa5633 100644
--- a/lib/std/build/write_file.zig
+++ b/lib/std/build/write_file.zig
@@ -32,7 +32,10 @@ pub const WriteFileStep = struct {
}
pub fn add(self: *WriteFileStep, basename: []const u8, bytes: []const u8) void {
- self.files.append(.{ .basename = basename, .bytes = bytes }) catch unreachable;
+ self.files.append(.{
+ .basename = self.builder.dupePath(basename),
+ .bytes = self.builder.dupe(bytes),
+ }) catch unreachable;
}
/// Unless setOutputDir was called, this function must be called only in