Files
critterfolio/flake.nix

107 lines
2.6 KiB
Nix

{
description = "Critterfolio";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, utils }:
utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
rmlui = pkgs.stdenv.mkDerivation rec {
pname = "rmlui";
version = "master";
src = pkgs.fetchFromGitHub {
owner = "mikke89";
repo = "RmlUi";
rev = "master";
hash = "sha256-vfFtjNHw7coXWrGgtcFyuIsu5rctW5dBJoOt8MTZwDU=";
};
nativeBuildInputs = [
pkgs.cmake
pkgs.pkg-config
];
buildInputs = [
pkgs.freetype
pkgs.lunasvg
pkgs.lua
];
cmakeFlags = [
"-DRMLUI_LUA_BINDINGS=ON"
"-DRMLUI_LUA_BINDINGS_LIBRARY=lua"
"-DRMLUI_SVG_PLUGIN=ON"
"-DBUILD_SHARED_LIBS=ON"
"-DBUILD_SAMPLES=OFF"
"-DBUILD_TESTING=OFF"
"-DNO_FONT_INTERFACE_DEFAULT=OFF"
];
};
buildDeps = with pkgs; [
cmake
pkg-config
gcc
clang-tools
lua-language-server
];
runtimeDeps = with pkgs; [
raylib
glfw
libGL
libX11
libXcursor
libXrandr
libXinerama
libXi
wayland
libxkbcommon
rmlui
freetype
lunasvg
lua
sqlite.dev
toml11
];
in
{
devShells.default = pkgs.mkShell {
nativeBuildInputs = buildDeps;
buildInputs = runtimeDeps;
shellHook = ''
export CP_PATH="${pkgs.raylib}/include:${pkgs.glfw}/include:${rmlui}/include"
export LIBRARY_PATH="${pkgs.raylib}/lib:${pkgs.glfw}/lib:${pkgs.libGL}/lib:${rmlui}/lib"
export LD_LIBRARY_PATH="$LIBRARY_PATH:$LD_LIBRARY_PATH"
echo "Env ready"
'';
};
packages.default = pkgs.stdenv.mkDerivation {
pname = "critterfolio";
version = "0.1.0";
src = ./.;
nativeBuildInputs = buildDeps ++ [ pkgs.makeWrapper ];
buildInputs = runtimeDeps;
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
];
postInstall = ''
wrapProgram $out/bin/critterfolio \
--prefix LD_LIBRARY_PATH : "${pkgs.lib.makeLibraryPath runtimeDeps}"
'';
};
}
);
}