-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMODULE.bazel
More file actions
114 lines (93 loc) · 3.98 KB
/
MODULE.bazel
File metadata and controls
114 lines (93 loc) · 3.98 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
"""
Synth - WebAssembly Component Synthesizer for Embedded Systems
Bazel module definition
"""
module(
name = "synth",
version = "0.1.0",
)
# Bazel dependencies
bazel_dep(name = "platforms", version = "0.0.10")
bazel_dep(name = "bazel_skylib", version = "1.7.1")
bazel_dep(name = "rules_rust", version = "0.68.1")
bazel_dep(name = "rules_cc", version = "0.2.17")
# CC toolchain (required by Bazel 8 for linking Rust binaries)
cc_configure = use_extension("@rules_cc//cc:extensions.bzl", "cc_configure_extension")
use_repo(cc_configure, "local_config_cc", "local_config_cc_toolchains")
register_toolchains("@local_config_cc_toolchains//:all")
# Rust toolchains
rust = use_extension("@rules_rust//rust:extensions.bzl", "rust")
rust.toolchain(
edition = "2024",
versions = ["1.88.0"],
)
use_repo(rust, "rust_toolchains")
register_toolchains("@rust_toolchains//:all")
# Rust crates repository
crate = use_extension("@rules_rust//crate_universe:extension.bzl", "crate")
# Core dependencies from Cargo.toml
crate.spec(package = "anyhow", version = "1.0")
# WebAssembly tooling (matching workspace versions)
crate.spec(package = "wasmparser", version = "0.219")
crate.spec(package = "wasm-encoder", version = "0.219")
crate.spec(package = "wit-parser", version = "0.219")
crate.spec(package = "wit-component", version = "0.219")
crate.spec(package = "wat", version = "1.219")
crate.spec(package = "wast", version = "219.0")
crate.spec(package = "wasmprinter", version = "0.2")
# Serialization
crate.spec(package = "serde", version = "1.0", features = ["derive"])
crate.spec(package = "serde_json", version = "1.0")
crate.spec(package = "toml", version = "0.8")
# Error handling
crate.spec(package = "thiserror", version = "1.0")
# CLI
crate.spec(package = "clap", version = "4.5", features = ["derive"])
# Logging
crate.spec(package = "tracing", version = "0.1")
crate.spec(package = "tracing-subscriber", version = "0.3")
# Verification dependencies
crate.spec(package = "z3", version = "0.12", features = ["static-link-z3"])
# Testing dependencies
crate.spec(package = "proptest", version = "1.4")
crate.spec(package = "quickcheck", version = "1.0")
# Bitflags (for synth-memory)
crate.spec(package = "bitflags", version = "2.4")
# ELF parsing (for symbol table reading)
crate.spec(package = "object", version = "0.36", default_features = False, features = ["read", "elf"])
crate.from_specs()
use_repo(crate, "crates")
# PulseEngine WebAssembly Component Model rules
bazel_dep(name = "rules_wasm_component", version = "1.0.0")
git_override(
module_name = "rules_wasm_component",
remote = "https://github.com/pulseengine/rules_wasm_component.git",
commit = "43468cd52f6a09523fc4df08d17e88f67f1cfd82", # v1.0.0
)
# Renode simulation rules for embedded testing
# Provides hermetic Renode + Python - no local install required
# Using PulseEngine fork with macOS support
bazel_dep(name = "rules_renode", version = "0.0.0")
git_override(
module_name = "rules_renode",
remote = "https://github.com/pulseengine/renode-bazel-rules.git",
commit = "cf0dcfa9338e235a076542154e9f95ece5092b11", # feat/macos-support
)
# Renode toolchain - auto-downloads appropriate platform build
renode = use_extension("@rules_renode//renode:extensions.bzl", "renode")
use_repo(renode, "renode_toolchains")
register_toolchains("@renode_toolchains//:all")
# Rocq/Coq theorem proving rules with coq-of-rust integration
# Provides hermetic Rocq 9.0 toolchain via Nix for formal verification
bazel_dep(name = "rules_rocq_rust", version = "0.1.0")
git_override(
module_name = "rules_rocq_rust",
remote = "https://github.com/pulseengine/rules_rocq_rust.git",
commit = "090b875c6e83e32e25918f31b8c58919ff16467e", # 2026-02-04
patches = ["//patches:rules_rocq_rust_nix_name.patch"],
patch_strip = 1,
)
rocq = use_extension("@rules_rocq_rust//rocq:extensions.bzl", "rocq")
rocq.toolchain(version = "9.0", strategy = "nix", with_rocq_of_rust_deps = True)
use_repo(rocq, "rocq_toolchains")
register_toolchains("@rocq_toolchains//:all")