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

View File

@@ -0,0 +1,86 @@
cmake_minimum_required(VERSION 3.22.1)
project(rmlandroid LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
include(ExternalProject)
set(DEPS_INSTALL ${CMAKE_BINARY_DIR}/deps/install)
set(ANDROID_TOOLCHAIN_ARGS
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
-DANDROID_ABI=${ANDROID_ABI}
-DANDROID_PLATFORM=${ANDROID_PLATFORM}
-DANDROID_STL=c++_shared
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL}
-DCMAKE_PREFIX_PATH=${DEPS_INSTALL}
-DBUILD_SHARED_LIBS=OFF
-DCMAKE_CXX_STANDARD=17
-DCMAKE_CXX_STANDARD_REQUIRED=ON
-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=BOTH
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=BOTH
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH
)
find_package(SDL3 REQUIRED CONFIG)
find_package(SDL3_image REQUIRED CONFIG)
ExternalProject_Add(freetype_ext
GIT_REPOSITORY https://github.com/freetype/freetype.git
GIT_TAG VER-2-13-3
CMAKE_ARGS ${ANDROID_TOOLCHAIN_ARGS}
-DFT_DISABLE_ZLIB=TRUE
-DFT_DISABLE_BZIP2=TRUE
-DFT_DISABLE_PNG=TRUE
-DFT_DISABLE_HARFBUZZ=TRUE
-DFT_DISABLE_BROTLI=TRUE
)
ExternalProject_Add(rmlui_ext
GIT_REPOSITORY https://github.com/mikke89/RmlUi.git
GIT_TAG 6.2
CMAKE_ARGS ${ANDROID_TOOLCHAIN_ARGS}
-DFreetype_ROOT=${DEPS_INSTALL}
-DRMLUI_SAMPLES=OFF
-DBUILD_TESTING=OFF
DEPENDS freetype_ext
)
set(PROJECT_SRC_DIR ${CMAKE_SOURCE_DIR}/../../src)
set(RMLUI_BACKEND_DIR ${CMAKE_SOURCE_DIR}/../../vendor/rmlui_backend)
add_library(rmlandroid SHARED
${PROJECT_SRC_DIR}/main.cpp
${RMLUI_BACKEND_DIR}/RmlUi_Backend_SDL_SDLrenderer.cpp
${RMLUI_BACKEND_DIR}/RmlUi_Platform_SDL.cpp
${RMLUI_BACKEND_DIR}/RmlUi_Renderer_SDL.cpp
)
add_dependencies(rmlandroid freetype_ext rmlui_ext)
target_include_directories(rmlandroid PRIVATE
${PROJECT_SRC_DIR}
${RMLUI_BACKEND_DIR}
${DEPS_INSTALL}/include
)
target_compile_definitions(rmlandroid PRIVATE
RMLUI_SDL_VERSION_MAJOR=3
RMLUI_STATIC_LIB
)
target_link_directories(rmlandroid PRIVATE ${DEPS_INSTALL}/lib)
target_link_libraries(rmlandroid PRIVATE
SDL3::SDL3
SDL3_image::SDL3_image
rmlui
rmlui_debugger
freetype
)
target_link_options(rmlandroid PRIVATE "-Wl,-u,SDL_main")

View File

@@ -0,0 +1,67 @@
plugins {
id("com.android.application")
}
android {
namespace = "com.rmlandroid.app"
compileSdk = 34
ndkVersion = "26.3.11579264"
defaultConfig {
applicationId = "com.rmlandroid.app"
minSdk = 24
targetSdk = 34
versionCode = 1
versionName = "0.1.0"
ndk {
abiFilters += listOf("arm64-v8a")
}
externalNativeBuild {
cmake {
arguments += "-DANDROID_STL=c++_shared"
cppFlags += "-std=c++17"
}
}
}
buildFeatures {
prefab = true
}
externalNativeBuild {
cmake {
path = file("CMakeLists.txt")
version = "3.22.1"
}
}
sourceSets {
getByName("main") {
assets.srcDirs("../../assets")
}
}
buildTypes {
release {
isMinifyEnabled = false
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
packaging {
jniLibs {
useLegacyPackaging = true
}
}
}
dependencies {
implementation(files("libs/SDL3-3.4.14.aar"))
implementation(files("libs/SDL3_image-3.4.4.aar"))
}

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-feature android:glEsVersion="0x00030000" android:required="true" />
<!-- <uses-permission android:name="android.permission.INTERNET" /> -->
<application
android:allowBackup="true"
android:label="RmlAndroid"
android:hasCode="true">
<activity
android:name="com.rmlandroid.app.MainActivity"
android:label="RmlAndroid"
android:configChanges="orientation|screenSize|keyboardHidden"
android:exported="true"
android:screenOrientation="fullSensor"
android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

View File

@@ -0,0 +1,14 @@
package com.rmlandroid.app;
import org.libsdl.app.SDLActivity;
public class MainActivity extends SDLActivity {
@Override
protected String[] getLibraries() {
return new String[] {
"SDL3",
"rmlandroid"
};
}
}