2023-06-12 13:00:59 +00:00
# Building Zed
2023-05-19 15:02:18 +00:00
2024-01-24 19:02:26 +00:00
## Repository
After cloning the repository, ensure all git submodules are initialized:
```shell
git submodule update --init --recursive
```
2024-01-17 21:24:55 +00:00
## Dependencies
2024-01-17 18:20:27 +00:00
2024-01-17 21:24:55 +00:00
- Install [Rust ](https://www.rust-lang.org/tools/install )
2024-02-06 10:25:46 +00:00
- Install [Xcode ](https://apps.apple.com/us/app/xcode/id497799835?mt=12 ) from the macOS App Store, or from the [Apple Developer ](https://developer.apple.com/download/all/ ) website. Note this requires a developer account.
> Ensure you launch XCode after installing, and install the MacOS components, which is the default option.
2023-12-12 00:17:13 +00:00
2024-01-17 21:24:55 +00:00
- Install [Xcode command line tools ](https://developer.apple.com/xcode/resources/ )
2023-05-19 15:02:18 +00:00
2024-01-31 17:34:31 +00:00
```bash
xcode-select --install
```
2024-01-17 18:09:13 +00:00
2024-01-17 21:24:55 +00:00
- Ensure that the Xcode command line tools are using your newly installed copy of Xcode:
2023-07-12 18:09:21 +00:00
2024-01-31 17:34:31 +00:00
```
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
```
2024-01-17 18:09:13 +00:00
2024-01-17 21:24:55 +00:00
* Install the Rust wasm toolchain:
2024-01-17 18:09:13 +00:00
2024-01-31 17:34:31 +00:00
```bash
rustup target add wasm32-wasi
```
2024-01-17 18:09:13 +00:00
2024-01-17 21:24:55 +00:00
## Backend Dependencies
2024-01-17 18:09:13 +00:00
2024-01-17 21:24:55 +00:00
If you are developing collaborative features of Zed, you'll need to install the dependencies of zed's `collab` server:
2024-01-17 18:09:13 +00:00
2024-01-17 21:24:55 +00:00
- Install [Postgres ](https://postgresapp.com )
- Install [Livekit ](https://formulae.brew.sh/formula/livekit ) and [Foreman ](https://formulae.brew.sh/formula/foreman )
2024-01-17 18:09:13 +00:00
2024-01-31 17:34:31 +00:00
```bash
brew install livekit foreman
```
2024-01-17 18:09:13 +00:00
2024-01-17 21:24:55 +00:00
## Building Zed from Source
2023-07-12 18:09:21 +00:00
2024-01-17 21:24:55 +00:00
Once you have the dependencies installed, you can build Zed using [Cargo ](https://doc.rust-lang.org/cargo/ ).
2023-05-19 15:02:18 +00:00
2024-01-17 21:24:55 +00:00
For a debug build:
2024-01-17 18:09:13 +00:00
```
2024-01-17 21:24:55 +00:00
cargo run
2024-01-17 18:09:13 +00:00
```
2024-01-17 21:24:55 +00:00
For a release build:
2024-01-17 18:20:27 +00:00
2024-01-17 21:24:55 +00:00
```
cargo run --release
2024-01-17 18:20:27 +00:00
```
2024-01-17 21:24:55 +00:00
And to run the tests:
2024-01-17 18:20:27 +00:00
2024-01-17 21:24:55 +00:00
```
cargo test --workspace
```
2023-05-19 15:02:18 +00:00
## Troubleshooting
2024-01-17 21:24:55 +00:00
### Error compiling metal shaders
2024-01-17 18:09:13 +00:00
2024-01-17 18:20:27 +00:00
```
2024-01-17 21:24:55 +00:00
error: failed to run custom build command for gpui v0.1.0 (/Users/path/to/zed)`**
2024-01-17 18:20:27 +00:00
2024-01-17 21:24:55 +00:00
xcrun: error: unable to find utility "metal", not a developer tool or in PATH
2023-05-19 15:02:18 +00:00
```
2024-02-06 10:25:46 +00:00
Try `sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer`
2023-05-19 15:02:18 +00:00
2024-01-17 21:24:55 +00:00
### Cargo errors claiming that a dependency is using unstable features
2023-05-19 15:02:18 +00:00
2024-01-24 22:36:21 +00:00
Try `cargo clean` and `cargo build` .