build: allow disabling man-pages if scdoc is found

This commit is contained in:
Isaac Freund 2020-06-15 14:22:09 +02:00
parent b88443d62c
commit ecc000b1ec
No known key found for this signature in database
GPG key ID: 86DED400DDFD7A11

View file

@ -21,7 +21,13 @@ pub fn build(b: *std.build.Builder) !void {
bool, bool,
"man-pages", "man-pages",
"Set to true to build man pages. Requires scdoc. Defaults to true if scdoc is found.", "Set to true to build man pages. Requires scdoc. Defaults to true if scdoc is found.",
) orelse false; ) orelse scdoc_found: {
_ = b.findProgram(&[_][]const u8{"scdoc"}, &[_][]const u8{}) catch |err| switch (err) {
error.FileNotFound => break :scdoc_found false,
else => return err,
};
break :scdoc_found true;
};
const examples = b.option( const examples = b.option(
bool, bool,
@ -62,14 +68,7 @@ pub fn build(b: *std.build.Builder) !void {
riverctl.install(); riverctl.install();
} }
const scdoc = b.findProgram(&[_][]const u8{"scdoc"}, &[_][]const u8{}) catch |err| switch (err) { if (man_pages) {
error.FileNotFound => if (man_pages) {
@panic("scdoc not found, cannot generate man pages");
} else null,
else => return err,
};
if (scdoc != null) {
const scdoc_step = ScdocStep.create(b); const scdoc_step = ScdocStep.create(b);
try scdoc_step.install(); try scdoc_step.install();
} }