Skip to content

Commit 8cccd75

Browse files
authored
Android build via CMake (luanti-org#13528)
* the thing * the thing 2
1 parent 00c647e commit 8cccd75

File tree

13 files changed

+82
-394
lines changed

13 files changed

+82
-394
lines changed

CMakeLists.txt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,17 @@ set(ENABLE_UPDATE_CHECKER (NOT ${DEVELOPMENT_BUILD}) CACHE BOOL
6767
# Included stuff
6868
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
6969

70+
# Load default options for Android
71+
if(ANDROID)
72+
cmake_minimum_required(VERSION 3.20)
73+
include(MinetestAndroidLibs)
74+
endif()
75+
7076

7177
set(IRRLICHTMT_BUILD_DIR "" CACHE PATH "Path to IrrlichtMt build directory.")
72-
if(NOT "${IRRLICHTMT_BUILD_DIR}" STREQUAL "")
78+
if(ANDROID)
79+
# currently manually provided
80+
elseif(NOT "${IRRLICHTMT_BUILD_DIR}" STREQUAL "")
7381
find_package(IrrlichtMt QUIET
7482
PATHS "${IRRLICHTMT_BUILD_DIR}"
7583
NO_DEFAULT_PATH
@@ -120,7 +128,9 @@ else()
120128
endif()
121129
endif()
122130

123-
if(BUILD_CLIENT AND TARGET IrrlichtMt::IrrlichtMt)
131+
if(ANDROID)
132+
# skipped for now
133+
elseif(BUILD_CLIENT AND TARGET IrrlichtMt::IrrlichtMt)
124134
# retrieve version somehow
125135
if(NOT IrrlichtMt_VERSION)
126136
get_target_property(IrrlichtMt_VERSION IrrlichtMt VERSION)

android/app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
</intent-filter>
5555
<meta-data
5656
android:name="android.app.lib_name"
57-
android:value="Minetest" />
57+
android:value="minetest" />
5858
</activity>
5959

6060
<service

android/app/src/main/java/net/minetest/minetest/GameActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
public class GameActivity extends NativeActivity {
4949
static {
5050
System.loadLibrary("c++_shared");
51-
System.loadLibrary("Minetest");
51+
System.loadLibrary("minetest");
5252
}
5353

5454
private int messageReturnCode = -1;

android/build.gradle

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
project.ext.set("versionMajor", 5) // Version Major
44
project.ext.set("versionMinor", 8) // Version Minor
55
project.ext.set("versionPatch", 0) // Version Patch
6-
project.ext.set("versionExtra", "-dev") // Version Extra
6+
// ^ keep in sync with cmake
77
project.ext.set("versionCode", 44) // Android Version Code
8-
project.ext.set("developmentBuild", 1) // Whether it is a development build, or a release
98
// NOTE: +2 after each release!
109
// +1 for ARM and +1 for ARM64 APK's, because
1110
// each APK must have a larger `versionCode` than the previous

android/native/build.gradle

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,18 @@ android {
99
minSdkVersion 21
1010
targetSdkVersion 33
1111
externalNativeBuild {
12-
ndkBuild {
13-
arguments '-j' + Runtime.getRuntime().availableProcessors(),
14-
"versionMajor=${versionMajor}",
15-
"versionMinor=${versionMinor}",
16-
"versionPatch=${versionPatch}",
17-
"versionExtra=${versionExtra}",
18-
"developmentBuild=${developmentBuild}"
12+
cmake {
13+
arguments "-DANDROID_STL=c++_shared",
14+
"-DENABLE_CURL=1", "-DENABLE_SOUND=1",
15+
"-DENABLE_TOUCH=1", "-DENABLE_GETTEXT=1",
16+
"-DBUILD_UNITTESTS=0", "-DENABLE_UPDATE_CHECKER=0"
1917
}
2018
}
2119
}
2220

2321
externalNativeBuild {
24-
ndkBuild {
25-
path file('jni/Android.mk')
22+
cmake {
23+
path file("../../CMakeLists.txt")
2624
}
2725
}
2826

@@ -37,12 +35,6 @@ android {
3735

3836
buildTypes {
3937
release {
40-
externalNativeBuild {
41-
ndkBuild {
42-
arguments 'NDEBUG=1'
43-
}
44-
}
45-
4638
ndk {
4739
debugSymbolLevel 'SYMBOL_TABLE'
4840
}

0 commit comments

Comments
 (0)