srctree

build.zig
e0e87235  Gregory Mullen const std = @import("std"); e0e87235  Gregory Mullen e0e87235  Gregory Mullen // near default build.zig from 0.11.0-dev.1908+06b263825a e0e87235  Gregory Mullen pub fn build(b: *std.Build) void { e0e87235  Gregory Mullen const target = b.standardTargetOptions(.{}); e0e87235  Gregory Mullen const optimize = b.standardOptimizeOption(.{}); dcbe511b  Gregory Mullen const src = b.path("src/main.zig"); e0e87235  Gregory Mullen 69d0ebb0  Gregory Mullen const opts = b.addOptions(); 69d0ebb0  Gregory Mullen opts.addOption( 30248683  Gregory Mullen std.SemanticVersion, 30248683  Gregory Mullen "version", 30248683  Gregory Mullen std.SemanticVersion.parse(version(b)) catch unreachable, 30248683  Gregory Mullen ); 30248683  Gregory Mullen ac6888a0  Gregory Mullen const log = b.createModule(.{ dcbe511b  Gregory Mullen .root_source_file = b.path("src/log.zig"), ac6888a0  Gregory Mullen }); ac6888a0  Gregory Mullen 69d0ebb0  Gregory Mullen const exe = b.addExecutable(.{ 69d0ebb0  Gregory Mullen .name = "hsh", 69d0ebb0  Gregory Mullen .root_source_file = src, 69d0ebb0  Gregory Mullen .target = target, 69d0ebb0  Gregory Mullen .optimize = optimize, 69d0ebb0  Gregory Mullen }); 69d0ebb0  Gregory Mullen 69f7abd0  Gregory Mullen exe.root_module.addOptions("hsh_build", opts); 69f7abd0  Gregory Mullen exe.root_module.addImport("log", log); d6238241  Gregory Mullen 8ff7e004  Gregory Mullen b.installArtifact(exe); 8ff7e004  Gregory Mullen 69d0ebb0  Gregory Mullen // hsh doesn't like to be run from within zig build 69d0ebb0  Gregory Mullen //const run_cmd = b.addRunArtifact(exe); 69d0ebb0  Gregory Mullen //run_cmd.step.dependOn(b.getInstallStep()); 69d0ebb0  Gregory Mullen //if (b.args) |args| { 69d0ebb0  Gregory Mullen // run_cmd.addArgs(args); 69d0ebb0  Gregory Mullen //} 69d0ebb0  Gregory Mullen //const run_step = b.step("run", "Run the app"); 69d0ebb0  Gregory Mullen //run_step.dependOn(&run_cmd.step); 8ff7e004  Gregory Mullen 69d0ebb0  Gregory Mullen // TODO enable sysinstall with keyword 69d0ebb0  Gregory Mullen //const install_step = b.step("sysinstall", "install to system"); 69d0ebb0  Gregory Mullen //install_step.dependOn(&b.addInstallArtifact(exe).step); e0e87235  Gregory Mullen 69d0ebb0  Gregory Mullen // TESTS 8ff7e004  Gregory Mullen const unit_tests = b.addTest(.{ 69d0ebb0  Gregory Mullen .root_source_file = src, e0e87235  Gregory Mullen .target = target, e0e87235  Gregory Mullen .optimize = optimize, e0e87235  Gregory Mullen }); 69f7abd0  Gregory Mullen unit_tests.root_module.addOptions("hsh_build", opts); 69f7abd0  Gregory Mullen unit_tests.root_module.addImport("log", log); 8ff7e004  Gregory Mullen const run_tests = b.addRunArtifact(unit_tests); ac6888a0  Gregory Mullen e0e87235  Gregory Mullen const test_step = b.step("test", "Run unit tests"); 8ff7e004  Gregory Mullen test_step.dependOn(&run_tests.step); e0e87235  Gregory Mullen } 30248683  Gregory Mullen 30248683  Gregory Mullen fn version(b: *std.Build) []const u8 { 30248683  Gregory Mullen if (!std.process.can_spawn) { 30248683  Gregory Mullen std.debug.print("Can't get a version number\n", .{}); 30248683  Gregory Mullen std.process.exit(1); 30248683  Gregory Mullen } 30248683  Gregory Mullen 30248683  Gregory Mullen var code: u8 = undefined; 69f7abd0  Gregory Mullen const git_wide = b.runAllowFail(&[_][]const u8{ 30248683  Gregory Mullen "git", 30248683  Gregory Mullen "describe", 30248683  Gregory Mullen "--dirty", 30248683  Gregory Mullen "--always", 30248683  Gregory Mullen }, &code, .Ignore) catch { 30248683  Gregory Mullen std.process.exit(2); 30248683  Gregory Mullen }; 30248683  Gregory Mullen 30248683  Gregory Mullen var git = std.mem.trim(u8, git_wide, " \r\n"); 30248683  Gregory Mullen return if (std.mem.startsWith(u8, git, "v")) git[1..] else git; 30248683  Gregory Mullen }