ZIm/docs/src/development/macos.md
Peter Tripp 3010dfe038
Support More Linux (#18480)
- Add `script/build-docker`
- Add `script/install-cmake`
- Add `script/install-mold`
- Improve `script/linux` 
  - Add missing dependencies: `jq`, `git`, `tar`, `gzip` as required.
  - Add check for mold
  - Fix Redhat 8.x derivatives (RHEL, Centos, Almalinux, Rocky, Oracle, Amazon)
  - Fix perl libs to be Fedora only
  - Install the best `libstdc++` available on apt distros
  - ArchLinux: run `pacman -Syu` to update repos before installing. 
  - Should work on Raspbian (untested) 

This make it possible to test builds on other distros using docker:
```
./script/build-docker amazonlinux:2023
```
2024-09-30 17:46:21 -04:00

3.3 KiB

Building Zed for macOS

Repository

Clone down the Zed repository.

Dependencies

  • Install Rust
  • Install Xcode from the macOS App Store, or from the Apple Developer website. Note this requires a developer account.

Ensure you launch Xcode after installing, and install the macOS components, which is the default option.

  • Install Xcode command line tools

    xcode-select --install
    
  • Ensure that the Xcode command line tools are using your newly installed copy of Xcode:

    sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
    
  • Install the Rust wasm toolchain:

    rustup target add wasm32-wasip1
    
  • Install cmake (required by a dependency)

    brew install cmake
    
  • (Optional) Install mold to speed up link times

    brew install mold
    

Backend Dependencies

If you are developing collaborative features of Zed, you'll need to install the dependencies of zed's collab server:

Alternatively, if you have Docker installed you can bring up all the collab dependencies using Docker Compose:

docker compose up -d

Building Zed from Source

Once you have the dependencies installed, you can build Zed using Cargo.

For a debug build:

cargo run

For a release build:

cargo run --release

And to run the tests:

cargo test --workspace

Troubleshooting

Error compiling metal shaders

error: failed to run custom build command for gpui v0.1.0 (/Users/path/to/zed)`**

xcrun: error: unable to find utility "metal", not a developer tool or in PATH

Try sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

Cargo errors claiming that a dependency is using unstable features

Try cargo clean and cargo build.

Error: 'dispatch/dispatch.h' file not found

If you encounter an error similar to:

src/platform/mac/dispatch.h:1:10: fatal error: 'dispatch/dispatch.h' file not found

Caused by:
  process didn't exit successfully

  --- stdout
  cargo:rustc-link-lib=framework=System
  cargo:rerun-if-changed=src/platform/mac/dispatch.h
  cargo:rerun-if-env-changed=TARGET
  cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS_aarch64-apple-darwin
  cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS_aarch64_apple_darwin
  cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS

This file is part of Xcode. Ensure you have installed the Xcode command line tools and set the correct path:

xcode-select --install
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

Additionally, set the BINDGEN_EXTRA_CLANG_ARGS environment variable:

export BINDGEN_EXTRA_CLANG_ARGS="--sysroot=$(xcrun --show-sdk-path)"

Then clean and rebuild the project:

cargo clean
cargo run