| def _workspace_root_impl(ctx): | |
| """Dynamically determine the workspace root from the current context. | |
| The path is made available as a `WORKSPACE_ROOT` environmment variable and | |
| may for instance be consumed in the `toolchains` attributes for `cc_library` | |
| and `genrule` targets. | |
| """ | |
| return [ | |
| platform_common.TemplateVariableInfo({ | |
| "WORKSPACE_ROOT": ctx.label.workspace_root, | |
| }), | |
| ] | |
| workspace_root = rule( | |
| implementation = _workspace_root_impl, | |
| attrs = {}, | |
| ) |