diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2019-05-16 19:40:12 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-05-29 20:32:27 -0400 |
| commit | 01a4897da54d6c789b0a5232188bbafbbd660946 (patch) | |
| tree | 274bf44d509e19f832a1f5b8ab7048ce5ba64e66 /std/build.zig | |
| parent | 4188faeac56d9c022fa33449aa4283b1f55395cf (diff) | |
| download | zig-01a4897da54d6c789b0a5232188bbafbbd660946.tar.gz zig-01a4897da54d6c789b0a5232188bbafbbd660946.zip | |
improve the libc of wasm32-freestanding target
* introduce wasm32-freestanding-musl .h files to fix
conflicts with stddef.h and errno.h
* fix an issue with zig build system regarding installation of
webassembly libraries
* add implementations to zig's libc:
- strcmp
- strncmp
- strerror
- strlen
See #514
Diffstat (limited to 'std/build.zig')
| -rw-r--r-- | std/build.zig | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/std/build.zig b/std/build.zig index d427521251..363890bd4b 100644 --- a/std/build.zig +++ b/std/build.zig @@ -877,6 +877,13 @@ pub const Target = union(enum) { }; } + pub fn getArch(self: Target) builtin.Arch { + switch (self) { + Target.Native => return builtin.arch, + Target.Cross => |t| return t.arch, + } + } + pub fn isDarwin(self: Target) bool { return switch (self.getOs()) { .ios, .macosx, .watchos, .tvos => true, @@ -891,6 +898,13 @@ pub const Target = union(enum) { }; } + pub fn isWasm(self: Target) bool { + return switch (self.getArch()) { + .wasm32, .wasm64 => true, + else => false, + }; + } + pub fn isFreeBSD(self: Target) bool { return switch (self.getOs()) { .freebsd => true, @@ -1080,7 +1094,11 @@ pub const LibExeObjStep = struct { self.out_filename = self.builder.fmt("{}.lib", self.name); }, else => { - self.out_filename = self.builder.fmt("lib{}.a", self.name); + if (self.target.isWasm()) { + self.out_filename = self.builder.fmt("{}.wasm", self.name); + } else { + self.out_filename = self.builder.fmt("lib{}.a", self.name); + } }, } self.out_lib_filename = self.out_filename; |
