97 lines
2.8 KiB
Nix
97 lines
2.8 KiB
Nix
{
|
|
description = "Raylib + RmlUi dev shell";
|
|
|
|
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; };
|
|
|
|
rmluiSrc = pkgs.fetchFromGitHub {
|
|
owner = "mikke89";
|
|
repo = "RmlUi";
|
|
tag = "6.3";
|
|
hash = "sha256-ZoK6H3ldrgHjCoMgDg+6XAD+ZaCwLuUgPq0fK+GdlCs=";
|
|
};
|
|
|
|
rmluiCmakeFlags = [
|
|
"-DRMLUI_LUA_BINDINGS=OFF"
|
|
"-DRMLUI_SVG_PLUGIN=OFF"
|
|
"-DBUILD_SAMPLES=OFF"
|
|
"-DBUILD_TESTING=OFF"
|
|
];
|
|
|
|
rmlui = pkgs.stdenv.mkDerivation {
|
|
pname = "rmlui";
|
|
version = "6.3";
|
|
src = rmluiSrc;
|
|
nativeBuildInputs = [ pkgs.cmake pkgs.pkg-config ];
|
|
buildInputs = [ pkgs.freetype ];
|
|
cmakeFlags = rmluiCmakeFlags ++ [ "-DBUILD_SHARED_LIBS=ON" ];
|
|
};
|
|
|
|
raylibPatched = pkgs.raylib.overrideAttrs (old: {
|
|
postPatch = (old.postPatch or "") + ''
|
|
substituteInPlace src/platforms/rcore_desktop_glfw.c \
|
|
--replace-fail \
|
|
'glfwSetJoystickCallback(NULL);' \
|
|
'glfwWindowHint(GLFW_STENCIL_BITS, 8);
|
|
glfwSetJoystickCallback(NULL);'
|
|
'';
|
|
});
|
|
|
|
nativeBuildTools = with pkgs; [
|
|
cmake
|
|
pkg-config
|
|
clang-tools
|
|
];
|
|
|
|
nativeRuntimeDeps = with pkgs; [
|
|
raylibPatched
|
|
libGL
|
|
libX11
|
|
libXcursor
|
|
libXrandr
|
|
libXinerama
|
|
libXi
|
|
wayland
|
|
libxkbcommon
|
|
rmlui
|
|
freetype
|
|
];
|
|
in
|
|
{
|
|
devShells.default = pkgs.mkShell {
|
|
nativeBuildInputs = nativeBuildTools;
|
|
buildInputs = nativeRuntimeDeps;
|
|
shellHook = ''
|
|
export C_INCLUDE_PATH="${rmlui}/include:${pkgs.raylib}/include"
|
|
export CPLUS_INCLUDE_PATH="$C_INCLUDE_PATH"
|
|
export LIBRARY_PATH="${pkgs.lib.makeLibraryPath nativeRuntimeDeps}"
|
|
export LD_LIBRARY_PATH="$LIBRARY_PATH:$LD_LIBRARY_PATH"
|
|
echo "dev shell ready (raylib + rmlui)"
|
|
'';
|
|
};
|
|
|
|
packages.default = pkgs.stdenv.mkDerivation {
|
|
pname = "rrmlui";
|
|
version = "0.1.0";
|
|
src = ./.;
|
|
nativeBuildInputs = nativeBuildTools ++ [ pkgs.makeWrapper ];
|
|
buildInputs = nativeRuntimeDeps;
|
|
cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ];
|
|
postInstall = ''
|
|
wrapProgram $out/bin/rrmlui \
|
|
--prefix LD_LIBRARY_PATH : "${pkgs.lib.makeLibraryPath nativeRuntimeDeps}"
|
|
'';
|
|
};
|
|
|
|
packages.raylibPatched = raylibPatched;
|
|
}
|
|
);
|
|
}
|