The-OpenROAD-Project / The-OpenROAD-Project/OpenROAD
bazel: make use of filegroups and don't rely on symbolic links
Nobody has claimed this yet.
- Dominant language
- Verilog
- Stars
- 3.1k
- Forks
- 1k
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 136
Description
Description
In the set-up of getting tests going, we're using the infrastructure for test-data in place for the bazel build. Many test directories have symbolic links to ../../test/somthing so that they appear local to that directory; and from there we build a local file-group per directory.
Bazel has a neater way to represent bundles of files, the file groups. We can create these at the original source in //test (e.g. for sky130 pkd or nangate45 something etc), and use these in tests all over the project by just having to refer to //test:foobar_resource.
Right now, there are about 270 symbolic links in the project. Would be good that after this change, we would not need any of it (we would only have to keep them for cmake).
$ find src -type l | wc -l
270
Suggested Solution
Build well-named file-groups in //test for test resources and use them wherever we use local file groups packing symbolic linked content instead.
Additional Context
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by inventorying the symbolic links under src and the local file groups that package their contents, then inspect the shared resources in //test. Replace those Bazel references with well-named file groups defined in //test while retaining links needed by CMake. Done means the Bazel setup no longer needs the roughly 270 symbolic links.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100