mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-04-06 07:38:21 +00:00
core: simplify pty.c macro usage
This commit is contained in:
@@ -136,51 +136,24 @@ pub fn add(
|
||||
self.config.terminalOptions().add(b, step.root_module);
|
||||
|
||||
// C imports needed to manage/create PTYs
|
||||
switch (target.result.os.tag) {
|
||||
.freebsd,
|
||||
.linux,
|
||||
.macos,
|
||||
=> {
|
||||
const c = b.addTranslateC(.{
|
||||
.root_source_file = b.path("src/pty.c"),
|
||||
.target = target,
|
||||
.optimize = optimize,
|
||||
});
|
||||
inline for (@typeInfo(std.Target.Os.Tag).@"enum".fields) |field| {
|
||||
c.defineCMacro(
|
||||
b.fmt(
|
||||
"ZIG_TARGET_{s}",
|
||||
.{try std.ascii.allocUpperString(b.allocator, field.name)},
|
||||
),
|
||||
b.fmt("{d}", .{field.value}),
|
||||
);
|
||||
}
|
||||
c.defineCMacro(
|
||||
"ZIG_TARGET",
|
||||
b.fmt(
|
||||
"ZIG_TARGET_{s}",
|
||||
.{
|
||||
try std.ascii.allocUpperString(
|
||||
b.allocator,
|
||||
@tagName(target.result.os.tag),
|
||||
),
|
||||
},
|
||||
),
|
||||
);
|
||||
switch (target.result.os.tag) {
|
||||
.macos => {
|
||||
const libc = try std.zig.LibCInstallation.findNative(.{
|
||||
.allocator = b.allocator,
|
||||
.target = &target.result,
|
||||
.verbose = false,
|
||||
});
|
||||
c.addSystemIncludePath(.{ .cwd_relative = libc.sys_include_dir.? });
|
||||
},
|
||||
else => {},
|
||||
}
|
||||
step.root_module.addImport("pty-c", c.createModule());
|
||||
},
|
||||
else => {},
|
||||
{
|
||||
const c = b.addTranslateC(.{
|
||||
.root_source_file = b.path("src/pty.c"),
|
||||
.target = target,
|
||||
.optimize = optimize,
|
||||
});
|
||||
switch (target.result.os.tag) {
|
||||
.macos => {
|
||||
const libc = try std.zig.LibCInstallation.findNative(.{
|
||||
.allocator = b.allocator,
|
||||
.target = &target.result,
|
||||
.verbose = false,
|
||||
});
|
||||
c.addSystemIncludePath(.{ .cwd_relative = libc.sys_include_dir.? });
|
||||
},
|
||||
else => {},
|
||||
}
|
||||
step.root_module.addImport("pty-c", c.createModule());
|
||||
}
|
||||
|
||||
// Freetype. We always include this even if our font backend doesn't
|
||||
|
||||
16
src/pty.c
16
src/pty.c
@@ -1,19 +1,20 @@
|
||||
#if ZIG_TARGET == ZIG_TARGET_FREEBSD
|
||||
#if defined(__FreeBSD__)
|
||||
|
||||
#include <termios.h> // ioctl and constants
|
||||
#include <libutil.h> // openpty
|
||||
#include <stdlib.h> // ptsname_r
|
||||
#include <unistd.h> // tcgetpgrp
|
||||
#endif
|
||||
|
||||
#if ZIG_TARGET == ZIG_TARGET_LINUX
|
||||
#elif defined(__linux__)
|
||||
|
||||
#define _GNU_SOURCE // ptsname_r
|
||||
#include <pty.h> // openpty
|
||||
#include <stdlib.h> // ptsname_r
|
||||
#include <sys/ioctl.h> // ioctl and constants
|
||||
#include <unistd.h> // tcgetpgrp, setsid
|
||||
#endif
|
||||
|
||||
#if ZIG_TARGET == ZIG_TARGET_MACOS
|
||||
#elif defined(__APPLE__)
|
||||
|
||||
#include <sys/ioctl.h> // ioctl and constants
|
||||
#include <sys/ttycom.h> // ioctl and constants for TIOCPTYGNAME
|
||||
#include <sys/types.h>
|
||||
@@ -31,4 +32,9 @@
|
||||
#ifndef tiocgwinsz
|
||||
#define tiocgwinsz 1074295912
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#error "unsupported platform"
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user