-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathMODULE.bazel
More file actions
124 lines (105 loc) · 3.76 KB
/
MODULE.bazel
File metadata and controls
124 lines (105 loc) · 3.76 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
115
116
117
118
119
120
121
122
123
124
"""HighTide module — layered on top of bazel-orfs (pinned via submodule).
bazel-orfs lives at ./bazel-orfs as a git submodule. Most Bazel
settings (dep versions, patches, ORFS/OpenROAD/Qt commits) come from
bazel-orfs's own MODULE.bazel; we re-declare the overrides at the
root because git_override and single_version_override are only
honored in the root module, and we reference patch files from the
submodule to avoid duplication.
HighTide-specific additions on top:
- yosys-slang plugin built from source and merged into yosys_share
- LLVM 20.1.8 toolchain for OpenROAD's C++20 source build
- Python 3.13 toolchain for bazel-orfs's pip deps
"""
module(
name = "hightide",
version = "0.0.1",
)
# --- bazel-orfs pinned via submodule ---
bazel_dep(name = "bazel-orfs")
local_path_override(
module_name = "bazel-orfs",
path = "bazel-orfs",
)
bazel_dep(name = "bazel-orfs-verilog")
local_path_override(
module_name = "bazel-orfs-verilog",
path = "bazel-orfs/verilog",
)
# --- Non-BCR deps required by bazel-orfs (git_override is root-only) ---
# Commits + patch sets mirror bazel-orfs/MODULE.bazel at the pinned
# submodule commit. Keep in sync when bumping the submodule.
#
# patches/ holds symlinks into bazel-orfs/patches/ (bazel's
# git_override only accepts patch labels from the main repo).
bazel_dep(name = "orfs")
git_override(
module_name = "orfs",
commit = "172bd233dabd45d04cd80062cd1894e5ac8e5d52",
patch_strip = 1,
patches = [
"//patches:0035-fix-remove-non-root-overrides-from-MODULE.bazel.patch",
],
remote = "https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts.git",
)
bazel_dep(name = "openroad")
git_override(
module_name = "openroad",
commit = "578be38ad2297637e938cbc9cb35e5a05d8936ff",
init_submodules = True,
remote = "https://github.com/The-OpenROAD-Project/OpenROAD.git",
)
bazel_dep(name = "qt-bazel")
git_override(
module_name = "qt-bazel",
commit = "886104974c2fd72439f2c33b5deebf0fe4649df7",
remote = "https://github.com/The-OpenROAD-Project/qt_bazel_prebuilts",
)
# --- Yosys (BCR) with visibility / headers / tcl9 patches ---
bazel_dep(name = "yosys", version = "0.62")
single_version_override(
module_name = "yosys",
patch_strip = 1,
patches = [
"//patches:yosys-visibility.patch",
"//patches:yosys-hdrs.patch",
"//patches:yosys-tcl9-mp-to-ubin.patch",
],
)
bazel_dep(name = "abc", version = "0.64-yosyshq.bcr.1")
bazel_dep(name = "glpk", version = "5.0.bcr.4")
# Pulled transitively: or-tools@9.15 → soplex@7.1.4.bcr.1 pins
# boost.multiprecision / boost.serialization at 1.87.0 (compat 108700),
# but openroad → boost.* wants 1.89.0.bcr.2 (compat 0). soplex@7.1.4.bcr.3
# rebuilt against the newer boost; force that via single_version_override.
single_version_override(
module_name = "soplex",
version = "7.1.4.bcr.3",
)
# --- LLVM toolchain (OpenROAD needs C++20 / libc++) ---
bazel_dep(name = "toolchains_llvm", version = "1.5.0")
llvm = use_extension(
"@toolchains_llvm//toolchain/extensions:llvm.bzl",
"llvm",
)
llvm.toolchain(
llvm_version = "20.1.8",
)
use_repo(llvm, "llvm_toolchain")
register_toolchains(
"@llvm_toolchain//:all",
)
# --- Python 3.13 toolchain ---
bazel_dep(name = "rules_python", version = "1.8.5")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
is_default = True,
python_version = "3.13",
)
# --- yosys-slang plugin (built from source) ---
yosys_slang = use_extension("//:yosys_slang.bzl", "yosys_slang")
use_repo(yosys_slang, "yosys-slang")
# --- ORFS extension: merged yosys_share with slang plugin ---
orfs = use_extension("@bazel-orfs//:extension.bzl", "orfs_repositories")
orfs.default(
yosys_share = "//:yosys_share_with_slang",
)