blob: ddf168d5a299d08d6dd64e177f6da541c6405323 [file]
---
title: 'WORKSPACE files'
---
Methods available in WORKSPACE files.
## Members
* [bind](#bind)
* [register_execution_platforms](#register_execution_platforms)
* [register_toolchains](#register_toolchains)
* [workspace](#workspace)
## bind
```
None bind(name, actual=None)
```
DEPRECATED: see [Consider removing bind](https://github.com/bazelbuild/bazel/issues/1952) for a long discussion of its issues and alternatives. `bind()` is not be available in Bzlmod.
Gives a target an alias in the `//external` package.
### Parameters
| Parameter | Description |
| --- | --- |
| `name` | [string](../core/string); required The label under '//external' to serve as the alias name |
| `actual` | [string](../core/string); or `None`; default is `None` The real label to be aliased |
## register_execution_platforms
```
None register_execution_platforms(*platform_labels)
```
Specifies already-defined execution platforms to be registered. Should be absolute [target patterns](https://bazel.build/versions/8.7.0/reference/glossary#target-pattern) (ie. beginning with either `@` or `//`). See [toolchain resolution](/versions/8.7.0/docs/toolchains) for more information. Patterns that expand to multiple targets, such as `:all`, will be registered in lexicographical order by name.
### Parameters
| Parameter | Description |
| --- | --- |
| `platform_labels` | [sequence](../core/list) of [string](../core/string)s; required The target patterns to register. |
## register_toolchains
```
None register_toolchains(*toolchain_labels)
```
Specifies already-defined toolchains to be registered. Should be absolute [target patterns](https://bazel.build/versions/8.7.0/reference/glossary#target-pattern) (ie. beginning with either `@` or `//`). See [toolchain resolution](/versions/8.7.0/docs/toolchains) for more information. Patterns that expand to multiple targets, such as `:all`, will be registered in lexicographical order by target name (not the name of the toolchain implementation).
### Parameters
| Parameter | Description |
| --- | --- |
| `toolchain_labels` | [sequence](../core/list) of [string](../core/string)s; required The target patterns to register. |
## workspace
```
None workspace(name)
```
This function can only be used in a `WORKSPACE` file and must be declared before all other functions in the `WORKSPACE` file. Each `WORKSPACE` file should have a `workspace` function.
Sets the name for this workspace. Workspace names should be a Java-package-style description of the project, using underscores as separators, e.g., github.com/bazelbuild/bazel should use com_github_bazelbuild_bazel.
This name is used for the directory that the repository's runfiles are stored in. For example, if there is a runfile `foo/bar` in the local repository and the WORKSPACE file contains `workspace(name = 'baz')`, then the runfile will be available under `mytarget.runfiles/baz/foo/bar`. If no workspace name is specified, then the runfile will be symlinked to `bar.runfiles/foo/bar`.
[Remote repository](/versions/8.7.0/docs/external) rule names must be valid workspace names. For example, you could have `maven_jar(name = 'foo')`, but not `maven_jar(name = 'foo%bar')`, as Bazel would attempt to write a WORKSPACE file for the `maven_jar` containing `workspace(name = 'foo%bar')`.
### Parameters
| Parameter | Description |
| --- | --- |
| `name` | [string](../core/string); required the name of the workspace. Names must start with a letter and can only contain letters, numbers, underscores, dashes, and dots. |