mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-08-28 18:11:39 +00:00
build: emit xcframework for libghostty-vt on macOS
On Darwin targets, the build now automatically produces a universal (arm64 + x86_64) XCFramework at lib/ghostty-vt.xcframework under the install prefix. This bundles the fat static library with headers so consumers using Xcode or Swift PM can link libghostty-vt directly.
This commit is contained in:
@@ -24,6 +24,44 @@ pub fn init(
|
||||
b: *std.Build,
|
||||
cfg: *const Config,
|
||||
deps: *const SharedDeps,
|
||||
) !GhosttyZig {
|
||||
return initInner(b, cfg, deps, "ghostty-vt", "ghostty-vt-c");
|
||||
}
|
||||
|
||||
/// Create a new GhosttyZig with modules retargeted to a different
|
||||
/// architecture. Used to produce universal (fat) binaries on macOS.
|
||||
pub fn retarget(
|
||||
self: *const GhosttyZig,
|
||||
b: *std.Build,
|
||||
cfg: *const Config,
|
||||
deps: *const SharedDeps,
|
||||
target: std.Build.ResolvedTarget,
|
||||
) !GhosttyZig {
|
||||
_ = self;
|
||||
const retargeted_config = try b.allocator.create(Config);
|
||||
retargeted_config.* = cfg.*;
|
||||
retargeted_config.target = target;
|
||||
|
||||
const retargeted_deps = try b.allocator.create(SharedDeps);
|
||||
retargeted_deps.* = try deps.retarget(b, target);
|
||||
|
||||
// Use unique module names to avoid collisions with the original target.
|
||||
const arch_name = @tagName(target.result.cpu.arch);
|
||||
return initInner(
|
||||
b,
|
||||
retargeted_config,
|
||||
retargeted_deps,
|
||||
b.fmt("ghostty-vt-{s}", .{arch_name}),
|
||||
b.fmt("ghostty-vt-c-{s}", .{arch_name}),
|
||||
);
|
||||
}
|
||||
|
||||
fn initInner(
|
||||
b: *std.Build,
|
||||
cfg: *const Config,
|
||||
deps: *const SharedDeps,
|
||||
vt_name: []const u8,
|
||||
vt_c_name: []const u8,
|
||||
) !GhosttyZig {
|
||||
// Terminal module build options
|
||||
var vt_options = cfg.terminalOptions(.lib);
|
||||
@@ -37,7 +75,7 @@ pub fn init(
|
||||
|
||||
return .{
|
||||
.vt = try initVt(
|
||||
"ghostty-vt",
|
||||
vt_name,
|
||||
b,
|
||||
cfg,
|
||||
deps,
|
||||
@@ -46,7 +84,7 @@ pub fn init(
|
||||
),
|
||||
|
||||
.vt_c = try initVt(
|
||||
"ghostty-vt-c",
|
||||
vt_c_name,
|
||||
b,
|
||||
cfg,
|
||||
deps,
|
||||
|
||||
Reference in New Issue
Block a user