From 7bdc10ae6de645812f4e57185067f0a83ca5655f Mon Sep 17 00:00:00 2001 From: Leander Scherer Date: Sun, 8 Mar 2026 20:03:38 +0100 Subject: chore(build): update build system and development environment --- flake.nix | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 flake.nix (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..81a7b13 --- /dev/null +++ b/flake.nix @@ -0,0 +1,88 @@ +{ + description = "Raylib C/C++ Dev Environment"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; + }; + + outputs = + { self, nixpkgs }: + let + supportedSystems = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + + forEachSystem = nixpkgs.lib.genAttrs supportedSystems; + in + { + packages = forEachSystem (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + in + { + default = pkgs.stdenv.mkDerivation { + pname = "raylib-shooter"; + version = "0.1.0"; + src = ./.; + + nativeBuildInputs = with pkgs; [ + pkg-config + gnumake + ]; + + buildInputs = with pkgs; [ + raylib + ] ++ pkgs.lib.optionals pkgs.stdenv.isLinux [ + libGL + libX11 + libXrandr + libXi + libXcursor + libXinerama + ]; + + buildPhase = '' + make + ''; + + installPhase = '' + mkdir -p $out/bin + cp bin/dungeon_game $out/bin/raylib-shooter + ''; + }; + }); + + apps = forEachSystem (system: { + default = { + type = "app"; + program = "${self.packages.${system}.default}/bin/raylib-shooter"; + }; + }); + + devShells = forEachSystem ( + system: + let + pkgs = nixpkgs.legacyPackages.${system}; + in + { + default = pkgs.mkShell { + inputsFrom = [ self.packages.${system}.default ]; + packages = with pkgs; [ + gcc + clang-tools + gdb + tiled + zsh + ]; + shellHook = '' + export SHELL=${pkgs.zsh}/bin/zsh + echo "Raylib dev shell loaded." + ''; + }; + } + ); + }; +} -- cgit v1.3.1