diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2017-04-17 19:08:41 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2017-04-17 19:08:41 -0400 |
| commit | 216e14891ea5fa1a88804d9781ef779d448d1220 (patch) | |
| tree | 8cfa1b656aaa6b6c01bdba7c5b7aedb5916f5088 /std/build.zig | |
| parent | 401eed8153d909eda4146b5a1815dee7130cf1c3 (diff) | |
| download | zig-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.zig | 12 |
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); } } }; |
