summaryrefslogtreecommitdiffstats
path: root/flake.nix
blob: 1d94e988ca426ad75d1161f0d16102ef3bbda110 (plain) (blame)
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
71
72
73
{
  description = "GioUI development environment";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs =
    {
      self,
      nixpkgs,
      flake-utils,
    }:
    flake-utils.lib.eachDefaultSystem (
      system:
      let
        pkgs = nixpkgs.legacyPackages.${system};
      in
      {
        devShells.default = pkgs.mkShell {
          packages = with pkgs; [
            # Build tools
            pkg-config
            gcc
            go

            # Core graphics and windowing
            libGL
            wayland
            libxkbcommon

            # X11 support (optional but commonly used)
            xorg.libX11
            xorg.libXcursor
            xorg.libXrandr
            xorg.libXi
            xorg.libXfixes
            xorg.libxcb

            # Font rendering
            fontconfig
            freetype

            # Vulkan support (optional)
            vulkan-headers
            vulkan-loader
          ];

          shellHook = ''
            echo "GioUI development environment ready!"
            echo "Go version: $(go version)"
          '';

          LD_LIBRARY_PATH =
            with pkgs;
            lib.makeLibraryPath [
              libGL
              wayland
              libxkbcommon
              xorg.libX11
              xorg.libXcursor
              xorg.libXrandr
              xorg.libXi
              xorg.libXfixes
              fontconfig
              freetype
              vulkan-loader
            ];
        };
      }
    );
}