mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 06:13:07 +00:00
parent
ba575595bb
commit
0157e1196c
@ -34,7 +34,6 @@ pub fn build(b: *std.Build) !void {
|
|||||||
const skip_install_langref = b.option(bool, "no-langref", "skip copying of langref to the installation prefix") orelse skip_install_lib_files;
|
const skip_install_langref = b.option(bool, "no-langref", "skip copying of langref to the installation prefix") orelse skip_install_lib_files;
|
||||||
const skip_install_autodocs = b.option(bool, "no-autodocs", "skip copying of standard library autodocs to the installation prefix") orelse skip_install_lib_files;
|
const skip_install_autodocs = b.option(bool, "no-autodocs", "skip copying of standard library autodocs to the installation prefix") orelse skip_install_lib_files;
|
||||||
const no_bin = b.option(bool, "no-bin", "skip emitting compiler binary") orelse false;
|
const no_bin = b.option(bool, "no-bin", "skip emitting compiler binary") orelse false;
|
||||||
const only_reduce = b.option(bool, "only-reduce", "only build zig reduce") orelse false;
|
|
||||||
|
|
||||||
const docgen_exe = b.addExecutable(.{
|
const docgen_exe = b.addExecutable(.{
|
||||||
.name = "docgen",
|
.name = "docgen",
|
||||||
@ -245,7 +244,6 @@ pub fn build(b: *std.Build) !void {
|
|||||||
exe_options.addOption(bool, "force_gpa", force_gpa);
|
exe_options.addOption(bool, "force_gpa", force_gpa);
|
||||||
exe_options.addOption(bool, "only_c", only_c);
|
exe_options.addOption(bool, "only_c", only_c);
|
||||||
exe_options.addOption(bool, "only_core_functionality", only_c);
|
exe_options.addOption(bool, "only_core_functionality", only_c);
|
||||||
exe_options.addOption(bool, "only_reduce", only_reduce);
|
|
||||||
|
|
||||||
if (link_libc) {
|
if (link_libc) {
|
||||||
exe.linkLibC();
|
exe.linkLibC();
|
||||||
@ -407,7 +405,6 @@ pub fn build(b: *std.Build) !void {
|
|||||||
test_cases_options.addOption(bool, "force_gpa", force_gpa);
|
test_cases_options.addOption(bool, "force_gpa", force_gpa);
|
||||||
test_cases_options.addOption(bool, "only_c", only_c);
|
test_cases_options.addOption(bool, "only_c", only_c);
|
||||||
test_cases_options.addOption(bool, "only_core_functionality", true);
|
test_cases_options.addOption(bool, "only_core_functionality", true);
|
||||||
test_cases_options.addOption(bool, "only_reduce", false);
|
|
||||||
test_cases_options.addOption(bool, "enable_qemu", b.enable_qemu);
|
test_cases_options.addOption(bool, "enable_qemu", b.enable_qemu);
|
||||||
test_cases_options.addOption(bool, "enable_wine", b.enable_wine);
|
test_cases_options.addOption(bool, "enable_wine", b.enable_wine);
|
||||||
test_cases_options.addOption(bool, "enable_wasmtime", b.enable_wasmtime);
|
test_cases_options.addOption(bool, "enable_wasmtime", b.enable_wasmtime);
|
||||||
@ -599,7 +596,6 @@ fn addWasiUpdateStep(b: *std.Build, version: [:0]const u8) !void {
|
|||||||
exe_options.addOption(bool, "enable_tracy_allocation", false);
|
exe_options.addOption(bool, "enable_tracy_allocation", false);
|
||||||
exe_options.addOption(bool, "value_tracing", false);
|
exe_options.addOption(bool, "value_tracing", false);
|
||||||
exe_options.addOption(bool, "only_core_functionality", true);
|
exe_options.addOption(bool, "only_core_functionality", true);
|
||||||
exe_options.addOption(bool, "only_reduce", false);
|
|
||||||
|
|
||||||
const run_opt = b.addSystemCommand(&.{
|
const run_opt = b.addSystemCommand(&.{
|
||||||
"wasm-opt",
|
"wasm-opt",
|
||||||
|
|||||||
@ -2,7 +2,6 @@ const std = @import("std");
|
|||||||
const mem = std.mem;
|
const mem = std.mem;
|
||||||
const Allocator = std.mem.Allocator;
|
const Allocator = std.mem.Allocator;
|
||||||
const assert = std.debug.assert;
|
const assert = std.debug.assert;
|
||||||
const fatal = @import("./main.zig").fatal;
|
|
||||||
const Ast = std.zig.Ast;
|
const Ast = std.zig.Ast;
|
||||||
const Walk = @import("reduce/Walk.zig");
|
const Walk = @import("reduce/Walk.zig");
|
||||||
const AstGen = std.zig.AstGen;
|
const AstGen = std.zig.AstGen;
|
||||||
@ -47,7 +46,16 @@ const Interestingness = enum { interesting, unknown, boring };
|
|||||||
// - reduce flags sent to the compiler
|
// - reduce flags sent to the compiler
|
||||||
// - integrate with the build system?
|
// - integrate with the build system?
|
||||||
|
|
||||||
pub fn main(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
|
pub fn main() !void {
|
||||||
|
var arena_instance = std.heap.ArenaAllocator.init(std.heap.page_allocator);
|
||||||
|
defer arena_instance.deinit();
|
||||||
|
const arena = arena_instance.allocator();
|
||||||
|
|
||||||
|
var general_purpose_allocator: std.heap.GeneralPurposeAllocator(.{}) = .{};
|
||||||
|
const gpa = general_purpose_allocator.allocator();
|
||||||
|
|
||||||
|
const args = try std.process.argsAlloc(arena);
|
||||||
|
|
||||||
var opt_checker_path: ?[]const u8 = null;
|
var opt_checker_path: ?[]const u8 = null;
|
||||||
var opt_root_source_file_path: ?[]const u8 = null;
|
var opt_root_source_file_path: ?[]const u8 = null;
|
||||||
var argv: []const []const u8 = &.{};
|
var argv: []const []const u8 = &.{};
|
||||||
@ -55,7 +63,7 @@ pub fn main(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
|
|||||||
var skip_smoke_test = false;
|
var skip_smoke_test = false;
|
||||||
|
|
||||||
{
|
{
|
||||||
var i: usize = 2; // skip over "zig" and "reduce"
|
var i: usize = 1;
|
||||||
while (i < args.len) : (i += 1) {
|
while (i < args.len) : (i += 1) {
|
||||||
const arg = args[i];
|
const arg = args[i];
|
||||||
if (mem.startsWith(u8, arg, "-")) {
|
if (mem.startsWith(u8, arg, "-")) {
|
||||||
@ -411,3 +419,8 @@ fn parse(gpa: Allocator, file_path: []const u8) !Ast {
|
|||||||
|
|
||||||
return tree;
|
return tree;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn fatal(comptime format: []const u8, args: anytype) noreturn {
|
||||||
|
std.log.err(format, args);
|
||||||
|
std.process.exit(1);
|
||||||
|
}
|
||||||
30
src/main.zig
30
src/main.zig
@ -203,14 +203,6 @@ pub fn main() anyerror!void {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (build_options.only_reduce) {
|
|
||||||
if (mem.eql(u8, args[1], "reduce")) {
|
|
||||||
return @import("reduce.zig").main(gpa, arena, args);
|
|
||||||
} else {
|
|
||||||
@panic("only reduce is supported in a -Donly-reduce build");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return mainArgs(gpa, arena, args);
|
return mainArgs(gpa, arena, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -302,7 +294,7 @@ fn mainArgs(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
|
|||||||
} else if (mem.eql(u8, cmd, "rc")) {
|
} else if (mem.eql(u8, cmd, "rc")) {
|
||||||
return cmdRc(gpa, arena, args[1..]);
|
return cmdRc(gpa, arena, args[1..]);
|
||||||
} else if (mem.eql(u8, cmd, "fmt")) {
|
} else if (mem.eql(u8, cmd, "fmt")) {
|
||||||
return cmdFmt(gpa, arena, cmd_args);
|
return jitCmd(gpa, arena, cmd_args, "fmt", "fmt.zig");
|
||||||
} else if (mem.eql(u8, cmd, "objcopy")) {
|
} else if (mem.eql(u8, cmd, "objcopy")) {
|
||||||
return @import("objcopy.zig").cmdObjCopy(gpa, arena, cmd_args);
|
return @import("objcopy.zig").cmdObjCopy(gpa, arena, cmd_args);
|
||||||
} else if (mem.eql(u8, cmd, "fetch")) {
|
} else if (mem.eql(u8, cmd, "fetch")) {
|
||||||
@ -325,7 +317,7 @@ fn mainArgs(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
|
|||||||
verifyLibcxxCorrectlyLinked();
|
verifyLibcxxCorrectlyLinked();
|
||||||
return @import("print_env.zig").cmdEnv(arena, cmd_args, io.getStdOut().writer());
|
return @import("print_env.zig").cmdEnv(arena, cmd_args, io.getStdOut().writer());
|
||||||
} else if (mem.eql(u8, cmd, "reduce")) {
|
} else if (mem.eql(u8, cmd, "reduce")) {
|
||||||
return @import("reduce.zig").main(gpa, arena, args);
|
return jitCmd(gpa, arena, cmd_args, "reduce", "reduce.zig");
|
||||||
} else if (mem.eql(u8, cmd, "zen")) {
|
} else if (mem.eql(u8, cmd, "zen")) {
|
||||||
return io.getStdOut().writeAll(info_zen);
|
return io.getStdOut().writeAll(info_zen);
|
||||||
} else if (mem.eql(u8, cmd, "help") or mem.eql(u8, cmd, "-h") or mem.eql(u8, cmd, "--help")) {
|
} else if (mem.eql(u8, cmd, "help") or mem.eql(u8, cmd, "-h") or mem.eql(u8, cmd, "--help")) {
|
||||||
@ -5710,7 +5702,13 @@ fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn cmdFmt(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
|
fn jitCmd(
|
||||||
|
gpa: Allocator,
|
||||||
|
arena: Allocator,
|
||||||
|
args: []const []const u8,
|
||||||
|
cmd_name: []const u8,
|
||||||
|
root_src_path: []const u8,
|
||||||
|
) !void {
|
||||||
const color: Color = .auto;
|
const color: Color = .auto;
|
||||||
|
|
||||||
const target_query: std.Target.Query = .{};
|
const target_query: std.Target.Query = .{};
|
||||||
@ -5721,7 +5719,7 @@ fn cmdFmt(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const exe_basename = try std.zig.binNameAlloc(arena, .{
|
const exe_basename = try std.zig.binNameAlloc(arena, .{
|
||||||
.root_name = "fmt",
|
.root_name = cmd_name,
|
||||||
.target = resolved_target.result,
|
.target = resolved_target.result,
|
||||||
.output_mode = .Exe,
|
.output_mode = .Exe,
|
||||||
});
|
});
|
||||||
@ -5771,7 +5769,7 @@ fn cmdFmt(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
|
|||||||
.root_dir = zig_lib_directory,
|
.root_dir = zig_lib_directory,
|
||||||
.sub_path = "std/zig",
|
.sub_path = "std/zig",
|
||||||
},
|
},
|
||||||
.root_src_path = "fmt.zig",
|
.root_src_path = root_src_path,
|
||||||
};
|
};
|
||||||
|
|
||||||
const config = try Compilation.Config.resolve(.{
|
const config = try Compilation.Config.resolve(.{
|
||||||
@ -5801,7 +5799,7 @@ fn cmdFmt(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
|
|||||||
.zig_lib_directory = zig_lib_directory,
|
.zig_lib_directory = zig_lib_directory,
|
||||||
.local_cache_directory = global_cache_directory,
|
.local_cache_directory = global_cache_directory,
|
||||||
.global_cache_directory = global_cache_directory,
|
.global_cache_directory = global_cache_directory,
|
||||||
.root_name = "fmt",
|
.root_name = cmd_name,
|
||||||
.config = config,
|
.config = config,
|
||||||
.root_mod = root_mod,
|
.root_mod = root_mod,
|
||||||
.main_mod = root_mod,
|
.main_mod = root_mod,
|
||||||
@ -5820,8 +5818,8 @@ fn cmdFmt(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
|
|||||||
else => |e| return e,
|
else => |e| return e,
|
||||||
};
|
};
|
||||||
|
|
||||||
const fmt_exe = try global_cache_directory.join(arena, &.{comp.cache_use.whole.bin_sub_path.?});
|
const exe_path = try global_cache_directory.join(arena, &.{comp.cache_use.whole.bin_sub_path.?});
|
||||||
child_argv.appendAssumeCapacity(fmt_exe);
|
child_argv.appendAssumeCapacity(exe_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
child_argv.appendSliceAssumeCapacity(args);
|
child_argv.appendSliceAssumeCapacity(args);
|
||||||
|
|||||||
@ -13,4 +13,3 @@ pub const skip_non_native = false;
|
|||||||
pub const only_c = false;
|
pub const only_c = false;
|
||||||
pub const force_gpa = false;
|
pub const force_gpa = false;
|
||||||
pub const only_core_functionality = true;
|
pub const only_core_functionality = true;
|
||||||
pub const only_reduce = false;
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user