build: build.zig encodes and writes the terminfo source

This commit is contained in:
Mitchell Hashimoto
2023-06-24 09:12:42 -07:00
parent ea67b4aa48
commit 21d922304b
2 changed files with 24 additions and 7 deletions

View File

@ -3,7 +3,16 @@ const builtin = @import("builtin");
const fs = std.fs; const fs = std.fs;
const LibExeObjStep = std.build.LibExeObjStep; const LibExeObjStep = std.build.LibExeObjStep;
const RunStep = std.build.RunStep; const RunStep = std.build.RunStep;
const apprt = @import("src/apprt.zig"); const apprt = @import("src/apprt.zig");
const font = @import("src/font/main.zig");
const terminfo = @import("src/terminfo/main.zig");
const WasmTarget = @import("src/os/wasm/target.zig").Target;
const LibtoolStep = @import("src/build/LibtoolStep.zig");
const LipoStep = @import("src/build/LipoStep.zig");
const XCFrameworkStep = @import("src/build/XCFrameworkStep.zig");
const Version = @import("src/build/Version.zig");
const glfw = @import("vendor/mach-glfw/build.zig"); const glfw = @import("vendor/mach-glfw/build.zig");
const fontconfig = @import("pkg/fontconfig/build.zig"); const fontconfig = @import("pkg/fontconfig/build.zig");
const freetype = @import("pkg/freetype/build.zig"); const freetype = @import("pkg/freetype/build.zig");
@ -21,12 +30,6 @@ const utf8proc = @import("pkg/utf8proc/build.zig");
const zlib = @import("pkg/zlib/build.zig"); const zlib = @import("pkg/zlib/build.zig");
const tracylib = @import("pkg/tracy/build.zig"); const tracylib = @import("pkg/tracy/build.zig");
const system_sdk = @import("vendor/mach-glfw/system_sdk.zig"); const system_sdk = @import("vendor/mach-glfw/system_sdk.zig");
const font = @import("src/font/main.zig");
const WasmTarget = @import("src/os/wasm/target.zig").Target;
const LibtoolStep = @import("src/build/LibtoolStep.zig");
const LipoStep = @import("src/build/LipoStep.zig");
const XCFrameworkStep = @import("src/build/XCFrameworkStep.zig");
const Version = @import("src/build/Version.zig");
// Do a comptime Zig version requirement. The required Zig version is // Do a comptime Zig version requirement. The required Zig version is
// somewhat arbitrary: it is meant to be a version that we feel works well, // somewhat arbitrary: it is meant to be a version that we feel works well,
@ -271,6 +274,20 @@ pub fn build(b: *std.Build) !void {
} }
} }
// Terminfo
{
// Encode our terminfo
var str = std.ArrayList(u8).init(b.allocator);
defer str.deinit();
try terminfo.ghostty.encode(str.writer());
// Write it
var wf = b.addWriteFiles();
const src_source = wf.add("share/terminfo/ghostty.terminfo", str.items);
const src_install = b.addInstallFile(src_source, "share/terminfo/ghostty.terminfo");
b.getInstallStep().dependOn(&src_install.step);
}
// App (Linux) // App (Linux)
if (target.isLinux()) { if (target.isLinux()) {
// https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html // https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html

View File

@ -5,7 +5,7 @@
//! the archaic (imo) terminfo format by hand. But eventually we may want to //! the archaic (imo) terminfo format by hand. But eventually we may want to
//! extract this into a more full-featured library on its own. //! extract this into a more full-featured library on its own.
pub const ghostty = @import("ghostty.zig"); pub const ghostty = @import("ghostty.zig").ghostty;
pub const Source = @import("Source.zig"); pub const Source = @import("Source.zig");
test { test {