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