|
5 | 5 | pkgs, |
6 | 6 | root, |
7 | 7 | }: |
8 | | -let |
9 | | - # z3 (found via pkg-config) and libclang (for z3-sys bindgen) are only needed |
10 | | - # by crates whose closure contains openshell-prover. |
11 | | - withZ3 = { |
12 | | - nativeBuildInputs = [ |
13 | | - pkgs.pkg-config |
14 | | - pkgs.protobuf |
15 | | - ]; |
16 | | - buildInputs = [ pkgs.z3 ]; |
17 | | - env.LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib"; |
18 | | - }; |
19 | | -in |
20 | 8 | { |
21 | | - # Each crate declares the compile-time assets its build needs: its own plus |
22 | | - # those of its workspace deps (proto/ arrives via openshell-core, providers/ |
23 | | - # via openshell-providers, registry/ via openshell-prover). |
24 | | - openshell-cli = withZ3 // { |
| 9 | + # Each crate declares the compile-time assets and build tools it needs. The |
| 10 | + # workspace builder collects nativeBuildInputs/buildInputs/env from the |
| 11 | + # transitive Cargo closure. |
| 12 | + openshell-bootstrap = { |
| 13 | + dir = "openshell-bootstrap"; |
| 14 | + assets = [ (root + "/proto") ]; |
| 15 | + }; |
| 16 | + openshell-cli = { |
25 | 17 | dir = "openshell-cli"; |
26 | 18 | assets = [ |
27 | 19 | (root + "/proto") |
28 | 20 | (root + "/providers") |
29 | 21 | (root + "/crates/openshell-prover/registry") |
30 | 22 | ]; |
31 | 23 | }; |
32 | | - openshell-server = withZ3 // { |
| 24 | + openshell-server = { |
33 | 25 | dir = "openshell-server"; |
34 | 26 | assets = [ |
35 | 27 | (root + "/proto") |
|
38 | 30 | (root + "/crates/openshell-server/migrations") |
39 | 31 | ]; |
40 | 32 | }; |
| 33 | + openshell-core = { |
| 34 | + dir = "openshell-core"; |
| 35 | + nativeBuildInputs = [ pkgs.protobuf ]; |
| 36 | + assets = [ (root + "/proto") ]; |
| 37 | + }; |
| 38 | + openshell-driver-docker = { |
| 39 | + dir = "openshell-driver-docker"; |
| 40 | + assets = [ (root + "/proto") ]; |
| 41 | + }; |
41 | 42 | openshell-sandbox = { |
42 | 43 | dir = "openshell-sandbox"; |
43 | | - nativeBuildInputs = [ pkgs.protobuf ]; |
44 | 44 | assets = [ |
45 | 45 | (root + "/proto") |
46 | 46 | (root + "/crates/openshell-sandbox/data") |
|
49 | 49 | }; |
50 | 50 | openshell-driver-vm = { |
51 | 51 | dir = "openshell-driver-vm"; |
52 | | - nativeBuildInputs = [ pkgs.protobuf ]; |
53 | 52 | assets = [ |
54 | 53 | (root + "/proto") |
55 | 54 | (root + "/crates/openshell-driver-vm/scripts") |
56 | 55 | ]; |
57 | 56 | }; |
58 | 57 | openshell-driver-kubernetes = { |
59 | 58 | dir = "openshell-driver-kubernetes"; |
60 | | - nativeBuildInputs = [ pkgs.protobuf ]; |
61 | 59 | assets = [ (root + "/proto") ]; |
62 | 60 | }; |
63 | 61 | openshell-driver-podman = { |
64 | 62 | dir = "openshell-driver-podman"; |
65 | | - nativeBuildInputs = [ pkgs.protobuf ]; |
66 | 63 | assets = [ (root + "/proto") ]; |
67 | 64 | }; |
| 65 | + openshell-ocsf = { |
| 66 | + dir = "openshell-ocsf"; |
| 67 | + assets = [ (root + "/crates/openshell-ocsf/schemas") ]; |
| 68 | + }; |
| 69 | + openshell-policy = { |
| 70 | + dir = "openshell-policy"; |
| 71 | + assets = [ (root + "/proto") ]; |
| 72 | + }; |
| 73 | + openshell-prover = { |
| 74 | + dir = "openshell-prover"; |
| 75 | + nativeBuildInputs = [ pkgs.pkg-config ]; |
| 76 | + buildInputs = [ pkgs.z3 ]; |
| 77 | + env.LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib"; |
| 78 | + assets = [ |
| 79 | + (root + "/crates/openshell-prover/registry") |
| 80 | + (root + "/crates/openshell-prover/testdata") |
| 81 | + ]; |
| 82 | + }; |
| 83 | + openshell-providers = { |
| 84 | + dir = "openshell-providers"; |
| 85 | + assets = [ |
| 86 | + (root + "/proto") |
| 87 | + (root + "/providers") |
| 88 | + ]; |
| 89 | + }; |
| 90 | + openshell-router = { |
| 91 | + dir = "openshell-router"; |
| 92 | + assets = [ (root + "/proto") ]; |
| 93 | + }; |
| 94 | + openshell-server-macros = { |
| 95 | + dir = "openshell-server-macros"; |
| 96 | + }; |
| 97 | + openshell-tui = { |
| 98 | + dir = "openshell-tui"; |
| 99 | + assets = [ |
| 100 | + (root + "/proto") |
| 101 | + (root + "/providers") |
| 102 | + ]; |
| 103 | + }; |
| 104 | + openshell-vfio = { |
| 105 | + dir = "openshell-vfio"; |
| 106 | + }; |
68 | 107 | } |
0 commit comments