Commit Graph

429 Commits (main)

Author SHA1 Message Date
Mitchell Hashimoto 17db317916
build: build without Git, tag version as dev with 0 SHA
Fixes #2170

Example now: `info: ghostty version=0.1.0-dev+0000000`
2024-08-31 09:43:30 -07:00
Mitchell Hashimoto e6ae8107c4
build: include breakpad in static lib bundle for lib 2024-08-28 21:44:38 -07:00
Mitchell Hashimoto 7613e5f211
add pkg/breakpad, configure sentry to use breakpad 2024-08-28 21:43:18 -07:00
Mitchell Hashimoto 13f1752836
build: don't include sentry on windows 2024-08-28 21:43:18 -07:00
Mitchell Hashimoto 2abdf291f4
implement sentry transport to write crash reports to XDG_STATE_HOME 2024-08-28 21:43:18 -07:00
Mitchell Hashimoto 42b3ee8df2
build: always compile sentry 2024-08-28 21:43:17 -07:00
Mitchell Hashimoto adbb394e44
initialize sentry on startup 2024-08-28 21:43:17 -07:00
Mitchell Hashimoto 9409e3072f
apprt/gtk: remove usingnamespace 2024-08-16 14:58:04 -07:00
Qwerasd 57d850822e macos/opengl: lock context while rendering to stop resize crashes 2024-08-14 23:47:33 -04:00
x123 502c89dce5 fix: vaxis recursive deps issue 2024-08-07 18:32:04 +02:00
Mitchell Hashimoto 0ec0cc0f95
build: build proper metallib for iOS builds 2024-08-06 16:04:41 -07:00
Mitchell Hashimoto ab7f0c6119
Merge pull request #2056 from ghostty-org/metal
metal: precompile shaders as part of the build
2024-08-06 15:44:35 -07:00
Mitchell Hashimoto c116d147d6
build: build metal lib 2024-08-06 15:30:48 -07:00
Mitchell Hashimoto 64c267a8c7
Merge pull request #2052 from rockorager/pretty-print
cli/list-keybinds: add pretty printing
2024-08-06 14:53:15 -07:00
Tim Culverhouse 59e226154c cli/list-keybinds: add pretty printing
Add pretty printing to the +list-keybinds command. This is done by
bringing in a dependency on libvaxis to handle the styling. Pretty
printing happens automatically when printing to a tty, and can be
disabled either by redirecting output or using the flag `--plain`
2024-08-06 12:19:39 -05:00
Łukasz Niemier f9be02a20f chore: clean up typos 2024-08-05 13:56:57 +02:00
Mitchell Hashimoto 27acd71105
simd: add base64 functions from simdutf 2024-07-16 20:12:45 -07:00
Mitchell Hashimoto 6da2ef9112
build: if emit-docs is not set, still create share/man 2024-07-02 14:01:40 -07:00
Mitchell Hashimoto 00745f4caa
update README for Zig 0.13 2024-06-24 15:36:05 -07:00
Mitchell Hashimoto 98689413b4
disable AVX512 until Zig issue is resolved
https://github.com/ziglang/zig/issues/20414
2024-06-24 15:16:24 -07:00
Mitchell Hashimoto cb76fe6634
fix linux builds 2024-06-24 15:16:24 -07:00
Mitchell Hashimoto 53423f1071
0.13 conversions 2024-06-24 15:16:24 -07:00
Mitchell Hashimoto a30e791c85
begin 0.13 update process -- very broken 2024-06-24 15:16:22 -07:00
Jan200101 11a9dd9dad
build: prevent breakage with relative paths
`root()` returns `@src().file` which isn't guaranteed to be an absolute path
2024-05-26 17:46:26 +02:00
Jared Widberg dc613f221b Revert cc29f06863 2024-04-27 20:06:56 -04:00
Mitchell Hashimoto 99b963d4b0
build.zig: change required zig version 2024-04-21 10:27:26 -07:00
Mitchell Hashimoto 9fc4bc1e14
build: absolute path should not use b.path 2024-04-18 14:57:00 -07:00
Mitchell Hashimoto 736623b7ec
build: use b.path everywhere 2024-04-18 14:51:41 -07:00
Mitchell Hashimoto e4cbd522e8
update zig 2024-04-18 14:37:05 -07:00
Mitchell Hashimoto b915c61fee
build: fix broken install header call for Linux 2024-04-17 20:50:50 -07:00
Mitchell Hashimoto 595f24585e
working on more zig breaking changes 2024-04-17 20:50:50 -07:00
Mitchell Hashimoto fd4d2313d0
build: do not build/link harfbuzz on macOS 2024-04-04 12:22:35 -07:00
Gordon Cassie 3e8193c342 fix(build): solve issue with building tests on certain apple cpus. 2024-04-01 11:45:06 -07:00
Mitchell Hashimoto b6f5970264
minor style changes 2024-03-28 14:45:44 -07:00
Jeffrey C. Ollie 9f0468f950
generate gresource xml and dependencies at comptime rather than hardcoding 2024-03-27 16:47:27 -05:00
Jeffrey C. Ollie f943a4cf87
GTK: Add compiled-in GTK resources and use them for icons.
Use glib-compile-resources to compile CSS style sheets and icons into
the Ghostty GTK binary. Makes for simpler access to icons and sets
things up for customizing the look of Ghostty with CSS in the future.
The CSS style sheets are blank for now so there will be no visual
changes.
2024-03-27 16:47:26 -05:00
Mitchell Hashimoto badedf81a7
build.zig update min zig version 2024-03-22 20:25:55 -07:00
Mitchell Hashimoto b48d24a546
update zig 2024-03-13 09:14:12 -07:00
Mitchell Hashimoto 13c5a70da7
build.zig update required zig version 2024-03-12 14:32:20 -07:00
Mitchell Hashimoto 737e7758e4
update zig version 2024-02-27 08:57:31 -08:00
Mitchell Hashimoto d92beab1d8
update zig version 2024-02-20 16:43:25 -08:00
Gregory Anders 4df6b36713 Update minimum Zig version in build.zig
This is the version required to use the new std.os.O struct format from
https://github.com/mitchellh/ghostty/pull/1509.
2024-02-18 09:43:13 -06:00
Jonathan Marler 7f6088ee1f windows: add rc file
Adds an rc file for windows.  An rc file is a source file given to the
toolchain that instructs it on what "resources" to embed inside the
executable.  You can think of "resources" as files or data that get
embedded into the executable and can be accessed both by the application
at runtime or by the OS.  The OS uses resources for things like getting
the icon of the executable or extracting the version of an exe for the
user.  Note that exe resources can also be modified without having to
recompile/relink the binary.

Thanks to Squeek502 zig has its own "RC Compiler" so this should still be
buildable on all platforms.

In the RC file I've included some basic info and left in comments for
other info to be populated later.  I've also included a manifest file
which starts out by telling windows that our exe will be DPI aware and
to use a slightly more modern look and feel for native controls.
2024-02-11 08:51:43 -07:00
Mitchell Hashimoto be61e0025f
update min zig version 2024-02-10 16:46:09 -08:00
Mitchell Hashimoto 28c078ec37
update req version in build.zig 2024-02-10 16:43:57 -08:00
Mitchell Hashimoto a471756ee0
build: unigen needs libc 2024-02-08 21:34:28 -08:00
Mitchell Hashimoto 4834b8e925
remove utf8proc 2024-02-08 21:11:11 -08:00
Mitchell Hashimoto 9755d0696e
unicode: generate our own lookup tables 2024-02-08 21:01:11 -08:00
Mitchell Hashimoto 4ae41579da
add utf8proc back for bench 2024-02-08 13:21:36 -08:00
Mitchell Hashimoto 88d81602fa
simd/codepoint-width: wip 2024-02-06 22:28:26 -08:00
Mitchell Hashimoto d4fa0fcabf
bench/codepoint-width 2024-02-06 17:11:11 -08:00
Mitchell Hashimoto b7c5fd4908
build: if emit-bench is on, do not emit exes
This isn't the cleanest approach yet. But this gets things going
quickly. Ideally longer term I want to be able to specify a list of
artifacts that you want to build or something like that.
2024-02-06 16:45:29 -08:00
Mitchell Hashimoto ba2cd0d16b
Merge pull request #1474 from jcollie/fish-completions
Generate fish command completions for Ghostty.
2024-02-06 08:56:23 -08:00
Jeffrey C. Ollie 72b1084162
Do the fish completion generation with comptime during the build rather than building a standalone executable. 2024-02-06 00:04:36 -06:00
Jeffrey C. Ollie c55d5c383a
Generate fish command completions for Ghostty. 2024-02-05 23:32:12 -06:00
Mitchell Hashimoto 0c8dd34ea7
build: update build and comments 2024-02-05 21:22:28 -08:00
Mitchell Hashimoto b030663e03
bench/stream: benchmark for stream processing 2024-02-05 21:22:27 -08:00
Mitchell Hashimoto 120273aa1a
pkg/utfcpp 2024-02-05 21:22:27 -08:00
Mitchell Hashimoto 626d4170fe
move simdutf to a pkg 2024-02-05 21:22:27 -08:00
Mitchell Hashimoto 996517eb43
build: missing simdutf 2024-02-05 21:22:27 -08:00
Mitchell Hashimoto 12885a445a
simd: remove old attempts 2024-02-05 21:22:27 -08:00
Mitchell Hashimoto 50e7159288
simd: implement utf8 decode until esc in C++ 2024-02-05 21:22:27 -08:00
Mitchell Hashimoto c751619b7e
terminal: use highway-based indexOf to support all targets 2024-02-05 21:22:26 -08:00
Mitchell Hashimoto 36b0db2a72
pkg/highway 2024-02-05 21:22:26 -08:00
Mitchell Hashimoto a66174678b
simd: utf decode using simdutf 2024-02-05 21:22:04 -08:00
Mitchell Hashimoto 31d5785105
simd: basic ISA detection, boilerplate 2024-02-05 21:22:03 -08:00
Andrew Kelley 3a84f77782
make mach_glfw a lazy dependency
Prevents it from being fetched unless it is actually needed.
2024-02-05 19:01:36 -08:00
Mitchell Hashimoto f1227a3ebd
build: get benchmarks building again 2024-02-04 20:27:53 -08:00
Mitchell Hashimoto 1a9f80c403
add helpgen entrypoint 2024-02-04 20:17:47 -08:00
Mitchell Hashimoto 1f2b30496b
move mdgen main to build dir 2024-02-04 20:04:18 -08:00
Mitchell Hashimoto c2b3f99faa
build: create new build options per compile step
This is going to let us put more object-specific config into the options
rather than affecting every object build per build.
2024-02-04 19:40:59 -08:00
Krzysztof Wolicki 9f6e97d090
Update mach-glfw dependency 2024-02-04 18:41:14 -08:00
Mitchell Hashimoto c40fc51f2a
build: only default emit-docs to true if pandoc is on PATH 2024-01-21 14:49:45 -08:00
Mitchell Hashimoto ba98aa3aeb
build: shuffle files around for mdgen 2024-01-21 14:40:48 -08:00
Mitchell Hashimoto 0967fb46f8
build: use emit-docs for docs, don't need it on build config 2024-01-21 14:22:58 -08:00
Jeffrey C. Ollie ef09fa89b0
Generate documenation (manpages, etc.) from help strings. 2024-01-21 15:07:22 -06:00
Mitchell Hashimoto 203b38fdac
rewrite generate_help for personal style
- Output to stdin instead of a file
- Less nesting
- Utilize ranged for loops instead of while loops
- Eliminate unnecessary state tracking
- Put help in a struct
2024-01-20 09:05:25 -08:00
Jeffrey C. Ollie f9ac37cdf7
Generate help strings from doc comments
Doc strings attached to fields of the Config struct and doc strings
attached to the run function of actions will be used to generate Zig
code that makes those doc strings available to be used at runtime.

Based on PR #853 by @Raiden1411
2024-01-19 21:19:09 -08:00
Mitchell Hashimoto d1ad8e4740
build: copy header files, build static lib too 2024-01-18 08:59:07 -08:00
Mitchell Hashimoto df09c21103
apprt/embedded: compile for Linux 2024-01-18 08:44:56 -08:00
Mitchell Hashimoto 0a1fba0059
Merge pull request #1305 from der-teufel-programming/better-build
Make addDeps cleaner, use addCSourceFiles instead of addCSourceFile in a loop
2024-01-15 14:30:37 -08:00
Mitchell Hashimoto b5cd2e7a33
build: set os_version_min on default target so tests work 2024-01-15 14:29:55 -08:00
Krzysztof Wolicki c8c2f4b0ff Make addDeps cleaner 2024-01-15 21:49:22 +01:00
Mitchell Hashimoto 635e6808f6
build: fix mistaken dependency for iOS simulator lib 2024-01-14 19:39:27 -08:00
Mitchell Hashimoto 3c7fe08d87
build: add iOS simulator target 2024-01-13 22:11:13 -08:00
Mitchell Hashimoto 722348f552
build: build iOS lib into XCFramework 2024-01-13 21:39:08 -08:00
Mitchell Hashimoto 3360a008cd
build: build produces a broken object file for iOS
This gets `zig build -Dtarget=aarch64-ios` working. By "working" I mean
it produces an object file without compiler errors. However, the object
file certainly isn't useful since it uses a number of features that will
not work in the iOS sandbox.

This is just an experiment more than anything to see how hard it would be to
get libghostty working within iOS to render a terminal. Note iOS doesn't
support ptys so this wouldn't be a true on-device terminal. The
challenge right now is to just get a terminal rendering (not usable).
2024-01-13 21:38:58 -08:00
Krzysztof Wolicki 5b5bfb259b
Update mach-glfw dependency 2024-01-13 19:43:51 -08:00
Mitchell Hashimoto f61eaea4d0
build: update our macOS checks to check for macOS specifically 2024-01-13 15:29:12 -08:00
Mitchell Hashimoto bfe3c356f0
build: move our configuration out of globals 2024-01-13 15:18:45 -08:00
Mitchell Hashimoto d4b53cac06
build: move more options to BuildConfig 2024-01-13 15:11:28 -08:00
Mitchell Hashimoto dfa55988d6
build: use BuildConfig struct 2024-01-13 15:08:37 -08:00
Mitchell Hashimoto 29717269ca
build: remove tracy completely 2024-01-13 14:30:56 -08:00
Mitchell Hashimoto 5216b4cfe9
build: remove generate_rgb_names 2024-01-10 20:40:21 -08:00
Jeffrey C. Ollie bc1544a3f0
add ability to specify RGB colors as names from the X11 rgb name list 2024-01-10 20:26:59 -08:00
Mitchell Hashimoto 829776bebd
pkg/apple-sdk: always require a module 2024-01-09 22:11:03 -08:00
Mitchell Hashimoto ec6d470985
build: only build embedded lib when targeting macos specifically 2024-01-09 21:36:10 -08:00
Tristan Partin d2813655e5 fix: update code to compile with 0.12.0-dev.2075+f5978181e 2024-01-08 20:08:10 -06:00
Mitchell Hashimoto a8a42c8658
fix macos `zig build test` failures 2024-01-07 12:10:48 -08:00
Mitchell Hashimoto c1bde28af4
update flake 2024-01-07 12:03:23 -08:00
Krzysztof Wolicki 12f4210558 Update required zig version to 0.12.0-dev.2063+804cee3b9 2024-01-07 20:42:30 +01:00
Krzysztof Wolicki 5776c54225 Update changed build.zig 2024-01-07 15:00:17 +01:00
Krzysztof Wolicki 710b02a2ab Merge branch 'main' of github.com:mitchellh/ghostty 2024-01-06 05:42:55 +01:00
widberg cc29f06863 Don't build with LTO on Windows 2024-01-04 21:24:15 -05:00
Krzysztof Wolicki 1d49492e04 build.zig: Make use of resolveTargetQuery for wasm_freestanding target 2024-01-04 13:29:43 +01:00
Krzysztof Wolicki 1913243c35 WIP: Update to new build module API after Zig PR #18160
Temporarily change dependency sources to forks until they update
2024-01-03 21:50:32 +01:00
Mitchell Hashimoto eb46161b5e
config: generate vim configs at comptime 2023-12-22 08:19:17 -08:00
Gregory Anders 4f01aafdba build: move Vim plugin file generation into a separate Step 2023-12-21 21:49:38 -06:00
Gregory Anders e9632a0f91 build: build Vim plugin files for Ghostty config file
Generate Vim syntax and ftplugin files for the Ghostty config file that
highlight Ghostty config keywords and offer completion for valid config
keys. The list of configuration keys is generated at compile time.

The plugin files are installed to ${prefix}/share/vim/vimfiles, which is
a standard location for installing 3rd party Vim plugin files.
2023-12-21 21:46:26 -06:00
Gregory Anders 8751502878
core: look for resources in "ghostty" subdirectory for "share" paths
Installing resources directly under ${prefix}/share causes conflicts
with other packages. This will become more problematic whenever Ghostty
is opened and becomes packaged in distributions.

Instead, install all resources under a "ghostty" subdirectory (i.e.
${prefix}/share/ghostty). This includes themes, shell integration, and
terminfo files.

Only "/usr/share" style paths use the "ghostty" subdirectory. On macOS,
Ghostty is already isolated within its app bundle, and if
$GHOSTTY_RESOURCES_DIR is set then we assume that points to the actual
resources dir (without needing to append "ghostty" to it).
2023-12-21 17:56:17 -08:00
Chris Marchesi 5e7e3be60a
build: use dedicated strings for conformance test keys
This uses separate strings for the keys for the conformance tests versus
just deriving them from the sliced path.

This fixed an issue for me where a few of the tests were showing up as
InvalidConformance (notably the "blocks" test), even though, oddly
enough, the key/value entries do appear to be there (e.g. if you iterated
over them). I did notice, though, that we currently sliced the key from
the file entry of the directory iterator, which is closed at the end of
conformanceSteps.
2023-12-14 21:35:04 -08:00
Mitchell Hashimoto 8f5f8fb0bd
update Zig version in Nix 2023-11-30 14:06:24 -08:00
Krzysztof Wolicki bfc688e96e Update required zig version to `0.12.0-dev.1767+1e42a3de8` 2023-11-30 21:41:42 +01:00
Krzysztof Wolicki 46699d53d1 Update to latest master 2023-11-30 21:40:01 +01:00
Mitchell Hashimoto af04d891ff
build: dynamically link oniguruma 2023-11-29 15:29:43 -08:00
Mitchell Hashimoto b85174c7ac
build: add oniguruma 2023-11-29 15:29:43 -08:00
Mitchell Hashimoto dde2339e4d
move back to zig pm 2023-11-28 08:11:34 -08:00
Mitchell Hashimoto c7a1e074dd
don't use package manager for iterm2 themes yet 2023-11-22 22:08:27 -08:00
Mitchell Hashimoto 7a91a23e40
build: add iterm2 themes repository, install into resources dir 2023-11-22 21:08:26 -08:00
Mitchell Hashimoto 8576acb89e
renderer/opengl: move opengl API to pkg/opengl 2023-11-17 21:51:04 -08:00
Mitchell Hashimoto 291ca16c20
build: add spirv-cross 2023-11-17 21:50:35 -08:00
Mitchell Hashimoto 1678c3a038
build: add glslang 2023-11-17 21:50:35 -08:00
Krzysztof Wolicki 44a48f62f1 change unmodified `var`s to `const`s in anticipation of zig changes 2023-11-17 15:46:46 +01:00
Mitchell Hashimoto 4781a83e4a
replace utf8proc with ziglyph 2023-11-07 13:17:56 -08:00
xdBronch 205b27dc80
remove deps that were already provided by other packages (#797) 2023-11-03 14:04:00 -07:00
Mitchell Hashimoto 1235c33db2
Merge pull request #794 from hqnna/main
Add option to enable or disable libadwaita
2023-11-02 22:14:59 -07:00
hanna 915f1f5e62
change option name and default value 2023-11-02 22:03:11 -07:00
hanna 63fe99809f
remove hard dependency on libadwaita 2023-11-02 21:54:05 -07:00
Mitchell Hashimoto 2275768383
font: if a codepoint is emoji presentation, prefer that for shaping
Fixes #787
2023-11-02 21:46:50 -07:00
Hanna 2d7e2c8345
Integrate libadwaita for the gtk backend (#792)
* When using gtk as the backend, link libadwaita

* Update c.zig

* Use libadwaita's theme manager for gtk

* update the documentation for window-theme

* build: add libadwaita to the nix devshell

* forgot to properly import libadwaita

* apprt/gtk: adwaita style change

---------

Co-authored-by: Mitchell Hashimoto <mitchell.hashimoto@gmail.com>
2023-11-02 21:29:29 -07:00
Mitchell Hashimoto 423d0d58c0
build: do not build glfw for gtk anymore 2023-10-27 15:11:04 -07:00
Mitchell Hashimoto efddef9d1c
build: add cimgui to build 2023-10-24 15:27:13 -07:00
Mitchell Hashimoto cbdf52864a
Merge pull request #704 from der-teufel-programming/windows-test
Get `zig build test` working on Windows
2023-10-23 08:52:43 -07:00
Mitchell Hashimoto b9b33ab25d
pkg/fontconfig: make iconv build param non-windows specific 2023-10-23 08:40:25 -07:00
Mitchell Hashimoto b6a47cef77
build: disable Tracy by default even for debug builds
Our usage has a memory leak and I don't know where it is and don't want
to spend the time finding it because we very rarely use the tracy
integration anyways.
2023-10-19 20:03:36 -07:00
Krzysztof Wolicki cf9f025a5b Don't enable iconv for fontconfig dep on windows 2023-10-19 17:10:24 +02:00
Krzysztof Wolicki 00c24e4ae6
Fix option name passed to fontconfig dep 2023-10-19 10:52:09 +02:00
Krzysztof Wolicki 3936b471a8 Disable iconv on Windows by default (enabled via cli flag).
Skip various tests not implemented on windows.
2023-10-19 09:39:20 +02:00
Mitchell Hashimoto 8f46d114c0
update zig 2023-10-17 12:45:35 -07:00
Mitchell Hashimoto 2b28106837
update zig 2023-10-02 08:18:35 -07:00
Mitchell Hashimoto 0b6cfac8b0
don't run dependency tests anymore 2023-10-01 18:34:51 -07:00
Mitchell Hashimoto 4e1b3b3224
fix failing test, freetype needs libpng 2023-10-01 18:33:37 -07:00
Mitchell Hashimoto e3a58526ce
fix dynamic build 2023-10-01 17:42:18 -07:00
Mitchell Hashimoto d71197dc59
no more system_sdk 2023-10-01 17:38:30 -07:00
Mitchell Hashimoto 3a4842a0a5
fix build on linux 2023-10-01 17:32:59 -07:00
Mitchell Hashimoto ccd6eee5fe
progress on glfw 2023-10-01 17:30:11 -07:00
Mitchell Hashimoto 8395bb7470
pkg/tracy 2023-10-01 17:11:04 -07:00
Mitchell Hashimoto 7bd4c96b41
remove unused deps 2023-10-01 17:04:17 -07:00
Mitchell Hashimoto aece38ecb2
macos: fix missing symbols in archive 2023-10-01 17:03:32 -07:00
Mitchell Hashimoto ec26fb7cee
pkg/macos 2023-10-01 17:02:12 -07:00