1{pkgs ? import <nixpkgs> {}}: let
2 stdenv = pkgs.stdenvAdapters.useMoldLinker pkgs.llvmPackages_18.stdenv;
3in
4 if pkgs.stdenv.isDarwin
5 then
6 # See https://github.com/NixOS/nixpkgs/issues/320084
7 throw "zed: nix dev-shell isn't supported on darwin yet."
8 else let
9 buildInputs = with pkgs; [
10 curl
11 fontconfig
12 freetype
13 libgit2
14 openssl
15 sqlite
16 zlib
17 zstd
18 alsa-lib
19 libxkbcommon
20 wayland
21 xorg.libxcb
22 vulkan-loader
23 rustc
24 cargo
25 ];
26 in
27 pkgs.mkShell.override {inherit stdenv;} {
28 nativeBuildInputs = with pkgs; [
29 clang
30 curl
31 cmake
32 perl
33 pkg-config
34 protobuf
35 rustPlatform.bindgenHook
36 ];
37
38 inherit buildInputs;
39
40 shellHook = ''
41 export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath buildInputs}:$LD_LIBRARY_PATH"
42 export PROTOC="${pkgs.protobuf}/bin/protoc"
43 '';
44
45 FONTCONFIG_FILE = pkgs.makeFontsConf {
46 fontDirectories = [
47 "./assets/fonts/zed-mono"
48 "./assets/fonts/zed-sans"
49 ];
50 };
51 ZSTD_SYS_USE_PKG_CONFIG = true;
52 }