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