aboutsummaryrefslogtreecommitdiff
path: root/std/build.zig
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2017-04-17 19:08:41 -0400
committerAndrew Kelley <superjoe30@gmail.com>2017-04-17 19:08:41 -0400
commit216e14891ea5fa1a88804d9781ef779d448d1220 (patch)
tree8cfa1b656aaa6b6c01bdba7c5b7aedb5916f5088 /std/build.zig
parent401eed8153d909eda4146b5a1815dee7130cf1c3 (diff)
downloadzig-216e14891ea5fa1a88804d9781ef779d448d1220.tar.gz
zig-216e14891ea5fa1a88804d9781ef779d448d1220.zip
zig build system creates symlinks atomically
* add std.base64 * add std.os.rename * add std.os.atomicSymLink
Diffstat (limited to 'std/build.zig')
-rw-r--r--std/build.zig12
1 files changed, 4 insertions, 8 deletions
diff --git a/std/build.zig b/std/build.zig
index cdb3c7707c..ad42caa506 100644
--- a/std/build.zig
+++ b/std/build.zig
@@ -816,11 +816,9 @@ const CLibrary = struct {
builder.spawnChild(cc, cc_args.toSliceConst());
// sym link for libfoo.so.1 to libfoo.so.1.2.3
- _ = os.deleteFile(builder.allocator, self.major_only_filename);
- %%os.symLink(builder.allocator, self.out_filename, self.major_only_filename);
+ %%os.atomicSymLink(builder.allocator, self.out_filename, self.major_only_filename);
// sym link for libfoo.so to libfoo.so.1
- _ = os.deleteFile(builder.allocator, self.name_only_filename);
- %%os.symLink(builder.allocator, self.major_only_filename, self.name_only_filename);
+ %%os.atomicSymLink(builder.allocator, self.major_only_filename, self.name_only_filename);
}
}
@@ -1029,10 +1027,8 @@ const InstallCLibraryStep = struct {
self.builder.copyFile(self.lib.out_filename, self.dest_file);
if (!self.lib.static) {
- _ = os.deleteFile(self.builder.allocator, self.lib.major_only_filename);
- %%os.symLink(self.builder.allocator, self.lib.out_filename, self.lib.major_only_filename);
- _ = os.deleteFile(self.builder.allocator, self.lib.name_only_filename);
- %%os.symLink(self.builder.allocator, self.lib.major_only_filename, self.lib.name_only_filename);
+ %%os.atomicSymLink(self.builder.allocator, self.lib.out_filename, self.lib.major_only_filename);
+ %%os.atomicSymLink(self.builder.allocator, self.lib.major_only_filename, self.lib.name_only_filename);
}
}
};