-
Notifications
You must be signed in to change notification settings - Fork 38
Description
What
Our BUILD files currently contain build targets which contain a large number of source files (for both libraries and unit tests). This results in having a large number of dependencies for each build target.
We want one translation unit per bazel target.
Interfaces shall have a source file to make them a separate translation unit.
How
We should try to reduce the size of our internal build targets to make them more modular. It may be that some internal BUILD targets will only contain a single translation unit and only add additional translation units to a single BUILD target if it makes sense.
We can also have public targets which contain more translation units which are grouped according to user interaction and depend on how more modular internal BUILD targets.
To retain the dependency tree where wanted, a bazel target may also contain no translation unit itself but only a list of dependencies to other bazel targets. This can be used to group bazel targets.
When changing the scope of a bazel target, please also verify the list of dependencies.
We do not want to transitively depend on anything, but the list of dependencies should be reduced to the necessary dependencies.
Estimates for realization
- Effort medium
- No impact on users expected
Category
- Affects Detailed Design
Requirements / Architecture
- Requirements / Architecture are not affected by this change?