feat: add build version to home screen
This commit is contained in:
		
							parent
							
								
									b410687339
								
							
						
					
					
						commit
						4283321542
					
				
					 3 changed files with 28 additions and 6 deletions
				
			
		
							
								
								
									
										24
									
								
								build.zig
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								build.zig
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -17,6 +17,13 @@ pub fn build(b: *std.Build) void {
 | 
			
		|||
    const test_step = b.step("test", "Run unit tests");
 | 
			
		||||
    const lint_step = b.step("lint", "Run lints");
 | 
			
		||||
 | 
			
		||||
    var version = std.ArrayList(u8).init(b.allocator);
 | 
			
		||||
    defer version.deinit();
 | 
			
		||||
    gen_version(b, version.writer()) catch {
 | 
			
		||||
        version.clearAndFree();
 | 
			
		||||
        version.appendSlice("unknown") catch {};
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    return (if (release) &build_release else &build_development)(
 | 
			
		||||
        b,
 | 
			
		||||
        run_step,
 | 
			
		||||
| 
						 | 
				
			
			@ -29,6 +36,7 @@ pub fn build(b: *std.Build) void {
 | 
			
		|||
        use_llvm,
 | 
			
		||||
        pie,
 | 
			
		||||
        gui,
 | 
			
		||||
        version.items,
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -44,6 +52,7 @@ fn build_development(
 | 
			
		|||
    use_llvm: ?bool,
 | 
			
		||||
    pie: ?bool,
 | 
			
		||||
    gui: bool,
 | 
			
		||||
    version: []const u8,
 | 
			
		||||
) void {
 | 
			
		||||
    const target = b.standardTargetOptions(.{ .default_target = .{ .abi = if (builtin.os.tag == .linux and !tracy_enabled) .musl else null } });
 | 
			
		||||
    const optimize = b.standardOptimizeOption(.{});
 | 
			
		||||
| 
						 | 
				
			
			@ -63,6 +72,7 @@ fn build_development(
 | 
			
		|||
        use_llvm,
 | 
			
		||||
        pie,
 | 
			
		||||
        gui,
 | 
			
		||||
        version,
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -78,6 +88,7 @@ fn build_release(
 | 
			
		|||
    use_llvm: ?bool,
 | 
			
		||||
    pie: ?bool,
 | 
			
		||||
    _: bool, //gui
 | 
			
		||||
    version: []const u8,
 | 
			
		||||
) void {
 | 
			
		||||
    const targets: []const std.Target.Query = &.{
 | 
			
		||||
        .{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .musl },
 | 
			
		||||
| 
						 | 
				
			
			@ -91,11 +102,8 @@ fn build_release(
 | 
			
		|||
    };
 | 
			
		||||
    const optimize = .ReleaseFast;
 | 
			
		||||
 | 
			
		||||
    var version = std.ArrayList(u8).init(b.allocator);
 | 
			
		||||
    defer version.deinit();
 | 
			
		||||
    gen_version(b, version.writer()) catch unreachable;
 | 
			
		||||
    const write_file_step = b.addWriteFiles();
 | 
			
		||||
    const version_file = write_file_step.add("version", version.items);
 | 
			
		||||
    const version_file = write_file_step.add("version", version);
 | 
			
		||||
    b.getInstallStep().dependOn(&b.addInstallFile(version_file, "version").step);
 | 
			
		||||
 | 
			
		||||
    for (targets) |t| {
 | 
			
		||||
| 
						 | 
				
			
			@ -120,6 +128,7 @@ fn build_release(
 | 
			
		|||
            use_llvm,
 | 
			
		||||
            pie,
 | 
			
		||||
            false, //gui
 | 
			
		||||
            version,
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        if (t.os_tag == .windows)
 | 
			
		||||
| 
						 | 
				
			
			@ -138,6 +147,7 @@ fn build_release(
 | 
			
		|||
                use_llvm,
 | 
			
		||||
                pie,
 | 
			
		||||
                true, //gui
 | 
			
		||||
                version,
 | 
			
		||||
            );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -157,6 +167,7 @@ pub fn build_exe(
 | 
			
		|||
    use_llvm: ?bool,
 | 
			
		||||
    pie: ?bool,
 | 
			
		||||
    gui: bool,
 | 
			
		||||
    version: []const u8,
 | 
			
		||||
) void {
 | 
			
		||||
    const options = b.addOptions();
 | 
			
		||||
    options.addOption(bool, "enable_tracy", tracy_enabled);
 | 
			
		||||
| 
						 | 
				
			
			@ -183,7 +194,8 @@ pub fn build_exe(
 | 
			
		|||
    };
 | 
			
		||||
 | 
			
		||||
    const wf = b.addWriteFiles();
 | 
			
		||||
    const version_info_file = wf.add("version", version_info.items);
 | 
			
		||||
    const version_file = wf.add("version", version);
 | 
			
		||||
    const version_info_file = wf.add("version_info", version_info.items);
 | 
			
		||||
 | 
			
		||||
    const vaxis_dep = b.dependency("vaxis", .{
 | 
			
		||||
        .target = target,
 | 
			
		||||
| 
						 | 
				
			
			@ -511,6 +523,7 @@ pub fn build_exe(
 | 
			
		|||
    exe.root_module.addImport("input", input_mod);
 | 
			
		||||
    exe.root_module.addImport("syntax", syntax_mod);
 | 
			
		||||
    exe.root_module.addImport("color", color_mod);
 | 
			
		||||
    exe.root_module.addImport("version", b.createModule(.{ .root_source_file = version_file }));
 | 
			
		||||
    exe.root_module.addImport("version_info", b.createModule(.{ .root_source_file = version_info_file }));
 | 
			
		||||
 | 
			
		||||
    if (target.result.os.tag == .windows) {
 | 
			
		||||
| 
						 | 
				
			
			@ -553,6 +566,7 @@ pub fn build_exe(
 | 
			
		|||
    check_exe.root_module.addImport("input", input_mod);
 | 
			
		||||
    check_exe.root_module.addImport("syntax", syntax_mod);
 | 
			
		||||
    check_exe.root_module.addImport("color", color_mod);
 | 
			
		||||
    check_exe.root_module.addImport("version", b.createModule(.{ .root_source_file = version_file }));
 | 
			
		||||
    check_exe.root_module.addImport("version_info", b.createModule(.{ .root_source_file = version_info_file }));
 | 
			
		||||
    check_step.dependOn(&check_exe.step);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,6 +15,7 @@ const c = @cImport({
 | 
			
		|||
const build_options = @import("build_options");
 | 
			
		||||
const log = @import("log");
 | 
			
		||||
 | 
			
		||||
pub const version = @embedFile("version");
 | 
			
		||||
pub const version_info = @embedFile("version_info");
 | 
			
		||||
 | 
			
		||||
pub var max_diff_lines: usize = 50000;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -300,8 +300,15 @@ pub fn render(self: *Self, theme: *const Widget.Theme) bool {
 | 
			
		|||
        const x = @min(self.plane.dim_x() -| 32, 8);
 | 
			
		||||
        self.position_menu(self.v_center(5, self.menu_len, 5), self.center(x, self.menu_w));
 | 
			
		||||
    }
 | 
			
		||||
    const more = self.menu.render(theme);
 | 
			
		||||
 | 
			
		||||
    self.plane.cursor_move_yx(
 | 
			
		||||
        @intCast(self.plane.dim_y() - 2),
 | 
			
		||||
        @intCast(@max(self.plane.dim_x(), root.version.len + 3) - root.version.len - 3),
 | 
			
		||||
    ) catch {};
 | 
			
		||||
    self.plane.set_style_bg_transparent(style_subtext);
 | 
			
		||||
    _ = self.plane.print("{s}", .{root.version}) catch return false;
 | 
			
		||||
 | 
			
		||||
    const more = self.menu.render(theme);
 | 
			
		||||
    return more or self.fire != null;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue