Working template (RmlUi 6.2)

Needs:
- Lua plugin
- SVG plugin
This commit is contained in:
2026-08-10 11:13:18 -05:00
commit bced86ed9e
81 changed files with 45737 additions and 0 deletions

121
flake.nix Normal file
View File

@@ -0,0 +1,121 @@
{
description = "RmlUi android app";
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;
config = {
allowUnfree = true;
android_sdk.accept_license = true;
};
};
rmlui = pkgs.stdenv.mkDerivation rec {
pname = "rmlui";
version = "6.2";
src = pkgs.fetchFromGitHub {
owner = "mikke89";
repo = "RmlUi";
rev = "6.2";
hash = "sha256-K/znksrli3/FQ+lHgZgMgefFrWAGbxKNvFIIqtybOMc=";
};
nativeBuildInputs = [ pkgs.cmake pkgs.pkg-config ];
buildInputs = [ pkgs.freetype ];
cmakeFlags = [
"-DBUILD_SHARED_LIBS=ON"
"-DBUILD_SAMPLES=OFF"
"-DBUILD_TESTING=OFF"
"-DNO_FONT_INTERFACE_DEFAULT=OFF"
];
};
buildDeps = with pkgs; [
cmake
pkg-config
gcc
clang-tools
];
runtimeDeps = with pkgs; [
sdl3
sdl3-image
libGL
wayland
libxkbcommon
rmlui
freetype
];
ndkVersion = "26.3.11579264";
androidComposition = pkgs.androidenv.composeAndroidPackages {
platformVersions = [ "34" ];
buildToolsVersions = [ "34.0.0" ];
includeNDK = true;
ndkVersions = [ ndkVersion ];
cmakeVersions = [ "3.22.1" ];
abiVersions = [ "arm64-v8a" ];
includeEmulator = false;
};
androidSdkRoot = "${androidComposition.androidsdk}/libexec/android-sdk";
androidNdkRoot = "${androidSdkRoot}/ndk/${ndkVersion}";
androidDeps = [
androidComposition.androidsdk
pkgs.gradle
pkgs.jdk17
pkgs.ninja
];
in
{
devShells.default = pkgs.mkShell {
nativeBuildInputs = buildDeps ++ androidDeps;
buildInputs = runtimeDeps;
shellHook = ''
export CP_PATH="${rmlui}/include"
export LIBRARY_PATH="${pkgs.libGL}/lib:${rmlui}/lib"
export LD_LIBRARY_PATH="$LIBRARY_PATH:$LD_LIBRARY_PATH"
export ANDROID_HOME="${androidSdkRoot}"
export ANDROID_SDK_ROOT="${androidSdkRoot}"
export ANDROID_NDK_HOME="${androidNdkRoot}"
export ANDROID_NDK_ROOT="${androidNdkRoot}"
echo "Env ready (desktop + Android NDK ${ndkVersion}, arm64-v8a)"
'';
};
packages.default = pkgs.stdenv.mkDerivation {
pname = "rmlandroid";
version = "0.1.0";
src = ./.;
nativeBuildInputs = buildDeps ++ [ pkgs.makeWrapper ];
buildInputs = runtimeDeps;
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
];
postInstall = ''
wrapProgram $out/bin/rmlandroid \
--prefix LD_LIBRARY_PATH : "${pkgs.lib.makeLibraryPath runtimeDeps}"
'';
};
}
);
}