summaryrefslogtreecommitdiff
path: root/linux-build-deps/flake.nix
blob: 3b10800fe3265bfa48ba7b136395a1934f09536b (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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
{
  description = "Shipwright development environment";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    pinned.url = "github:NixOS/nixpkgs/e6f23dc08d3624daab7094b701aa3954923c6bbb";
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs = { self, nixpkgs, pinned, flake-utils }:
    flake-utils.lib.eachDefaultSystem (system:
      let
        pkgs = nixpkgs.legacyPackages.${system};
        pinned-pkgs = pinned.legacyPackages.${system};
      in
      {
        devShells.default = pkgs.mkShell {
          buildInputs = with pkgs; [
            # Build tools
            git
            cmake
            ninja
            lsb-release
            pkg-config

            # SDL2 libraries
            SDL2
            SDL2.dev
            SDL2_net

            # Assets pipeline
            python3
            imagemagick

            # Other libraries
            libpng
            libzip
            nlohmann_json
            tinyxml-2
            spdlog
            libGL
            libGL.dev
            bzip2

            # X11 libraries
            libx11

            # Audio libraries
            libogg
            libogg.dev
            libvorbis
            libvorbis.dev
            libopus
            libopus.dev
            opusfile
            opusfile.dev

            # Runtime dependencies
            zenity
          ] ++ [
            # Version of clang-format used by decomp
            pinned-pkgs.clang_14
          ];
          shellHook = ''
            echo "Shipwright development environment loaded"
            echo "Available tools: clang, git, cmake, ninja, python3"
          '';
        };
      });
}