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 perl
30 pkg-config
31 protobuf
32 rustPlatform.bindgenHook
33 ];
34
35 inherit buildInputs;
36
37 shellHook = ''
38 export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath ([
39 pkgs.vulkan-loader
40 ]
41 ++ 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 }