mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
make docgen accept --zig-lib-dir
This commit is contained in:
parent
b3af5d076c
commit
b4d58e93ea
2 changed files with 64 additions and 26 deletions
|
|
@ -47,6 +47,9 @@ pub fn build(b: *std.Build) !void {
|
||||||
|
|
||||||
const docgen_cmd = b.addRunArtifact(docgen_exe);
|
const docgen_cmd = b.addRunArtifact(docgen_exe);
|
||||||
docgen_cmd.addArgs(&.{ "--zig", b.zig_exe });
|
docgen_cmd.addArgs(&.{ "--zig", b.zig_exe });
|
||||||
|
if (b.zig_lib_dir) |p| {
|
||||||
|
docgen_cmd.addArgs(&.{ "--zig-lib-dir", p });
|
||||||
|
}
|
||||||
docgen_cmd.addFileSourceArg(.{ .path = "doc/langref.html.in" });
|
docgen_cmd.addFileSourceArg(.{ .path = "doc/langref.html.in" });
|
||||||
const langref_file = docgen_cmd.addOutputFileArg("langref.html");
|
const langref_file = docgen_cmd.addOutputFileArg("langref.html");
|
||||||
const install_langref = b.addInstallFileWithDir(langref_file, .prefix, "doc/langref.html");
|
const install_langref = b.addInstallFileWithDir(langref_file, .prefix, "doc/langref.html");
|
||||||
|
|
|
||||||
|
|
@ -28,10 +28,10 @@ const usage =
|
||||||
\\
|
\\
|
||||||
;
|
;
|
||||||
|
|
||||||
fn errorf(comptime format: []const u8, args: anytype) noreturn {
|
fn fatal(comptime format: []const u8, args: anytype) noreturn {
|
||||||
const stderr = io.getStdErr().writer();
|
const stderr = io.getStdErr().writer();
|
||||||
|
|
||||||
stderr.print("error: " ++ format, args) catch {};
|
stderr.print("error: " ++ format ++ "\n", args) catch {};
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -45,6 +45,7 @@ pub fn main() !void {
|
||||||
if (!args_it.skip()) @panic("expected self arg");
|
if (!args_it.skip()) @panic("expected self arg");
|
||||||
|
|
||||||
var zig_exe: []const u8 = "zig";
|
var zig_exe: []const u8 = "zig";
|
||||||
|
var opt_zig_lib_dir: ?[]const u8 = null;
|
||||||
var do_code_tests = true;
|
var do_code_tests = true;
|
||||||
var files = [_][]const u8{ "", "" };
|
var files = [_][]const u8{ "", "" };
|
||||||
|
|
||||||
|
|
@ -59,24 +60,29 @@ pub fn main() !void {
|
||||||
if (args_it.next()) |param| {
|
if (args_it.next()) |param| {
|
||||||
zig_exe = param;
|
zig_exe = param;
|
||||||
} else {
|
} else {
|
||||||
errorf("expected parameter after --zig\n", .{});
|
fatal("expected parameter after --zig", .{});
|
||||||
|
}
|
||||||
|
} else if (mem.eql(u8, arg, "--zig-lib-dir")) {
|
||||||
|
if (args_it.next()) |param| {
|
||||||
|
opt_zig_lib_dir = param;
|
||||||
|
} else {
|
||||||
|
fatal("expected parameter after --zig-lib-dir", .{});
|
||||||
}
|
}
|
||||||
} else if (mem.eql(u8, arg, "--skip-code-tests")) {
|
} else if (mem.eql(u8, arg, "--skip-code-tests")) {
|
||||||
do_code_tests = false;
|
do_code_tests = false;
|
||||||
} else {
|
} else {
|
||||||
errorf("unrecognized option: '{s}'\n", .{arg});
|
fatal("unrecognized option: '{s}'", .{arg});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (i > 1) {
|
if (i > 1) {
|
||||||
errorf("too many arguments\n", .{});
|
fatal("too many arguments", .{});
|
||||||
}
|
}
|
||||||
files[i] = arg;
|
files[i] = arg;
|
||||||
i += 1;
|
i += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (i < 2) {
|
if (i < 2) {
|
||||||
errorf("not enough arguments\n", .{});
|
fatal("not enough arguments", .{});
|
||||||
process.exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var in_file = try fs.cwd().openFile(files[0], .{ .mode = .read_only });
|
var in_file = try fs.cwd().openFile(files[0], .{ .mode = .read_only });
|
||||||
|
|
@ -95,7 +101,7 @@ pub fn main() !void {
|
||||||
try fs.cwd().makePath(tmp_dir_name);
|
try fs.cwd().makePath(tmp_dir_name);
|
||||||
defer fs.cwd().deleteTree(tmp_dir_name) catch {};
|
defer fs.cwd().deleteTree(tmp_dir_name) catch {};
|
||||||
|
|
||||||
try genHtml(allocator, &tokenizer, &toc, buffered_writer.writer(), zig_exe, do_code_tests);
|
try genHtml(allocator, &tokenizer, &toc, buffered_writer.writer(), zig_exe, opt_zig_lib_dir, do_code_tests);
|
||||||
try buffered_writer.flush();
|
try buffered_writer.flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1268,6 +1274,7 @@ fn genHtml(
|
||||||
toc: *Toc,
|
toc: *Toc,
|
||||||
out: anytype,
|
out: anytype,
|
||||||
zig_exe: []const u8,
|
zig_exe: []const u8,
|
||||||
|
opt_zig_lib_dir: ?[]const u8,
|
||||||
do_code_tests: bool,
|
do_code_tests: bool,
|
||||||
) !void {
|
) !void {
|
||||||
var progress = Progress{ .dont_print_on_dumb = true };
|
var progress = Progress{ .dont_print_on_dumb = true };
|
||||||
|
|
@ -1278,7 +1285,7 @@ fn genHtml(
|
||||||
try env_map.put("ZIG_DEBUG_COLOR", "1");
|
try env_map.put("ZIG_DEBUG_COLOR", "1");
|
||||||
|
|
||||||
const host = try std.zig.system.NativeTargetInfo.detect(.{});
|
const host = try std.zig.system.NativeTargetInfo.detect(.{});
|
||||||
const builtin_code = try getBuiltinCode(allocator, &env_map, zig_exe);
|
const builtin_code = try getBuiltinCode(allocator, &env_map, zig_exe, opt_zig_lib_dir);
|
||||||
|
|
||||||
for (toc.nodes) |node| {
|
for (toc.nodes) |node| {
|
||||||
defer root_node.completeOne();
|
defer root_node.completeOne();
|
||||||
|
|
@ -1370,6 +1377,9 @@ fn genHtml(
|
||||||
"--color", "on",
|
"--color", "on",
|
||||||
"--enable-cache", tmp_source_file_name,
|
"--enable-cache", tmp_source_file_name,
|
||||||
});
|
});
|
||||||
|
if (opt_zig_lib_dir) |zig_lib_dir| {
|
||||||
|
try build_args.appendSlice(&.{ "--zig-lib-dir", zig_lib_dir });
|
||||||
|
}
|
||||||
|
|
||||||
try shell_out.print("$ zig build-exe {s} ", .{name_plus_ext});
|
try shell_out.print("$ zig build-exe {s} ", .{name_plus_ext});
|
||||||
|
|
||||||
|
|
@ -1512,8 +1522,12 @@ fn genHtml(
|
||||||
defer test_args.deinit();
|
defer test_args.deinit();
|
||||||
|
|
||||||
try test_args.appendSlice(&[_][]const u8{
|
try test_args.appendSlice(&[_][]const u8{
|
||||||
zig_exe, "test", tmp_source_file_name,
|
zig_exe, "test",
|
||||||
|
tmp_source_file_name,
|
||||||
});
|
});
|
||||||
|
if (opt_zig_lib_dir) |zig_lib_dir| {
|
||||||
|
try test_args.appendSlice(&.{ "--zig-lib-dir", zig_lib_dir });
|
||||||
|
}
|
||||||
try shell_out.print("$ zig test {s}.zig ", .{code.name});
|
try shell_out.print("$ zig test {s}.zig ", .{code.name});
|
||||||
|
|
||||||
switch (code.mode) {
|
switch (code.mode) {
|
||||||
|
|
@ -1564,12 +1578,13 @@ fn genHtml(
|
||||||
defer test_args.deinit();
|
defer test_args.deinit();
|
||||||
|
|
||||||
try test_args.appendSlice(&[_][]const u8{
|
try test_args.appendSlice(&[_][]const u8{
|
||||||
zig_exe,
|
zig_exe, "test",
|
||||||
"test",
|
"--color", "on",
|
||||||
"--color",
|
|
||||||
"on",
|
|
||||||
tmp_source_file_name,
|
tmp_source_file_name,
|
||||||
});
|
});
|
||||||
|
if (opt_zig_lib_dir) |zig_lib_dir| {
|
||||||
|
try test_args.appendSlice(&.{ "--zig-lib-dir", zig_lib_dir });
|
||||||
|
}
|
||||||
try shell_out.print("$ zig test {s}.zig ", .{code.name});
|
try shell_out.print("$ zig test {s}.zig ", .{code.name});
|
||||||
|
|
||||||
switch (code.mode) {
|
switch (code.mode) {
|
||||||
|
|
@ -1624,8 +1639,12 @@ fn genHtml(
|
||||||
defer test_args.deinit();
|
defer test_args.deinit();
|
||||||
|
|
||||||
try test_args.appendSlice(&[_][]const u8{
|
try test_args.appendSlice(&[_][]const u8{
|
||||||
zig_exe, "test", tmp_source_file_name,
|
zig_exe, "test",
|
||||||
|
tmp_source_file_name,
|
||||||
});
|
});
|
||||||
|
if (opt_zig_lib_dir) |zig_lib_dir| {
|
||||||
|
try test_args.appendSlice(&.{ "--zig-lib-dir", zig_lib_dir });
|
||||||
|
}
|
||||||
var mode_arg: []const u8 = "";
|
var mode_arg: []const u8 = "";
|
||||||
switch (code.mode) {
|
switch (code.mode) {
|
||||||
.Debug => {},
|
.Debug => {},
|
||||||
|
|
@ -1684,17 +1703,17 @@ fn genHtml(
|
||||||
defer build_args.deinit();
|
defer build_args.deinit();
|
||||||
|
|
||||||
try build_args.appendSlice(&[_][]const u8{
|
try build_args.appendSlice(&[_][]const u8{
|
||||||
zig_exe,
|
zig_exe, "build-obj",
|
||||||
"build-obj",
|
"--color", "on",
|
||||||
|
"--name", code.name,
|
||||||
tmp_source_file_name,
|
tmp_source_file_name,
|
||||||
"--color",
|
|
||||||
"on",
|
|
||||||
"--name",
|
|
||||||
code.name,
|
|
||||||
try std.fmt.allocPrint(allocator, "-femit-bin={s}{c}{s}", .{
|
try std.fmt.allocPrint(allocator, "-femit-bin={s}{c}{s}", .{
|
||||||
tmp_dir_name, fs.path.sep, name_plus_obj_ext,
|
tmp_dir_name, fs.path.sep, name_plus_obj_ext,
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
if (opt_zig_lib_dir) |zig_lib_dir| {
|
||||||
|
try build_args.appendSlice(&.{ "--zig-lib-dir", zig_lib_dir });
|
||||||
|
}
|
||||||
|
|
||||||
try shell_out.print("$ zig build-obj {s}.zig ", .{code.name});
|
try shell_out.print("$ zig build-obj {s}.zig ", .{code.name});
|
||||||
|
|
||||||
|
|
@ -1758,13 +1777,15 @@ fn genHtml(
|
||||||
defer test_args.deinit();
|
defer test_args.deinit();
|
||||||
|
|
||||||
try test_args.appendSlice(&[_][]const u8{
|
try test_args.appendSlice(&[_][]const u8{
|
||||||
zig_exe,
|
zig_exe, "build-lib",
|
||||||
"build-lib",
|
|
||||||
tmp_source_file_name,
|
tmp_source_file_name,
|
||||||
try std.fmt.allocPrint(allocator, "-femit-bin={s}{s}{s}", .{
|
try std.fmt.allocPrint(allocator, "-femit-bin={s}{s}{s}", .{
|
||||||
tmp_dir_name, fs.path.sep_str, bin_basename,
|
tmp_dir_name, fs.path.sep_str, bin_basename,
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
if (opt_zig_lib_dir) |zig_lib_dir| {
|
||||||
|
try test_args.appendSlice(&.{ "--zig-lib-dir", zig_lib_dir });
|
||||||
|
}
|
||||||
try shell_out.print("$ zig build-lib {s}.zig ", .{code.name});
|
try shell_out.print("$ zig build-lib {s}.zig ", .{code.name});
|
||||||
|
|
||||||
switch (code.mode) {
|
switch (code.mode) {
|
||||||
|
|
@ -1829,9 +1850,23 @@ fn exec(allocator: Allocator, env_map: *process.EnvMap, args: []const []const u8
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn getBuiltinCode(allocator: Allocator, env_map: *process.EnvMap, zig_exe: []const u8) ![]const u8 {
|
fn getBuiltinCode(
|
||||||
const result = try exec(allocator, env_map, &[_][]const u8{ zig_exe, "build-obj", "--show-builtin" });
|
allocator: Allocator,
|
||||||
|
env_map: *process.EnvMap,
|
||||||
|
zig_exe: []const u8,
|
||||||
|
opt_zig_lib_dir: ?[]const u8,
|
||||||
|
) ![]const u8 {
|
||||||
|
if (opt_zig_lib_dir) |zig_lib_dir| {
|
||||||
|
const result = try exec(allocator, env_map, &.{
|
||||||
|
zig_exe, "build-obj", "--show-builtin", "--zig-lib-dir", zig_lib_dir,
|
||||||
|
});
|
||||||
return result.stdout;
|
return result.stdout;
|
||||||
|
} else {
|
||||||
|
const result = try exec(allocator, env_map, &.{
|
||||||
|
zig_exe, "build-obj", "--show-builtin",
|
||||||
|
});
|
||||||
|
return result.stdout;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn dumpArgs(args: []const []const u8) void {
|
fn dumpArgs(args: []const []const u8) void {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue