Working template (RmlUi 6.2)
Needs: - Lua plugin - SVG plugin
This commit is contained in:
86
android/app/CMakeLists.txt
Normal file
86
android/app/CMakeLists.txt
Normal 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")
|
||||
67
android/app/build.gradle.kts
Normal file
67
android/app/build.gradle.kts
Normal 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"))
|
||||
}
|
||||
BIN
android/app/libs/SDL3-3.4.14.aar
Normal file
BIN
android/app/libs/SDL3-3.4.14.aar
Normal file
Binary file not shown.
BIN
android/app/libs/SDL3_image-3.4.4.aar
Normal file
BIN
android/app/libs/SDL3_image-3.4.4.aar
Normal file
Binary file not shown.
26
android/app/src/main/AndroidManifest.xml
Normal file
26
android/app/src/main/AndroidManifest.xml
Normal 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>
|
||||
@@ -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"
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user