Skip to content

Openroad: use directly from project, not via bazel_rules_hdl #4201

@hzeller

Description

@hzeller

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:

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 ?)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions