-
Øyvind Harboe authored
`bazelisk build //:openroad` previously broke unless the nested git submodule `third-party/slang-elab/third_party/fmt` was initialized. That fmt is not an OpenROAD fork — it is plain fmtlib/fmt pulled in unmodified via a nested submodule. The build failed with an opaque `glob pattern 'include/fmt/*.h' didn't match anything` when the nested submodule was missing. Switch Bazel to BCR (`bazel_dep(name = "fmt", version = "11.2.0.bcr.1")`). The existing `@fmt` references in `third-party/slang-elab/src/BUILD` and `src/syn/src/elab/BUILD` resolve to the BCR module instead of the nested submodule. The slang side stays as `new_local_repository` for now (slang-elab pins a commit newer than slang v10.0, the latest BCR release; that switch is a separate follow-up). CMake builds are unaffected — `.gitmodules` still references the nested fmt submodule. Only Bazel's view of `@fmt` changes. Document the submodule-for-CMake / BCR-for-Bazel policy in README.md so future contributors do not add submodules just to feed Bazel. Test plan: verified `bazelisk build //:openroad` succeeds with `third-party/slang-elab/third_party/fmt` deinit'd (`git submodule deinit -f third_party/fmt`). `bazelisk mod show_repo fmt` confirms the repo is sourced from bcr.bazel.build/modules/fmt/11.2.0.bcr.1. Co-Authored-By:
Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by:
Øyvind Harboe <oyvind.harboe@zylin.com>
Øyvind Harboe authored`bazelisk build //:openroad` previously broke unless the nested git submodule `third-party/slang-elab/third_party/fmt` was initialized. That fmt is not an OpenROAD fork — it is plain fmtlib/fmt pulled in unmodified via a nested submodule. The build failed with an opaque `glob pattern 'include/fmt/*.h' didn't match anything` when the nested submodule was missing. Switch Bazel to BCR (`bazel_dep(name = "fmt", version = "11.2.0.bcr.1")`). The existing `@fmt` references in `third-party/slang-elab/src/BUILD` and `src/syn/src/elab/BUILD` resolve to the BCR module instead of the nested submodule. The slang side stays as `new_local_repository` for now (slang-elab pins a commit newer than slang v10.0, the latest BCR release; that switch is a separate follow-up). CMake builds are unaffected — `.gitmodules` still references the nested fmt submodule. Only Bazel's view of `@fmt` changes. Document the submodule-for-CMake / BCR-for-Bazel policy in README.md so future contributors do not add submodules just to feed Bazel. Test plan: verified `bazelisk build //:openroad` succeeds with `third-party/slang-elab/third_party/fmt` deinit'd (`git submodule deinit -f third_party/fmt`). `bazelisk mod show_repo fmt` confirms the repo is sourced from bcr.bazel.build/modules/fmt/11.2.0.bcr.1. Co-Authored-By:
Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by:
Øyvind Harboe <oyvind.harboe@zylin.com>
Loading