mirror of
				https://github.com/PurpleI2P/i2pd.git
				synced 2025-11-04 08:30:46 +00:00 
			
		
		
		
	build android app with llvm
This commit is contained in:
		
							parent
							
								
									6193b06708
								
							
						
					
					
						commit
						7cd17f8e1f
					
				
					 5 changed files with 33 additions and 42 deletions
				
			
		| 
						 | 
				
			
			@ -1,13 +1,7 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
    package="org.purplei2p.i2pd"
 | 
			
		||||
    android:installLocation="auto"
 | 
			
		||||
    android:versionCode="1"
 | 
			
		||||
    android:versionName="2.22.0">
 | 
			
		||||
 | 
			
		||||
    <uses-sdk
 | 
			
		||||
        android:minSdkVersion="14"
 | 
			
		||||
        android:targetSdkVersion="28" />
 | 
			
		||||
    android:installLocation="auto">
 | 
			
		||||
 | 
			
		||||
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 | 
			
		||||
    <uses-permission android:name="android.permission.INTERNET" /> <!-- normal perm, per https://developer.android.com/guide/topics/permissions/normal-permissions.html -->
 | 
			
		||||
| 
						 | 
				
			
			@ -15,6 +9,7 @@
 | 
			
		|||
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 | 
			
		||||
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- normal perm -->
 | 
			
		||||
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <!-- required in API 26+ -->
 | 
			
		||||
 | 
			
		||||
    <application
 | 
			
		||||
        android:allowBackup="true"
 | 
			
		||||
        android:icon="@drawable/icon"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,43 +25,43 @@ include $(BUILD_SHARED_LIBRARY)
 | 
			
		|||
LOCAL_PATH := $(call my-dir)
 | 
			
		||||
include $(CLEAR_VARS)
 | 
			
		||||
LOCAL_MODULE := boost_system
 | 
			
		||||
LOCAL_SRC_FILES := $(BOOST_PATH)/boost_1_64_0/$(TARGET_ARCH_ABI)/lib/libboost_system.a
 | 
			
		||||
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost_1_64_0/include
 | 
			
		||||
LOCAL_SRC_FILES := $(BOOST_PATH)/boost_1_68_0-clang/$(TARGET_ARCH_ABI)/lib/libboost_system.a
 | 
			
		||||
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost_1_68_0-clang/include
 | 
			
		||||
include $(PREBUILT_STATIC_LIBRARY)
 | 
			
		||||
 | 
			
		||||
LOCAL_PATH := $(call my-dir)
 | 
			
		||||
include $(CLEAR_VARS)
 | 
			
		||||
LOCAL_MODULE := boost_date_time
 | 
			
		||||
LOCAL_SRC_FILES := $(BOOST_PATH)/boost_1_64_0/$(TARGET_ARCH_ABI)/lib/libboost_date_time.a
 | 
			
		||||
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost_1_64_0/include
 | 
			
		||||
LOCAL_SRC_FILES := $(BOOST_PATH)/boost_1_68_0-clang/$(TARGET_ARCH_ABI)/lib/libboost_date_time.a
 | 
			
		||||
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost_1_68_0-clang/include
 | 
			
		||||
include $(PREBUILT_STATIC_LIBRARY)
 | 
			
		||||
 | 
			
		||||
LOCAL_PATH := $(call my-dir)
 | 
			
		||||
include $(CLEAR_VARS)
 | 
			
		||||
LOCAL_MODULE := boost_filesystem
 | 
			
		||||
LOCAL_SRC_FILES := $(BOOST_PATH)/boost_1_64_0/$(TARGET_ARCH_ABI)/lib/libboost_filesystem.a
 | 
			
		||||
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost_1_64_0/include
 | 
			
		||||
LOCAL_SRC_FILES := $(BOOST_PATH)/boost_1_68_0-clang/$(TARGET_ARCH_ABI)/lib/libboost_filesystem.a
 | 
			
		||||
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost_1_68_0-clang/include
 | 
			
		||||
include $(PREBUILT_STATIC_LIBRARY)
 | 
			
		||||
 | 
			
		||||
LOCAL_PATH := $(call my-dir)
 | 
			
		||||
include $(CLEAR_VARS)
 | 
			
		||||
LOCAL_MODULE := boost_program_options
 | 
			
		||||
LOCAL_SRC_FILES := $(BOOST_PATH)/boost_1_64_0/$(TARGET_ARCH_ABI)/lib/libboost_program_options.a
 | 
			
		||||
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost_1_64_0/include
 | 
			
		||||
LOCAL_SRC_FILES := $(BOOST_PATH)/boost_1_68_0-clang/$(TARGET_ARCH_ABI)/lib/libboost_program_options.a
 | 
			
		||||
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost_1_68_0-clang/include
 | 
			
		||||
include $(PREBUILT_STATIC_LIBRARY)
 | 
			
		||||
 | 
			
		||||
LOCAL_PATH := $(call my-dir)
 | 
			
		||||
include $(CLEAR_VARS)
 | 
			
		||||
LOCAL_MODULE := crypto
 | 
			
		||||
LOCAL_SRC_FILES := $(OPENSSL_PATH)/openssl-1.1.1/$(TARGET_ARCH_ABI)/lib/libcrypto.a
 | 
			
		||||
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/openssl-1.1.1/include
 | 
			
		||||
LOCAL_SRC_FILES := $(OPENSSL_PATH)/openssl-1.1.1a-clang/$(TARGET_ARCH_ABI)/lib/libcrypto.a
 | 
			
		||||
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/openssl-1.1.1a-clang/include
 | 
			
		||||
include $(PREBUILT_STATIC_LIBRARY)
 | 
			
		||||
 | 
			
		||||
LOCAL_PATH := $(call my-dir)
 | 
			
		||||
include $(CLEAR_VARS)
 | 
			
		||||
LOCAL_MODULE := ssl
 | 
			
		||||
LOCAL_SRC_FILES := $(OPENSSL_PATH)/openssl-1.1.1/$(TARGET_ARCH_ABI)/lib/libssl.a
 | 
			
		||||
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/openssl-1.1.1/include
 | 
			
		||||
LOCAL_SRC_FILES := $(OPENSSL_PATH)/openssl-1.1.1a-clang/$(TARGET_ARCH_ABI)/lib/libssl.a
 | 
			
		||||
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/openssl-1.1.1a-clang/include
 | 
			
		||||
LOCAL_STATIC_LIBRARIES := crypto
 | 
			
		||||
include $(PREBUILT_STATIC_LIBRARY)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,27 +1,21 @@
 | 
			
		|||
#APP_ABI := all
 | 
			
		||||
APP_ABI := armeabi-v7a x86
 | 
			
		||||
#APP_ABI := x86
 | 
			
		||||
#APP_ABI := x86_64
 | 
			
		||||
#APP_ABI := armeabi-v7a
 | 
			
		||||
#can be android-3 but will fail for x86 since arch-x86 is not present at ndkroot/platforms/android-3/ . libz is taken from there.
 | 
			
		||||
APP_PLATFORM := android-14
 | 
			
		||||
 | 
			
		||||
# http://stackoverflow.com/a/21386866/529442 http://stackoverflow.com/a/15616255/529442 to enable c++11 support in Eclipse
 | 
			
		||||
NDK_TOOLCHAIN_VERSION := 4.9
 | 
			
		||||
# APP_STL := stlport_shared  --> does not seem to contain C++11 features
 | 
			
		||||
APP_STL := gnustl_shared
 | 
			
		||||
# ABI arm64-v8a and x86_64 supported only from platform-21
 | 
			
		||||
#APP_ABI := arm64-v8a x86_64
 | 
			
		||||
#APP_PLATFORM := android-21
 | 
			
		||||
 | 
			
		||||
NDK_TOOLCHAIN_VERSION := clang
 | 
			
		||||
APP_STL := c++_shared
 | 
			
		||||
 | 
			
		||||
# Enable c++11 extensions in source code
 | 
			
		||||
APP_CPPFLAGS += -std=c++11
 | 
			
		||||
APP_CPPFLAGS += -std=c++11 -fexceptions -frtti
 | 
			
		||||
 | 
			
		||||
APP_CPPFLAGS += -DANDROID -D__ANDROID__ -DUSE_UPNP
 | 
			
		||||
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
 | 
			
		||||
APP_CPPFLAGS += -DANDROID_ARM7A
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Forcing debug optimization. Use `ndk-build NDK_DEBUG=1` instead.
 | 
			
		||||
#APP_OPTIM  := debug
 | 
			
		||||
 | 
			
		||||
# git clone https://github.com/PurpleI2P/Boost-for-Android-Prebuilt.git
 | 
			
		||||
# git clone https://github.com/PurpleI2P/OpenSSL-for-Android-Prebuilt.git
 | 
			
		||||
# git clone https://github.com/PurpleI2P/MiniUPnP-for-Android-Prebuilt.git
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,7 +17,7 @@ public class I2PD_JNI {
 | 
			
		|||
	public static native void onNetworkStateChanged(boolean isConnected);
 | 
			
		||||
 | 
			
		||||
	public static void loadLibraries() {
 | 
			
		||||
    	System.loadLibrary("gnustl_shared");
 | 
			
		||||
    	System.loadLibrary("c++_shared");
 | 
			
		||||
        System.loadLibrary("i2pd");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue