summaryrefslogtreecommitdiff
path: root/build.zig.zon
blob: ae03fb0fe0935835da88e8e5c98eda1f3d7a93d5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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,
}