Working template (RmlUi 6.2)
Needs: - Lua plugin - SVG plugin
This commit is contained in:
121
flake.nix
Normal file
121
flake.nix
Normal 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}"
|
||||
'';
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user