mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-08-05 23:28:41 +00:00
This commit represents the majority of the work necessary to upgrade Ghostty to use Zig 0.16.0. Key parts: * In addition to its previous responsibilities, the global state now houses state for global I/O implementations and the process environment. It is now also utilized in the main application along with the C library. Where necessary, global state is isolated from key parts of the implementation (e.g., in libghostty subsystems), and it's expected that this list will grow. * We currently manage our own C translation layer where necessary. In these cases, cImport has been removed in favor of the new external translate-c package. Due to fixes that have needed be made to properly translate the dependencies that were swapped out, as mentioned, we have had to backport fixes from the current translate-c package (and the upstream Arocc dependency). We will host this ourselves until Zig 0.17.0 is released with these fixes. * Where necessary (only a small number of cases), some stdlib code from 0.15.2 (and even from 0.17.0) has been taken, adopted, and vendored in lib/compat. Co-authored-by: Leah Amelia Chen <hi@pluie.me>
32 lines
1.2 KiB
Zig
32 lines
1.2 KiB
Zig
const std = @import("std");
|
|
const build_config = @import("build_config.zig");
|
|
|
|
/// See build_config.ExeEntrypoint for why we do this.
|
|
const entrypoint = switch (build_config.exe_entrypoint) {
|
|
.ghostty => @import("main_ghostty.zig"),
|
|
.helpgen => @import("helpgen.zig"),
|
|
.mdgen_ghostty_1 => @import("build/mdgen/main_ghostty_1.zig"),
|
|
.mdgen_ghostty_5 => @import("build/mdgen/main_ghostty_5.zig"),
|
|
.webgen_config => @import("build/webgen/main_config.zig"),
|
|
.webgen_actions => @import("build/webgen/main_actions.zig"),
|
|
.webgen_commands => @import("build/webgen/main_commands.zig"),
|
|
};
|
|
|
|
/// The main entrypoint for the program.
|
|
pub const main = entrypoint.main;
|
|
|
|
/// Standard options such as logger overrides.
|
|
pub const std_options: std.Options = if (@hasDecl(entrypoint, "std_options"))
|
|
entrypoint.std_options
|
|
else
|
|
.{};
|
|
|
|
test {
|
|
// Zig 0.16.0 has made test logging more strict. Now, *anything* that gets
|
|
// printed to stderr results in a "failed command" message, even if the
|
|
// tests ultimately passed. To reduce confusion here (and honestly, test
|
|
// log spam in general), we bump the default testing log level to error.
|
|
std.testing.log_level = std.log.Level.err;
|
|
_ = entrypoint;
|
|
}
|