summaryrefslogtreecommitdiff
path: root/src/build_config.zig
AgeCommit message (Collapse)Author
2025-09-19build: Add a new snap option and use it to build the snapMarco Trevisan (Treviño)
So we can limit the snap operations even at build time
2025-09-19build: move apprt, font, renderer enums to dedicated filesMitchell Hashimoto
This reduces the surface area of files we depend on for builds.
2025-08-06build: allow disabling i18nLeah Amelia Chen
GNU gettext simply is a PITA on certain platforms (i.e. Windows, musl Linux, etc.) and currently it's not possible to cleanly remove i18n from the build process, making building Ghostty on the aforementioned platforms difficult. By providing users with a way to opt-out of the i18n mechanisms (or opt-in, on platforms where i18n is disabled by default) we can make sure that people at least have *some* way of building Ghostty before i18n mechanisms can be integrated neatly.
2025-07-25gtk-ng: add debug warning bannerJeffrey C. Ollie
2025-03-11Zig 0.14Mitchell Hashimoto
2025-01-07This is a major refactor of `build.zig`.Mitchell Hashimoto
The major idea behind the refactor is to split the `build.zig` file up into distinct `src/build/*.zig` files. By doing so, we can improve readability of the primary `build.zig` while also enabling better reuse of steps. Our `build.zig` is now less than 150 lines of code (of course, it calls into a lot more lines but they're neatly organized now). Improvements: * `build.zig` is less than 150 lines of readable code. * Help strings and unicode table generators are only run once when multiple artifacts are built since the results are the same regardless of target. * Metal lib is only built once per architecture (rather than once per artifact) * Resources (shell integration, terminfo, etc.) and docs are only built/installed for artifacts that need them Breaking changes: * Removed broken wasm build (@gabydd will re-add) * Removed conformance files, shell scripts are better and we don't run these anymore * Removed macOS app bundle creation, we don't use this anymore since we use Xcode ## Some History Our `build.zig` hasn't been significantly refactored since the project started, when Zig was _version 0.10_. Since then, the build system has changed significantly. We've only ever duct taped the `build.zig` as we needed to support new Zig versions, new features, etc. It was a mess. The major improvement is adapting the entire Ghostty `build.zig` to the Step and LazyPath changes introduced way back in Zig 0.12. This lets us better take advantage of parallelism and the dependency graph so that steps are only executed as they're needed. As such, you can see in the build.zig that we initialize a lot of things, but unless a final target (i.e. install, run) references those steps, _they'll never be executed_. This lets us clean up a lot.
2025-01-05build: add waylandLeah Amelia Chen
2025-01-02core: add build option to disable sentryJeffrey C. Ollie
2024-12-28gtk: add option to not link against libX11Jeffrey C. Ollie
2024-12-20Make Ghostty release channel awareMitchell Hashimoto
Ghostty now has a release channel build configuration. Current valid values are "tip" and "stable" but I imagine more will be added in the future. The release channel is inferred whether the version we specify with the `-Dversion-string` build flag has a prerelease tag or not. If it does, the release channel is "tip". If it doesn't, the release channel is "stable". This also adds a configuration to specify the release channel for auto-updates for the macOS application.
2024-12-19webgen: update config to support callouts, emit keybind actionsMitchell Hashimoto
2024-12-18build: generate reference page for config for websiteMitchell Hashimoto
2024-11-25try to abstract bundle ID to a zig fileMitchell Hashimoto
2024-11-08core/gtk: unify libadwaita/adwaita options in the codeJeffrey C. Ollie
Fixes #2574
2024-10-24build: use Zig system packaging optionsMitchell Hashimoto
This allows dynamically linking against system libraries, which is particularly useful for packaging.
2024-08-31terminal: disable slow safety tests in releasesafeMitchell Hashimoto
2024-08-05chore: clean up typosŁukasz Niemier
2024-03-26Merge pull request #1584 from mitchellh/paged-terminalMitchell Hashimoto
Low-memory terminal state implementation
2024-03-26remove old terminal implementationMitchell Hashimoto
2024-03-26only show optimizationMitchell Hashimoto
2024-03-22bench/resizeMitchell Hashimoto
2024-03-22bench/screen-copyMitchell Hashimoto
2024-03-22vt-insert-lines benchMitchell Hashimoto
2024-03-22bench/page-initMitchell Hashimoto
2024-03-17log more information about the buildJeffrey C. Ollie
2024-02-16build: fix issue for long branch namesMitchell Hashimoto
2024-02-09bench/grapheme-breakMitchell Hashimoto
2024-02-06bench/codepoint-widthMitchell Hashimoto
2024-02-05bench/stream: benchmark for stream processingMitchell Hashimoto
2024-02-04build: get benchmarks building againMitchell Hashimoto
2024-02-04add helpgen entrypointMitchell Hashimoto
2024-02-04move mdgen main to build dirMitchell Hashimoto
2024-02-04build: create new build options per compile stepMitchell Hashimoto
This is going to let us put more object-specific config into the options rather than affecting every object build per build.
2024-01-13build: update our macOS checks to check for macOS specificallyMitchell Hashimoto
2024-01-13build: move our configuration out of globalsMitchell Hashimoto
2024-01-13build: move more options to BuildConfigMitchell Hashimoto
2024-01-13build: use BuildConfig structMitchell Hashimoto
2024-01-13remove tracy usage from all filesMitchell Hashimoto
2023-08-25build: can select renderer with -DrendererMitchell Hashimoto
Note that not all renderers work in all environments.
2023-08-20remove imgui and devmodeMitchell Hashimoto
imgui has been a source of compilation challenges (our fault not theirs) and devmode hasn't worked in awhile, so drop it.
2023-08-08Fix typosKevin Hovsäter
2023-05-19fix some issues for future Zig updateMitchell Hashimoto
2023-03-04build: generate a version number, show in log on startupMitchell Hashimoto
2023-03-04can now use -Dfont-backend to choose the font backend to useMitchell Hashimoto
2023-03-03build_config sets runtime to "none" if embeddedMitchell Hashimoto
2023-02-27termio: exec uses new flatpak command, no more host-spawnMitchell Hashimoto
2023-02-25output runtime at startupMitchell Hashimoto
2023-02-24add app runtime option, add gtk backendMitchell Hashimoto
2023-02-19apprt: start embedded implement, make App API available to CMitchell Hashimoto
2023-02-19app: only create first window in exe modeMitchell Hashimoto