summaryrefslogtreecommitdiff
path: root/pkg/harfbuzz
AgeCommit message (Collapse)Author
2025-10-03zig-15: build binary buildsMitchell Hashimoto
2025-07-22build-system: Replace deprecated usages of root_source_file on addTests (#8031)Mitchell Hashimoto
Yet another low-hanging fruit
2025-07-23build-system: Replace deprecated usages of root_source_file on addTestsJayson Reis
2025-07-22build-system: Replace deprecated usages of addStaticLibrary with addLibrary ↵Jayson Reis
(#8029) Hi there, this is just a low-hanging fruit and it also prepares the way for the future 0.15, which removes addStaticLibrary. Please, let me know what to do on the `// TODO` comments.
2025-07-10build: `zig build test` runs Xcode tests on macOSMitchell Hashimoto
Related to #7879 This commit updates `zig build test` to run Xcode tests, too. These run in parallel to the Zig tests, so they don't add any time to the test. The Xcode tests will _not_ run when: (1) the target is not macOS, or (2) the `-Dtest-filter` option is non-empty. This makes it so that this change doesn't affect non-macOS and doesn't affect the general dev cycle because you usually will run `-Dtest-filter` when developing a core feature. I didn't add a step to only run Xcode tests because I find that when I'm working in Xcode I'm probably going to run the tests from there anyways. The integration with `zig build test` is just a convenience, especially around CI. Speaking of CI, this change also makes it so this will run in CI.
2025-05-29build: use a libc txt file to point to correct Apple SDKMitchell Hashimoto
This fixes an issue where Ghostty would not build against the macOS 15.5 SDK. What was happening was that Zig was adding its embedded libc paths to the clang command line, which included old headers that were incompatible with the latest (macOS 15.5) SDK. Ghostty was adding the newer paths but they were being overridden by the embedded libc paths. The reason this was happening is because Zig was using its own logic to find the libc paths and this was colliding with the paths we were setting manually. To fix this, we now use a `libc.txt` file that explicitly tells Zig where to find libc, and we base this on our own SDK search logic.
2025-05-07core: fixup callconv(.C) -> callconv(.c)Jeffrey C. Ollie
https://ziglang.org/download/0.14.0/release-notes.html#Calling-Convention-Enhancements-and-setAlignStack-Replaced
2025-03-24pkg/harfbuzz: update 8.4 => 11.0Mitchell Hashimoto
This updates our bundled Harfbuzz from 8.4 to 11.0. The changes from 8 to 11 include a number of correctness and performance improvements. Packaged releases tend to dynamically link so this won't affect existing users, but build-from-source users hopefully get an improvement.
2025-03-14build: mark most dependencies as lazyMitchell Hashimoto
Lazy dependencies are only fetched if the build script would actually reach a usage of that dependency at runtime (when the `lazyDependency` function is called). This can save a lot of network traffic, disk uage, and time because we don't have to fetch and build dependencies that we don't actually need. Prior to this commit, Ghostty fetched almost everything for all platforms and configurations all the time. This commit reverses that to fetching almost nothing until it's actually needed. There are very little downsides to doing this[1]. One downside is `zig build --fetch` doesn't fetch lazy dependencies, but we don't rely on this command for packaging and suggest using our custom shell script that downloads a cached list of URLs (`build.zig.zon.txt`). This commit doesn't cover 100% of dependencies, since some provide no benefit to make lazy while the complexity to make them lazy is higher (in code style typically). Conversely, some simple dependencies are marked lazy even if they're almost always needed if they don't introduce any real complexity to the code, because there is very little downside to do so. [1]: https://ziggit.dev/t/lazy-dependencies-best-dependencies/5509/5
2025-03-11pkg: update to new build.zig.zon format and hash valuesMitchell Hashimoto
2025-03-11Zig 0.14Mitchell Hashimoto
2025-02-14build: mirror most of our direct dependenciesMitchell Hashimoto
This adds a new script `update-mirror.sh` which generates the proper blob format for R2 (or any blob storage) to mirror all of our dependencies. It doesn't automate updating build.zig.zon but on an ongoing basis this should be easy to do manually, and we can strive to automate it in the future. I omitted iTerm2 color themes because we auto-update that via CI and updating all of the machinery to send it to our mirror and so on is a pain. Additionally, this doesn't mirror transitive dependencies because Zig doesn't have a way to fetch those from a mirror instead (unless you pre-generate a full cache like packagers but that's not practical for day to day development). It's hugely beneficial just to get most of our dependencies mirrored.
2025-01-03don't make library building logic publicJan200101
2025-01-03always link system freetype2 using pkg-configJan200101
2024-12-31don't build harfbuzz when system integration is enabledJan200101
2024-10-30Fix linking freetype and glslangNyaa97
2024-10-24build: use Zig system packaging optionsMitchell Hashimoto
This allows dynamically linking against system libraries, which is particularly useful for packaging.
2024-08-16pkg/harfbuzz: yeet usingnsMitchell Hashimoto
2024-08-16pkg/harfbuzz: fix c.zigMitchell Hashimoto
2024-06-24begin 0.13 update process -- very brokenMitchell Hashimoto
2024-05-09pkg/harfbuzz: updateMitchell Hashimoto
2024-05-09Enable libpng in harfbuzz freetype depQwerasd
Without this, this replaces the dep on the main level, breaking color glyphs
2024-04-17working on more zig breaking changesMitchell Hashimoto
2024-01-15build: no more resolved target hackMitchell Hashimoto
This was necessary to fix `zig build test` but since #1305 this is not necessary anymore.
2024-01-13build: build produces a broken object file for iOSMitchell Hashimoto
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-10pkg/harfbuzz: get zig build test working on macOSMitchell Hashimoto
2024-01-09pkg/apple-sdk: detect apple sdk based on targetMitchell Hashimoto
2024-01-09pkg/apple-sdk: always require a moduleMitchell Hashimoto
2024-01-09build: use Xcode for the macOS SDKMitchell Hashimoto
2024-01-07Maybe this will help macosKrzysztof Wolicki
2024-01-07Attempt to fix building on macosKrzysztof Wolicki
2024-01-07Add include paths to more modules in pkg/Krzysztof Wolicki
2024-01-07Add include paths to modules in pkg/Krzysztof Wolicki
2024-01-03WIP: Update to new build module API after Zig PR #18160Krzysztof Wolicki
Temporarily change dependency sources to forks until they update
2023-12-11font/harfbuzz: track x/y offsetsMitchell Hashimoto
2023-10-20pkg/harfbuzz: update to 8.2.2Mitchell Hashimoto
2023-10-09pkg/harfbuzz: remove accidentally committed archive fileMitchell Hashimoto
2023-10-07pkg/harfbuzz: download source using zig package managerMitchell Hashimoto
2023-10-01pkg: add test targetsMitchell Hashimoto
2023-10-01pkg: remove all old build.zig filesMitchell Hashimoto
2023-10-01fix failing test, freetype needs libpngMitchell Hashimoto
2023-10-01pkg/freetype, harfbuzz modulesMitchell Hashimoto
2023-10-01pkg/harfbuzz needs to use apple sdk for coretextMitchell Hashimoto
2023-10-01use package manager for font stackMitchell Hashimoto
2023-10-01pkg/harfbuzzMitchell Hashimoto
2023-09-14windows: initial support for zig build testJonathan Marler
Makes progress getting "zig build test" to work on windows. Mostly fixed issues around build configuration and added some branches throughout the Zig code to return/throw errors for unimplemented parts. I also added an initial implementation for getting the home dir.
2023-08-02update zigMitchell Hashimoto
2023-06-30Update Zig (#164)Mitchell Hashimoto
* update zig * pkg/fontconfig: clean up @as * pkg/freetype,harfbuzz: clean up @as * pkg/imgui: clean up @as * pkg/macos: clean up @as * pkg/pixman,utf8proc: clean up @as * clean up @as * lots more @as cleanup * undo flatpak changes * clean up @as
2023-06-25Update zig, mach, fmtMitchell Hashimoto
2023-02-27iterating on the new for loop syntaxMitchell Hashimoto