mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-05-25 22:38:36 +00:00
Add a C API for tracked pins, known as a tracked grid ref in C. The new API can create tracked refs from terminal points, snapshot them back to regular grid refs for cell access, convert them to coordinates, move them to a new point, report when their semantic location was lost, and free the tracked pin bookkeeping. This is backed by PageList tracked pins and exposed through the libghostty-vt export layer and headers.
43 lines
1.3 KiB
Zig
43 lines
1.3 KiB
Zig
const std = @import("std");
|
|
|
|
pub fn build(b: *std.Build) void {
|
|
const target = b.standardTargetOptions(.{});
|
|
const optimize = b.standardOptimizeOption(.{});
|
|
|
|
const run_step = b.step("run", "Run the app");
|
|
|
|
const exe_mod = b.createModule(.{
|
|
.target = target,
|
|
.optimize = optimize,
|
|
});
|
|
exe_mod.addCSourceFiles(.{
|
|
.root = b.path("src"),
|
|
.files = &.{"main.c"},
|
|
});
|
|
|
|
// You'll want to use a lazy dependency here so that ghostty is only
|
|
// downloaded if you actually need it.
|
|
if (b.lazyDependency("ghostty", .{
|
|
// Setting simd to false will force a pure static build that
|
|
// doesn't even require libc, but it has a significant performance
|
|
// penalty. If your embedding app requires libc anyway, you should
|
|
// always keep simd enabled.
|
|
// .simd = false,
|
|
})) |dep| {
|
|
exe_mod.linkLibrary(dep.artifact("ghostty-vt"));
|
|
}
|
|
|
|
// Exe
|
|
const exe = b.addExecutable(.{
|
|
.name = "c_vt_grid_ref_tracked",
|
|
.root_module = exe_mod,
|
|
});
|
|
b.installArtifact(exe);
|
|
|
|
// Run
|
|
const run_cmd = b.addRunArtifact(exe);
|
|
run_cmd.step.dependOn(b.getInstallStep());
|
|
if (b.args) |args| run_cmd.addArgs(args);
|
|
run_step.dependOn(&run_cmd.step);
|
|
}
|