diff options
author | 2022-08-03 19:13:08 -0700 | |
---|---|---|
committer | 2022-08-03 19:13:08 -0700 | |
commit | 440eba7c9bec96849adcf7018ea0371973550bfa (patch) | |
tree | e1b6cac7e300be94018193888aa9a3f8949fe67c /build.zig | |
parent | cf81ee5f418c4076cd6def7cc9108997da486869 (diff) | |
download | bun-440eba7c9bec96849adcf7018ea0371973550bfa.tar.gz bun-440eba7c9bec96849adcf7018ea0371973550bfa.tar.zst bun-440eba7c9bec96849adcf7018ea0371973550bfa.zip |
[misc] Fix `make headers`
Diffstat (limited to 'build.zig')
-rw-r--r-- | build.zig | 73 |
1 files changed, 41 insertions, 32 deletions
@@ -304,51 +304,52 @@ pub fn build(b: *std.build.Builder) !void { var obj_step = b.step("obj", "Build bun as a .o file"); var obj = b.addObject(bun_executable_name, exe.root_src.?.path); + var opts = b.addOptions(); + + const is_baseline = arch.isX86() and (obj.target.cpu_model == .baseline or + !std.Target.x86.featureSetHas(obj.target.getCpuFeatures(), .avx2)); + var git_sha: [:0]const u8 = ""; + if (std.os.getenvZ("GITHUB_SHA") orelse std.os.getenvZ("GIT_SHA")) |sha| { + git_sha = std.heap.page_allocator.dupeZ(u8, sha) catch unreachable; + } else { + sha: { + const result = std.ChildProcess.exec(.{ + .allocator = std.heap.page_allocator, + .argv = &.{ + "git", + "rev-parse", + "--short", + "HEAD", + }, + .cwd = b.pathFromRoot("."), + .expand_arg0 = .expand, + }) catch { + std.debug.print("Warning: failed to get git HEAD", .{}); + break :sha; + }; + + git_sha = std.heap.page_allocator.dupeZ(u8, result.stdout) catch unreachable; + } + } + + const is_canary = (std.os.getenvZ("BUN_CANARY") orelse "0")[0] == '1'; { obj.setTarget(target); addPicoHTTP(obj, false); obj.setMainPkgPath(b.pathFromRoot(".")); - var opts = b.addOptions(); opts.addOption( bool, "bindgen", false, ); - const is_baseline = arch.isX86() and (obj.target.cpu_model == .baseline or - !std.Target.x86.featureSetHas(obj.target.getCpuFeatures(), .avx2)); + opts.addOption( bool, "baseline", is_baseline, ); - var git_sha: [:0]const u8 = ""; - if (std.os.getenvZ("GITHUB_SHA") orelse std.os.getenvZ("GIT_SHA")) |sha| { - git_sha = std.heap.page_allocator.dupeZ(u8, sha) catch unreachable; - } else { - sha: { - const result = std.ChildProcess.exec(.{ - .allocator = std.heap.page_allocator, - .argv = &.{ - "git", - "rev-parse", - "--short", - "HEAD", - }, - .cwd = b.pathFromRoot("."), - .expand_arg0 = .expand, - }) catch { - std.debug.print("Warning: failed to get git HEAD", .{}); - break :sha; - }; - - git_sha = std.heap.page_allocator.dupeZ(u8, result.stdout) catch unreachable; - } - } - - const is_canary = (std.os.getenvZ("BUN_CANARY") orelse "0")[0] == '1'; - opts.addOption([:0]const u8, "sha", git_sha); opts.addOption(bool, "is_canary", is_canary); obj.addOptions("build_options", opts); @@ -413,13 +414,21 @@ pub fn build(b: *std.build.Builder) !void { var headers_obj: *std.build.LibExeObjStep = b.addObject("headers", "src/bindgen.zig"); defer headers_step.dependOn(&headers_obj.step); try configureObjectStep(b, headers_obj, target, obj.main_pkg_path.?); - var opts = b.addOptions(); - opts.addOption( + var headers_opts = b.addOptions(); + headers_opts.addOption( bool, "bindgen", true, ); - headers_obj.addOptions("build_options", opts); + headers_opts.addOption( + bool, + "baseline", + is_baseline, + ); + headers_opts.addOption([:0]const u8, "sha", git_sha); + headers_opts.addOption(bool, "is_canary", is_canary); + headers_obj.addOptions("build_options", headers_opts); + headers_obj.linkLibCpp(); } |