summaryrefslogtreecommitdiff
path: root/flake.nix
blob: 5b63b0e4c22cc5282b82ebe1a201c8dfe7ddb5a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{
  description = "The Slang Shading Language and Compiler";
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    flake-utils.url = "github:numtide/flake-utils";
  };
  outputs =
    {
      self,
      nixpkgs,
      flake-utils,
    }:
    flake-utils.lib.eachDefaultSystem (
      system:
      let
        pkgs = import nixpkgs { inherit system; };
      in
      {
        # We want to use Clang instead of GCC because it seems to behave better
        # with LLDB, so we use `mkShellNoCC` here instead of `mkShell` because
        # the latter brings in GCC by default on Linux.
        devShell = pkgs.mkShellNoCC {
          buildInputs = [
            # Must put `clang-tools` before `clang` for clangd to work properly.
            # We use `llvmPackages_17.clang-tools` instead of just `clang-tools`
            # to match the `clang-format` version used in CI.
            pkgs.llvmPackages_17.clang-tools

            pkgs.clang
            pkgs.cmake
            pkgs.gersemi
            pkgs.lldb
            pkgs.ninja
            pkgs.nixfmt-rfc-style
            pkgs.prettier
            pkgs.python3
            pkgs.shfmt
            pkgs.xorg.libX11
          ];
        };
      }
    );
}