# ToolchainContext

{% dynamic setvar source_file "src/main/java/com/google/devtools/build/lib/starlarkbuildapi/platform/ToolchainContextApi.java" %} {% dynamic setvar version "8.1.0" %} {% dynamic setvar original_path "/rules/lib/builtins/ToolchainContext" %} {% include "_buttons.html" %} Holds toolchains available for a particular exec group. Toolchain targets are accessed by indexing with the toolchain type, as in `ctx.toolchains["//pkg:my_toolchain_type"]`. If the toolchain was optional and no toolchain was resolved, this will return `None`. Accessing toolchains of an aspect or rule via `ctx.toolchains` returns the indexed toolchain as a `ToolchainInfo` provider. While when using aspects, `ToolchainContext` is also used to hold the toolchains of the base target. It can be accessed by `ctx.rule.toolchains["//pkg:my_toolchain_type"]` and it returns the list of providers resulted from applying the aspects on these toolchain targets.