| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2025-09-19 | build: Add a new snap option and use it to build the snap | Marco Trevisan (Treviño) | |
| So we can limit the snap operations even at build time | |||
| 2025-09-19 | build: move apprt, font, renderer enums to dedicated files | Mitchell Hashimoto | |
| This reduces the surface area of files we depend on for builds. | |||
| 2025-08-06 | build: allow disabling i18n | Leah 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-25 | gtk-ng: add debug warning banner | Jeffrey C. Ollie | |
| 2025-03-11 | Zig 0.14 | Mitchell Hashimoto | |
| 2025-01-07 | This 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-05 | build: add wayland | Leah Amelia Chen | |
| 2025-01-02 | core: add build option to disable sentry | Jeffrey C. Ollie | |
| 2024-12-28 | gtk: add option to not link against libX11 | Jeffrey C. Ollie | |
| 2024-12-20 | Make Ghostty release channel aware | Mitchell 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-19 | webgen: update config to support callouts, emit keybind actions | Mitchell Hashimoto | |
| 2024-12-18 | build: generate reference page for config for website | Mitchell Hashimoto | |
| 2024-11-25 | try to abstract bundle ID to a zig file | Mitchell Hashimoto | |
| 2024-11-08 | core/gtk: unify libadwaita/adwaita options in the code | Jeffrey C. Ollie | |
| Fixes #2574 | |||
| 2024-10-24 | build: use Zig system packaging options | Mitchell Hashimoto | |
| This allows dynamically linking against system libraries, which is particularly useful for packaging. | |||
| 2024-08-31 | terminal: disable slow safety tests in releasesafe | Mitchell Hashimoto | |
| 2024-08-05 | chore: clean up typos | Łukasz Niemier | |
| 2024-03-26 | Merge pull request #1584 from mitchellh/paged-terminal | Mitchell Hashimoto | |
| Low-memory terminal state implementation | |||
| 2024-03-26 | remove old terminal implementation | Mitchell Hashimoto | |
| 2024-03-26 | only show optimization | Mitchell Hashimoto | |
| 2024-03-22 | bench/resize | Mitchell Hashimoto | |
| 2024-03-22 | bench/screen-copy | Mitchell Hashimoto | |
| 2024-03-22 | vt-insert-lines bench | Mitchell Hashimoto | |
| 2024-03-22 | bench/page-init | Mitchell Hashimoto | |
| 2024-03-17 | log more information about the build | Jeffrey C. Ollie | |
| 2024-02-16 | build: fix issue for long branch names | Mitchell Hashimoto | |
| 2024-02-09 | bench/grapheme-break | Mitchell Hashimoto | |
| 2024-02-06 | bench/codepoint-width | Mitchell Hashimoto | |
| 2024-02-05 | bench/stream: benchmark for stream processing | Mitchell Hashimoto | |
| 2024-02-04 | build: get benchmarks building again | Mitchell Hashimoto | |
| 2024-02-04 | add helpgen entrypoint | Mitchell Hashimoto | |
| 2024-02-04 | move mdgen main to build dir | Mitchell Hashimoto | |
| 2024-02-04 | build: create new build options per compile step | Mitchell 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-13 | build: update our macOS checks to check for macOS specifically | Mitchell Hashimoto | |
| 2024-01-13 | build: move our configuration out of globals | Mitchell Hashimoto | |
| 2024-01-13 | build: move more options to BuildConfig | Mitchell Hashimoto | |
| 2024-01-13 | build: use BuildConfig struct | Mitchell Hashimoto | |
| 2024-01-13 | remove tracy usage from all files | Mitchell Hashimoto | |
| 2023-08-25 | build: can select renderer with -Drenderer | Mitchell Hashimoto | |
| Note that not all renderers work in all environments. | |||
| 2023-08-20 | remove imgui and devmode | Mitchell 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-08 | Fix typos | Kevin Hovsäter | |
| 2023-05-19 | fix some issues for future Zig update | Mitchell Hashimoto | |
| 2023-03-04 | build: generate a version number, show in log on startup | Mitchell Hashimoto | |
| 2023-03-04 | can now use -Dfont-backend to choose the font backend to use | Mitchell Hashimoto | |
| 2023-03-03 | build_config sets runtime to "none" if embedded | Mitchell Hashimoto | |
| 2023-02-27 | termio: exec uses new flatpak command, no more host-spawn | Mitchell Hashimoto | |
| 2023-02-25 | output runtime at startup | Mitchell Hashimoto | |
| 2023-02-24 | add app runtime option, add gtk backend | Mitchell Hashimoto | |
| 2023-02-19 | apprt: start embedded implement, make App API available to C | Mitchell Hashimoto | |
| 2023-02-19 | app: only create first window in exe mode | Mitchell Hashimoto | |
