make android build work with gradle

This commit is contained in:
Jeff Becker 2018-11-06 09:27:25 -05:00
parent f1cca956f9
commit b501913f85
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05
5 changed files with 34 additions and 16 deletions

View File

@ -1,5 +1,5 @@
# Lowest version - debian stable is 3.7.2
cmake_minimum_required(VERSION 3.7.0)
# Lowest version - android ndk 3.6.0
cmake_minimum_required(VERSION 3.6.0)
set(PROJECT_NAME lokinet)
project(${PROJECT_NAME} C CXX ASM)
@ -13,7 +13,11 @@ if (NOT WIN32)
if(USE_CXX17)
set(CMAKE_CXX_STANDARD 17)
else()
set(CMAKE_CXX_STANDARD 11)
if(ANDROID)
set(CMAKE_CXX_STANDARD 17)
else()
set(CMAKE_CXX_STANDARD 11)
endif()
endif()
else()
set(CMAKE_CXX_STANDARD 17)

View File

@ -36,6 +36,15 @@ ANDROID_SDK ?= $(HOME)/Android/Sdk
ANDROID_ABI ?= armeabi-v7a
ANDROID_API_LEVEL ?= 18
ANDROID_DIR=$(REPO)/android
JNI_DIR=$(ANDROID_DIR)/jni
ANDROID_MK=$(JNI_DIR)/Android.mk
ANDROID_PROPS=$(ANDROID_DIR)/gradle.properties
ANDROID_LOCAL_PROPS=$(ANDROID_DIR)/local.properties
GRADLE ?= gradle
JAVA_HOME ?= /usr/lib/jvm/default-java
JSONRPC = OFF
CXX17 = ON
@ -139,7 +148,20 @@ android-configure: clean
android-build: android-configure
$(MAKE) -C '$(BUILD_ROOT)'
android: andorid-build
android-gradle-prepare:
rm -f $(ANDROID_PROPS)
rm -f $(ANDROID_LOCAL_PROPS)
echo "#auto generated don't modify kthnx" >> $(ANDROID_PROPS)
echo "lokinetCMake=$(REPO)/CMakeLists.txt" >> $(ANDROID_PROPS)
echo "org.gradle.parallel=true" >> $(ANDROID_PROPS)
echo "#auto generated don't modify kthnx" >> $(ANDROID_LOCAL_PROPS)
echo "sdk.dir=$(ANDROID_SDK)" >> $(ANDROID_LOCAL_PROPS)
echo "ndk.dir=$(ANDROID_NDK)" >> $(ANDROID_LOCAL_PROPS)
android-gradle: android-gradle-prepare
cd $(ANDROID_DIR) && JAVA_HOME=$(JAVA_HOME) $(GRADLE) assemble
android: android-gradle
abyss: debug
$(ABYSS_EXE)

View File

@ -28,12 +28,12 @@ android {
versionCode 1
versionName "0.3.1"
ndk {
abiFilters 'x86'
abiFilters 'armeabi'
}
externalNativeBuild {
cmake {
targets "lokinetandroid"
arguments "-DANDROID=ON"
arguments "-DANDROID=ON", "-DANDROID_STL=c++_static"
}
}
packagingOptions{

View File

@ -191,14 +191,6 @@ struct reverse_handler_iter_context
const struct dnsd_question_request *request;
};
#ifdef ANDROID
static int
stoi(const std::string &s)
{
return atoi(s.c_str());
}
#endif
bool
ReverseHandlerIter(struct llarp::service::Context::endpoint_iter *endpointCfg)
{

View File

@ -83,7 +83,7 @@ namespace llarp
return nullptr;
}
llarp::handlers::TunEndpoint *tunEndpoint =
dynamic_cast< llarp::handlers::TunEndpoint * >(endpointer);
static_cast< llarp::handlers::TunEndpoint * >(endpointer);
return tunEndpoint;
}
@ -164,7 +164,7 @@ namespace llarp
auto *uniqueEndpoint = &firstEndpoint->second;
llarp::service::Endpoint *endpointer = uniqueEndpoint->get();
llarp::handlers::TunEndpoint *tunEndpoint =
dynamic_cast< llarp::handlers::TunEndpoint * >(endpointer);
static_cast< llarp::handlers::TunEndpoint * >(endpointer);
if(!tunEndpoint)
{
llarp::LogError("No tunnel endpoint found");