Sets the destination directory for a generated workspace or project file.

```lua
location ("path")
```

By default, workspace and project files are generated into the same directory as the script that defines them. The `location` function allows you to change this location.

Note that unlike other values, `location` does not automatically propagate to the contained projects. Projects will use their default location unless explicitly overridden.

### Parameters ###

`path` is the directory where the generated files should be stored, specified relative to the currently executing script file.

### Applies To ###

Workspaces and projects.

### Availability ###

Premake 4.0 or later.

### Examples ###

Set the destination directory for a workspace. Setting the location for a project works the same way.

```lua
workspace "MyWorkspace"
  location "../build"
```

If you plan to build with multiple tools from the same source tree you might want to split up the project files by toolset. The [_ACTION](premake_ACTION.md) global variable contains the current toolset identifier, as specified on the command line. Note that Lua syntax requires parenthesis around the function parameters in this case.

```lua
location ("../build/" .. _ACTION)
```