Openroad: use directly from project, not via bazel_rules_hdl
- Dominant language
- C++
- Stars
- 1.9k
- Forks
- 283
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 135
Description
Traditionally, openroad had been pulled in via bazel_rules_hdl, but in the meantime, upstream OpenROAD can be compiled with bazel.
The current bazel_rules_hdl build rules for OpenROAD pull in a bunch of pretty old dependencies, such as com_github_fmtlib_fmt, which don't even compile anymore on modern clang++ (e.g. it would not be possible to update the toolchain to clang 20.1.8).
So a MODULE.bazel dependency like the following:
```python
bazel_dep(name = "openroad")
git_override(
module_name = "openroad",
commit = "ff29559bbd6db23678b58a6a7595f6e09c868454",
remote = "https://github.com/The-OpenROAD-Project/OpenROAD.git",
init_submodules = True,
)
bazel_dep(name = "qt-bazel")
git_override(
module_name = "qt-bazel",
commit = "886104974c2fd72439f2c33b5deebf0fe4649df7",
remote = "https://github.com/The-OpenROAD-Project/qt_bazel_prebuilts",
)
```
... and adaption of the `@openroad//`-paths in the *.bzl rules that run openroad (bazel_rules_hdl) could do the trick to modernize the build and replace the bazel-rules-hdl provided `@org_theopenroadproject`
Discussed offline with @QuantamHD - so since this involves changes to bazel_rules_hdl (the invocation needs to point to the new `@openroad`-binaries), maybe he or @mikesinouye could have a look at that; Paul (@grebe) might also be interested.
With that, probably a bunch of other little headaches probably are also not needed anymore (e.g. there are some `'repo_name='`-mappings in MODULE.bazel for `com_google_ortools`, `com_google_protobuf`, `com_google_absl` ... maybe these were only there to accommodate the old dependency ?)
Contributor guide
Assessment
This issue has not been assessed yet.