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 ];
24 in
25 pkgs.mkShell.override {inherit stdenv;} {
26 nativeBuildInputs = with pkgs; [
27 clang
28 curl
29 cmake
30 perl
31 pkg-config
32 protobuf
33 rustPlatform.bindgenHook
34 ];
35
36 inherit buildInputs;
37
38 shellHook = ''
39 export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath ([
40 pkgs.vulkan-loader
41 ]
42 ++ buildInputs)}:$LD_LIBRARY_PATH"
43 export PROTOC="${pkgs.protobuf}/bin/protoc"
44 '';
45
46 FONTCONFIG_FILE = pkgs.makeFontsConf {
47 fontDirectories = [
48 "./assets/fonts/zed-mono"
49 "./assets/fonts/zed-sans"
50 ];
51 };
52 ZSTD_SYS_USE_PKG_CONFIG = true;
53 }