Skip to content
  • Øyvind Harboe's avatar
    203ec05d
    bazel: source fmt from BCR · 203ec05d
    Ø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: default avatarClaude Opus 4.7 (1M context) <noreply@anthropic.com>
    Signed-off-by: default avatarØyvind Harboe <oyvind.harboe@zylin.com>
    203ec05d
    bazel: source fmt from BCR
    Ø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: default avatarClaude Opus 4.7 (1M context) <noreply@anthropic.com>
    Signed-off-by: default avatarØyvind Harboe <oyvind.harboe@zylin.com>
Loading