summaryrefslogtreecommitdiff
path: root/build.zig.zon
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-08-26 13:28:33 -0300
committerGabriel Schneider <[email protected]>2026-09-16 11:28:40 -0300
commitb42ecaed412be2e30b9e780eb7c9e46e1535f26f (patch)
treeb93290beb84d87df983615c5a7847e339ee7783b /build.zig.zon
parent38bb891dd6bd0074894cbfedbf9185e303cc549e (diff)
downloadesp32p4-main.tar.gz
esp32p4-main.zip
Make the toolchain a package another build can drive, and move the editor's glue to the editorHEADmain
Diffstat (limited to 'build.zig.zon')
-rw-r--r--build.zig.zon46
1 files changed, 46 insertions, 0 deletions
diff --git a/build.zig.zon b/build.zig.zon
new file mode 100644
index 0000000..ae03fb0
--- /dev/null
+++ b/build.zig.zon
@@ -0,0 +1,46 @@
+// This repository went without a manifest on purpose for as long as it had no reason to have one,
+// and the reason it now has one runs in the opposite direction to the failure recorded in build.zig
+// (see the comment under `-Dpardes`).
+//
+// What broke, and stays broken, is depending on pardes FROM here: declaring the editor as a path
+// dependency nested its ~30-package graph under this repo and killed every build in it - the
+// comptime backwards-branch quota in std/Build.zig:2091 over the enlarged dependency table, and
+// seven cached tree_sitter versions whose build.zig files no longer compile on Zig 0.16. That is
+// still true, which is why the editor is NOT declared here: it arrives as a linked object over a C
+// ABI, and the seam between the two repositories stays a file.
+//
+// The reverse direction has none of that cost. This package has exactly one dependency - cloud9,
+// pinned below, whose own manifest declares none - so nesting this package under another one adds
+// two entries to that one's table, not the thirty whose comptime `mem.eql` walk blew the quota
+// above. There is no stale cache entry for either to reach, and both compile on 0.16 by
+// construction. A manifest is what makes this addressable as a dependency at all, and build.zig's
+// `pub` API is what a dependent drives; `build()` itself early-returns when it is not the root
+// package, so declaring this dependency costs a dependent nothing and does not drag an ESP-IDF
+// checkout into its builds.
+.{
+ .name = .zig_p4,
+ .version = "0.1.0",
+ // The one dependency, and only the GPIO 9P application uses it: that image is a 9P server over
+ // base 9P2000, and the protocol implementation is shared with the editor rather than copied.
+ // Pinned here like every other package in this account, so the image builds from this file
+ // alone - the sibling `../cloud9` checkout it used to reach across is gone. Push with
+ // `[email protected]:~gbrls/cloud9`; zig has no `git+ssh` support, so the manifest carries the
+ // read-only HTTPS URL. Re-pin with
+ // `zig fetch --save=cloud9 git+https://git.sr.ht/~gbrls/cloud9#<commit>`.
+ .dependencies = .{
+ .cloud9 = .{
+ .url = "git+https://git.sr.ht/~gbrls/cloud9#ae310a207534b33b7321dd2b9f423a73b1969159",
+ .hash = "cloud9-0.1.0-yt86qsv9AwAy7XqxowpkCFum_p_xfl4S74L8KIeVz4j9",
+ },
+ },
+ // `pub fn build`'s API is written against 0.16's std.Build: `b.graph.io`, `std.Io.Dir`,
+ // `addWriteFiles`, and `Compile.root_module`. None of it compiles on 0.15 and this project
+ // tracks the release rather than master.
+ .minimum_zig_version = "0.16.0",
+ // Exactly what a dependent compiles: this file, the build graph, the board-support and driver
+ // sources under src/, and the host-side toolchain under tools/. Deliberately not examples/ -
+ // those are applications with their own `_start`, built by `zig build` HERE and never by a
+ // dependent - nor experiments/ (measurement data) nor README.md.
+ .paths = .{ "build.zig", "build.zig.zon", "src", "tools" },
+ .fingerprint = 0x40c3b14caca7670f,
+}