google / google/xls

Openroad: use directly from project, not via bazel_rules_hdl

Open
#4,201 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.