From 8c6d0b51c719e1817e308375d129b17ede3b82fc Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Mon, 7 Nov 2016 22:15:07 +0000 Subject: Use CMake's Android generators to crosscompile --- Android/.classpath | 8 - Android/.project | 33 -- Android/.settings/org.eclipse.jdt.core.prefs | 4 - Android/AndroidManifest.xml | 27 -- Android/assets/basedir/Plugins/README.txt | 2 - Android/assets/basedir/README.txt | 10 - Android/assets/basedir/webadmin/README.txt | 1 - Android/gen/com/mcserver/BuildConfig.java | 6 - Android/gen/com/mcserver/R.java | 39 --- Android/jni/Android.mk | 44 --- Android/jni/Application.mk | 7 - Android/jni/ToJava.cpp | 3 - Android/jni/ToJava.h | 59 ---- Android/jni/app-android.cpp | 130 ------- Android/proguard-project.txt | 20 -- Android/project.properties | 14 - Android/res/drawable-hdpi/ic_launcher.png | Bin 12967 -> 0 bytes Android/res/drawable-ldpi/ic_launcher.png | Bin 5942 -> 0 bytes Android/res/drawable-mdpi/ic_launcher.png | Bin 7989 -> 0 bytes Android/res/drawable-xhdpi/ic_launcher.png | Bin 18851 -> 0 bytes Android/res/layout/list_item.xml | 7 - Android/res/layout/main.xml | 61 ---- Android/res/values-pl/strings.xml | 13 - Android/res/values/strings.xml | 13 - Android/src/com/mcserver/MCServerActivity.java | 302 ----------------- Android/src/com/mcserver/MCServerInstaller.java | 432 ------------------------ CMakeLists.txt | 47 ++- SetFlags.cmake | 9 +- android/.gitignore | 5 + android/CMakeLists.txt | 32 ++ lib/libevent | 2 +- lib/lua | 2 +- lib/tolua++ | 2 +- src/Bindings/CMakeLists.txt | 2 +- src/ByteBuffer.cpp | 37 -- src/CMakeLists.txt | 24 +- src/ClientHandle.h | 2 +- src/FurnaceRecipe.cpp | 6 +- src/LoggerListeners.cpp | 53 +-- src/OSSupport/CMakeLists.txt | 8 - src/OSSupport/Errors.cpp | 2 +- src/OSSupport/File.cpp | 6 +- src/OSSupport/NetworkInterfaceEnum.cpp | 14 +- src/OSSupport/NetworkSingleton.cpp | 15 + src/OSSupport/StackTrace.cpp | 4 +- src/Root.cpp | 22 +- src/StringUtils.cpp | 4 - src/World.cpp | 6 +- src/main.cpp | 18 +- 49 files changed, 149 insertions(+), 1408 deletions(-) delete mode 100644 Android/.classpath delete mode 100644 Android/.project delete mode 100644 Android/.settings/org.eclipse.jdt.core.prefs delete mode 100644 Android/AndroidManifest.xml delete mode 100644 Android/assets/basedir/Plugins/README.txt delete mode 100644 Android/assets/basedir/README.txt delete mode 100644 Android/assets/basedir/webadmin/README.txt delete mode 100644 Android/gen/com/mcserver/BuildConfig.java delete mode 100644 Android/gen/com/mcserver/R.java delete mode 100644 Android/jni/Android.mk delete mode 100644 Android/jni/Application.mk delete mode 100644 Android/jni/ToJava.cpp delete mode 100644 Android/jni/ToJava.h delete mode 100644 Android/jni/app-android.cpp delete mode 100644 Android/proguard-project.txt delete mode 100644 Android/project.properties delete mode 100644 Android/res/drawable-hdpi/ic_launcher.png delete mode 100644 Android/res/drawable-ldpi/ic_launcher.png delete mode 100644 Android/res/drawable-mdpi/ic_launcher.png delete mode 100644 Android/res/drawable-xhdpi/ic_launcher.png delete mode 100644 Android/res/layout/list_item.xml delete mode 100644 Android/res/layout/main.xml delete mode 100644 Android/res/values-pl/strings.xml delete mode 100644 Android/res/values/strings.xml delete mode 100644 Android/src/com/mcserver/MCServerActivity.java delete mode 100644 Android/src/com/mcserver/MCServerInstaller.java create mode 100644 android/.gitignore create mode 100644 android/CMakeLists.txt diff --git a/Android/.classpath b/Android/.classpath deleted file mode 100644 index a4763d1ee..000000000 --- a/Android/.classpath +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/Android/.project b/Android/.project deleted file mode 100644 index ad960717b..000000000 --- a/Android/.project +++ /dev/null @@ -1,33 +0,0 @@ - - - MCServer - - - - - - com.android.ide.eclipse.adt.ResourceManagerBuilder - - - - - com.android.ide.eclipse.adt.PreCompilerBuilder - - - - - org.eclipse.jdt.core.javabuilder - - - - - com.android.ide.eclipse.adt.ApkBuilder - - - - - - com.android.ide.eclipse.adt.AndroidNature - org.eclipse.jdt.core.javanature - - diff --git a/Android/.settings/org.eclipse.jdt.core.prefs b/Android/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index f77b31c2d..000000000 --- a/Android/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.compliance=1.5 -org.eclipse.jdt.core.compiler.source=1.5 diff --git a/Android/AndroidManifest.xml b/Android/AndroidManifest.xml deleted file mode 100644 index 0a2cc8380..000000000 --- a/Android/AndroidManifest.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Android/assets/basedir/Plugins/README.txt b/Android/assets/basedir/Plugins/README.txt deleted file mode 100644 index 1c8259eda..000000000 --- a/Android/assets/basedir/Plugins/README.txt +++ /dev/null @@ -1,2 +0,0 @@ -Put all pre-packaged plugins in here such as Core. -The user will be able to install each plugin in here separately. \ No newline at end of file diff --git a/Android/assets/basedir/README.txt b/Android/assets/basedir/README.txt deleted file mode 100644 index 784d10fc7..000000000 --- a/Android/assets/basedir/README.txt +++ /dev/null @@ -1,10 +0,0 @@ -Put all pre-packaged settings/preferences and license files in here. -Such as: - -settings.example.ini -groups.example.ini -users.example.ini -webadmin.example.ini -Lua-LICENSE.txt -MersenneTwister-LICENSE.txt -etc.etc \ No newline at end of file diff --git a/Android/assets/basedir/webadmin/README.txt b/Android/assets/basedir/webadmin/README.txt deleted file mode 100644 index 96090fd33..000000000 --- a/Android/assets/basedir/webadmin/README.txt +++ /dev/null @@ -1 +0,0 @@ -Put pre-packaged webadmin template in here \ No newline at end of file diff --git a/Android/gen/com/mcserver/BuildConfig.java b/Android/gen/com/mcserver/BuildConfig.java deleted file mode 100644 index e40837927..000000000 --- a/Android/gen/com/mcserver/BuildConfig.java +++ /dev/null @@ -1,6 +0,0 @@ -/** Automatically generated file. DO NOT MODIFY */ -package com.mcserver; - -public final class BuildConfig { - public final static boolean DEBUG = true; -} \ No newline at end of file diff --git a/Android/gen/com/mcserver/R.java b/Android/gen/com/mcserver/R.java deleted file mode 100644 index cbb9e653a..000000000 --- a/Android/gen/com/mcserver/R.java +++ /dev/null @@ -1,39 +0,0 @@ -/* AUTO-GENERATED FILE. DO NOT MODIFY. - * - * This class was automatically generated by the - * aapt tool from the resource data it found. It - * should not be modified by hand. - */ - -package com.mcserver; - -public final class R { - public static final class attr { - } - public static final class drawable { - public static final int ic_launcher=0x7f020000; - } - public static final class id { - public static final int configure_server=0x7f050003; - public static final int ip_address=0x7f050005; - public static final int listView1=0x7f050006; - public static final int server_status_text=0x7f050004; - public static final int start_server=0x7f050002; - public static final int stop_server=0x7f050001; - public static final int textView2=0x7f050000; - } - public static final class layout { - public static final int list_item=0x7f030000; - public static final int main=0x7f030001; - } - public static final class string { - public static final int app_name=0x7f040001; - public static final int configure=0x7f040007; - public static final int hello=0x7f040000; - public static final int mcserver_is_not_running=0x7f040005; - public static final int mcserver_is_running=0x7f040004; - public static final int start=0x7f040002; - public static final int stop=0x7f040003; - public static final int your_ip=0x7f040006; - } -} diff --git a/Android/jni/Android.mk b/Android/jni/Android.mk deleted file mode 100644 index ce142d446..000000000 --- a/Android/jni/Android.mk +++ /dev/null @@ -1,44 +0,0 @@ -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) -LOCAL_MODULE := mcserver - - - -LOCAL_SRC_FILES := $(shell find ../lib/polarssl ../lib/lua ../lib/jsoncpp ../lib/zlib ../src ../lib/tolua++ ../lib/iniFile ../lib/expat ../lib/md5 ../lib/sqlite ../lib/luaexpat '(' -name '*.cpp' -o -name '*.c' ')') -LOCAL_SRC_FILES := $(filter-out %SquirrelFunctions.cpp %SquirrelBindings.cpp %cPlugin_Squirrel.cpp %cSquirrelCommandBinder.cpp %minigzip.c %lua.c %tolua.c %toluabind.c %LeakFinder.cpp %StackWalker.cpp %example.c,$(LOCAL_SRC_FILES)) -LOCAL_SRC_FILES := $(patsubst %.cpp,../%.cpp,$(LOCAL_SRC_FILES)) -LOCAL_SRC_FILES := $(patsubst %.c,../%.c,$(LOCAL_SRC_FILES)) -LOCAL_SRC_FILES += app-android.cpp ToJava.cpp - -LOCAL_CFLAGS := -DANDROID_NDK \ - -O3 \ - -funroll-loops \ - -mfloat-abi=softfp -mfpu=neon \ - -fexceptions \ - - -LOCAL_STATIC_LIBRARIES := cpufeatures - -LOCAL_C_INCLUDES := ../src \ - ../src/packets \ - ../src/items \ - ../src/blocks \ - ../lib/tolua++/src/lib \ - ../lib/lua/src \ - ../lib/zlib-1.2.7 \ - ../lib/iniFile \ - ../lib/tolua++/include \ - ../lib/jsoncpp/include \ - ../lib/jsoncpp/src/lib_json \ - ../lib/expat/ \ - ../lib/md5/ \ - ../lib/sqlite/ \ - ../lib/luaexpat/ \ - .. \ - - -LOCAL_LDLIBS := -ldl -llog - -include $(BUILD_SHARED_LIBRARY) -$(call import-module,cpufeatures) diff --git a/Android/jni/Application.mk b/Android/jni/Application.mk deleted file mode 100644 index e00c8b5e2..000000000 --- a/Android/jni/Application.mk +++ /dev/null @@ -1,7 +0,0 @@ -# Build both ARMv5TE and ARMv7-A machine code. -APP_MODULES := mcserver -# APP_ABI := armeabi armeabi-v7a -#APP_STL := stlport_static - -APP_STL := gnustl_static -APP_CPPFLAGS := -frtti \ No newline at end of file diff --git a/Android/jni/ToJava.cpp b/Android/jni/ToJava.cpp deleted file mode 100644 index 8db22dd1d..000000000 --- a/Android/jni/ToJava.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include "Globals.h" - -#include "ToJava.h" \ No newline at end of file diff --git a/Android/jni/ToJava.h b/Android/jni/ToJava.h deleted file mode 100644 index 11979c847..000000000 --- a/Android/jni/ToJava.h +++ /dev/null @@ -1,59 +0,0 @@ -#pragma once - -#include -#include -extern JNIEnv* g_CurrentJNIEnv; -extern JavaVM* g_JavaVM; -extern jobject g_JavaThread; -//extern jobject g_JavaActivity; - -//__android_log_vprint(ANDROID_LOG_ERROR,"MCServer", a_Format, argList); - -static void CallJavaFunction_Void_String( jobject a_Object, const std::string & a_FunctionName, const std::string & a_StringParam ) -{ - JNIEnv * oldEnv = g_CurrentJNIEnv; - int status = g_JavaVM->AttachCurrentThread(&g_CurrentJNIEnv, NULL); - __android_log_print(ANDROID_LOG_ERROR,"MCServer", "STATUS: %i old: %p new: %p", status, oldEnv, g_CurrentJNIEnv ); - jstring str = g_CurrentJNIEnv->NewStringUTF( a_StringParam.c_str() ); - - - //__android_log_print(ANDROID_LOG_ERROR,"MCServer", "JNIEnv: %i Object: %i", g_CurrentJNIEnv, a_Object ); - jclass cls = g_CurrentJNIEnv->GetObjectClass( a_Object ); - //__android_log_print(ANDROID_LOG_ERROR,"MCServer", "jclass: %i", cls ); - jmethodID mid = g_CurrentJNIEnv->GetMethodID( cls, a_FunctionName.c_str(), "(Ljava/lang/String;)V"); // void a_FunctionName( String ) - //__android_log_print(ANDROID_LOG_ERROR,"MCServer", "jmethodID: %i", mid ); - if (mid != 0) - { - - __android_log_print(ANDROID_LOG_ERROR,"MCServer", "Going to call right NOW! %s", a_FunctionName.c_str() ); - g_CurrentJNIEnv->CallVoidMethod( a_Object, mid, str ); - } - else - { - __android_log_print(ANDROID_LOG_ERROR,"MCServer", "It was 0, derp" ); - } - - if( oldEnv != g_CurrentJNIEnv ) - { - g_JavaVM->DetachCurrentThread(); - } -} - - -static void CallJavaFunction_Void_Void( jobject a_Object, const std::string & a_FunctionName ) -{ - //__android_log_print(ANDROID_LOG_ERROR,"MCServer", "JNIEnv: %i Object: %i", g_CurrentJNIEnv, a_Object ); - jclass cls = g_CurrentJNIEnv->GetObjectClass( a_Object ); - //__android_log_print(ANDROID_LOG_ERROR,"MCServer", "jclass: %i", cls ); - jmethodID mid = g_CurrentJNIEnv->GetMethodID( cls, a_FunctionName.c_str(), "()V"); // void a_FunctionName( String ) - //__android_log_print(ANDROID_LOG_ERROR,"MCServer", "jmethodID: %i", mid ); - if (mid != 0) - { - //__android_log_print(ANDROID_LOG_ERROR,"MCServer", "Going to call right NOW! %s", a_FunctionName.c_str() ); - g_CurrentJNIEnv->CallVoidMethod( a_Object, mid ); - } - else - { - __android_log_print(ANDROID_LOG_ERROR,"MCServer", "It was 0, derp" ); - } -} \ No newline at end of file diff --git a/Android/jni/app-android.cpp b/Android/jni/app-android.cpp deleted file mode 100644 index 386f1b90e..000000000 --- a/Android/jni/app-android.cpp +++ /dev/null @@ -1,130 +0,0 @@ -#include "Globals.h" - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "OSSupport/CriticalSection.h" -#include "OSSupport/File.h" -#include "ToJava.h" - -#include "Root.h" -#include "WebAdmin.h" - -#include - -#ifdef _WIN32 // For IntelliSense parsing -typedef void jobject; -typedef int jint; -typedef bool jboolean; -typedef void JavaVM; -typedef void JNIEnv; -#endif - -cCriticalSection g_CriticalSection; - -JNIEnv* g_CurrentJNIEnv = 0; -jobject g_JavaThread = 0; -JavaVM* g_JavaVM = 0; -//jobject g_JavaActivity = 0; - -cRoot * pRoot = NULL; - - -class cMainThread : - public cIsThread -{ -public: - cMainThread() : - cIsThread("cMainThread") - { - //Start(); - __android_log_print(ANDROID_LOG_ERROR,"MCServer", "%s", "cMainThread"); - } - - void Stop(void) - { - m_ShouldTerminate = true; - Wait(); - } - -protected: - - virtual void Execute(void) override - { - __android_log_print(ANDROID_LOG_ERROR,"MCServer", "%s", "Execute"); - pRoot = new cRoot(); - pRoot->Start(); - delete pRoot; - } - -} ; - -cMainThread * pMainThread = NULL; - -jint JNI_OnLoad(JavaVM* vm, void* reserved) -{ - //__android_log_print(ANDROID_LOG_ERROR,"MCServer", "%s", "JNI_OnLoad JNI_OnLoad JNI_OnLoad JNI_OnLoad"); - g_JavaVM = vm; - return JNI_VERSION_1_4; -} - -/* Called when program/activity is created */ -extern "C" void Java_com_mcserver_MCServerActivity_NativeOnCreate( JNIEnv* env, jobject thiz ) -{ - g_CriticalSection.Lock(); - g_CurrentJNIEnv = env; - g_JavaThread = thiz; - //__android_log_print(ANDROID_LOG_ERROR,"MCServer", "%s", "Logging from C++!"); - g_CriticalSection.Unlock(); - - cFile::CreateFolder("/sdcard/mcserver"); - - pRoot = new cRoot(); - pRoot->Start(); - delete pRoot; pRoot = NULL; -} - - - - - -extern "C" void Java_com_mcserver_MCServerActivity_NativeCleanUp( JNIEnv* env, jobject thiz ) -{ - g_CriticalSection.Lock(); - g_CurrentJNIEnv = env; - g_JavaThread = thiz; - g_CriticalSection.Unlock(); - - __android_log_print(ANDROID_LOG_ERROR,"MCServer", "pRoot: %p", pRoot); - if( pRoot != NULL ) - { - pRoot->QueueExecuteConsoleCommand("stop"); - } -} - - - - -extern "C" jboolean Java_com_mcserver_MCServerActivity_NativeIsServerRunning( JNIEnv* env, jobject thiz ) -{ - return pRoot != NULL; -} - - - - -extern "C" jint Java_com_mcserver_MCServerActivity_NativeGetWebAdminPort( JNIEnv* env, jobject thiz ) -{ - if( pRoot != NULL && pRoot->GetWebAdmin() != NULL ) - { - return atoi(pRoot->GetWebAdmin()->GetIPv4Ports().c_str()); - } - return 0; -} diff --git a/Android/proguard-project.txt b/Android/proguard-project.txt deleted file mode 100644 index f2fe1559a..000000000 --- a/Android/proguard-project.txt +++ /dev/null @@ -1,20 +0,0 @@ -# To enable ProGuard in your project, edit project.properties -# to define the proguard.config property as described in that file. -# -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in ${sdk.dir}/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the ProGuard -# include property in project.properties. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} diff --git a/Android/project.properties b/Android/project.properties deleted file mode 100644 index 7a6518b77..000000000 --- a/Android/project.properties +++ /dev/null @@ -1,14 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system edit -# "ant.properties", and override values to adapt the script to your -# project structure. -# -# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): -#proguard.config=${sdk.dir}\tools\proguard\proguard-android.txt:proguard-project.txt - -# Project target. -target=android-12 diff --git a/Android/res/drawable-hdpi/ic_launcher.png b/Android/res/drawable-hdpi/ic_launcher.png deleted file mode 100644 index d8a74a2d8..000000000 Binary files a/Android/res/drawable-hdpi/ic_launcher.png and /dev/null differ diff --git a/Android/res/drawable-ldpi/ic_launcher.png b/Android/res/drawable-ldpi/ic_launcher.png deleted file mode 100644 index 5fa7251f8..000000000 Binary files a/Android/res/drawable-ldpi/ic_launcher.png and /dev/null differ diff --git a/Android/res/drawable-mdpi/ic_launcher.png b/Android/res/drawable-mdpi/ic_launcher.png deleted file mode 100644 index 0e3af7c05..000000000 Binary files a/Android/res/drawable-mdpi/ic_launcher.png and /dev/null differ diff --git a/Android/res/drawable-xhdpi/ic_launcher.png b/Android/res/drawable-xhdpi/ic_launcher.png deleted file mode 100644 index 60b19df2d..000000000 Binary files a/Android/res/drawable-xhdpi/ic_launcher.png and /dev/null differ diff --git a/Android/res/layout/list_item.xml b/Android/res/layout/list_item.xml deleted file mode 100644 index e77da47db..000000000 --- a/Android/res/layout/list_item.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Android/res/layout/main.xml b/Android/res/layout/main.xml deleted file mode 100644 index 4ff238d80..000000000 --- a/Android/res/layout/main.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - -