After the odb Bazel split, messages_txt only globbed include/odb/*.h
(8 messages) and missed ~576 logger messages in sub-package source
files. Add message_srcs filegroups to each sub-package, an extra_srcs
parameter to the messages_txt macro, and positional file-path support
in find_messages.py so that sources spanning multiple Bazel packages
are scanned correctly.
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
install.sh deleted openroad.runfiles/_main which contains the Tcl
resource files (init.tcl, tclreadline, etc.) needed by the Bazel-built
binary. Remove that rm so the runfiles tree stays intact after install.
Add an install smoke test that extracts the packaging tarball and
verifies the binary can evaluate a Tcl expression — catches regressions
like this automatically.
Validate: bazelisk test //test/install/...
Fixes#10115
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* For Tcl9, all relevant system tcl files, the tcl library and
readline library, are packed in a zip file, compiled into the
binary mounted on the virtual filesystem //zipfs:/
* On Tcl 8, which does not allow to do that quite yet, we
take the same directory structure (unpacked), and use them
via runfiles as before; however, since this is now a single
directory the runfile symbolic links are reduced to one.
Default for now is to use the runfile method, as we're still on
Tcl8; The code is prepared for Tcl9, awaiting some changes in
STA to be merged, then we can change the default.
Fixes: #9962#9980
Signed-off-by: Henner Zeller <h.zeller@acm.org>
bazel-orfs replaced per-stage _deps targets with a single //:deps
wrapper using --output_groups=deps. Update documentation to reflect
the new syntax while keeping tmp/ directory paths unchanged.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
... openroad is not compatible with older versions and
the default compilers resort to is c++17.
Last change that finally fixes#9937
Signed-off-by: Henner Zeller <h.zeller@acm.org>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Matt Liberty <matt.liberty@gmail.com>
Replace orfs_flow with orfs_sweep for the gcd test design, adding
an identical "b" variant alongside the existing "base". A new
check_same() macro diffs .odb and .sdc outputs from every stage
between the two variants to verify deterministic results.
fixes#2229
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Run black on check_visibility.py and check_dev_dep.py.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Instead of spinning up a separate Bazel workspace (minutes), inspect
BUILD.bazel and MODULE.bazel directly with py_test (0.1s each).
7 individual tests: visibility checks for openroad, openroad_py,
openroad_lib, and dev_dependency checks for rules_shell, rules_pkg,
rules_verilator, verilator.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Replace monolithic visibility_test.sh (7 sequential bazelisk invocations)
with 7 individual sh_test targets that can run in parallel and be
debugged independently.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
src/web uses @npm for bundled assets, so aspect_rules_js, rules_nodejs,
and their extensions (node, npm) must be non-dev for downstream consumers.
Add .bazelrc to test/downstream for --experimental_isolated_extension_usages.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
bazel-orfs moved generate.bzl and verilog.bzl into the
bazel-orfs-verilog submodule.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
The only Posix compatible way to call bash is via `/usr/bin/env`
as bash might be installed in different locations on the system.
`/bin/bash` is not a Posix-required location for that binary
(only `/bin/sh` is).
Use `set -o noglob` instead of `bash -f` for improved readability.
Signed-off-by: Henner Zeller <h.zeller@acm.org>
Two issues prevented the test from working under bazelisk test:
- dirname "$0" resolved to the runfiles tree, not the source tree;
use readlink -f to follow the symlink to the real script location
- HOME is not set in Bazel test environments; bazelisk needs it to
locate its cache directory
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
The local bazel-orfs moved chisel support from
@bazel-orfs//toolchains/scala:chisel.bzl to the standalone
@rules_chisel//chisel:defs.bzl package. Add rules_chisel as a
dev dependency, configure the chisel extension toolchain, and
update the mock-array BUILD load path accordingly.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>