summaryrefslogtreecommitdiff
path: root/akono
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2021-10-11 18:39:53 -0300
committerTorsten Grote <t@grobox.de>2021-10-11 18:41:03 -0300
commita3f0644b5cdcbd9e350cd3b6b4acfae513751394 (patch)
tree30219f619c823fc672c470be4260ce7a61acd2f0 /akono
parentf9e670402edf5d7911bcfcaf87cceb6373de81b0 (diff)
downloadakono-a3f0644b5cdcbd9e350cd3b6b4acfae513751394.tar.gz
akono-a3f0644b5cdcbd9e350cd3b6b4acfae513751394.tar.bz2
akono-a3f0644b5cdcbd9e350cd3b6b4acfae513751394.zip
Upgrade libraries and clean up build system
Diffstat (limited to 'akono')
-rw-r--r--akono/build.gradle.kts73
-rw-r--r--akono/proguard-rules.pro2
-rw-r--r--akono/src/androidTest/java/net/taler/akono/InstrumentedAkonoTests.kt (renamed from akono/src/androidTest/java/akono/InstrumentedAkonoTests.kt)11
-rw-r--r--akono/src/main/cpp/CMakeLists.txt15
-rw-r--r--akono/src/main/cpp/akono-jni.cpp16
-rw-r--r--akono/src/main/java/net/taler/akono/AkonoJni.kt (renamed from akono/src/main/java/akono/AkonoJni.kt)6
-rw-r--r--akono/src/test/java/akono/LibraryTest.kt16
7 files changed, 47 insertions, 92 deletions
diff --git a/akono/build.gradle.kts b/akono/build.gradle.kts
index 8b094f96..889ee799 100644
--- a/akono/build.gradle.kts
+++ b/akono/build.gradle.kts
@@ -1,85 +1,42 @@
-
plugins {
id("com.android.library")
kotlin("android")
- kotlin("android.extensions")
}
android {
- compileSdkVersion(29)
+ compileSdk = 31
defaultConfig {
- minSdkVersion(21)
- targetSdkVersion(29)
-
- versionCode = 1
- versionName = "1.0"
+ minSdk = 21
+ targetSdk = 31
+ testApplicationId = "net.taler.akono.test"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
- // Specifies the application ID for the test APK.
- testApplicationId = "akono.test"
+ testInstrumentationRunnerArguments += mapOf(
+ "disableAnalytics" to "true"
+ )
ndk {
- // Tells Gradle to build outputs for the following ABIs and package
- // them into your APK.
- abiFilters("armeabi-v7a")
- // FIXME: uncomment this arch after being able to build it
- // abiFilters("arm64-v8a")
- // abiFilters("x86")
- // abiFilters("x86_64")
+ abiFilters.add("armeabi-v7a")
+ abiFilters.add("arm64-v8a")
+ abiFilters.add("x86")
+ abiFilters.add("x86_64")
}
-
externalNativeBuild {
cmake.arguments("-DANDROID_STL=c++_shared")
}
consumerProguardFiles("proguard-rules.pro")
}
- useLibrary("android.test.runner")
- useLibrary("android.test.base")
- useLibrary("android.test.mock")
externalNativeBuild {
cmake {
- setPath(file("src/main/cpp/CMakeLists.txt"))
- }
- }
-
- sourceSets {
- named("main") {
- jniLibs.srcDirs("../deps/compiled")
+ path = (file("src/main/cpp/CMakeLists.txt"))
}
}
}
-val kotlin_version: String by rootProject.extra
-
-repositories {
- jcenter()
-}
-
dependencies {
- //implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.20")
- //implementation(kotlin("stdlib"))
-
- // Use the Kotlin test library.
- testImplementation("org.jetbrains.kotlin:kotlin-test:$kotlin_version")
-
- // Use the Kotlin JUnit integration.
- testImplementation("org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version")
-
- androidTestImplementation("androidx.test:core:1.2.0")
- androidTestImplementation("androidx.test:runner:1.2.0")
- androidTestImplementation("androidx.test:rules:1.2.0")
-
- // Assertions
- androidTestImplementation("androidx.test.ext:junit:1.1.1")
- androidTestImplementation("androidx.test.ext:truth:1.2.0")
- androidTestImplementation("com.google.truth:truth:0.44")
-
- // Use the Kotlin test library.
- androidTestImplementation("org.jetbrains.kotlin:kotlin-test:$kotlin_version")
-
- // Use the Kotlin JUnit integration.
- androidTestImplementation("org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version")
- implementation(kotlin("stdlib-jdk7", kotlin_version))
+ androidTestImplementation("androidx.test:runner:1.4.0")
+ androidTestImplementation("androidx.test:rules:1.4.0")
+ androidTestImplementation("androidx.test.ext:junit:1.1.3")
}
diff --git a/akono/proguard-rules.pro b/akono/proguard-rules.pro
index d6488930..66231e47 100644
--- a/akono/proguard-rules.pro
+++ b/akono/proguard-rules.pro
@@ -1,2 +1,2 @@
# Keep names because we use them from the JNI.
--keepnames class akono.AkonoJni { *; } \ No newline at end of file
+-keepnames class net.taler.akono.AkonoJni { *; } \ No newline at end of file
diff --git a/akono/src/androidTest/java/akono/InstrumentedAkonoTests.kt b/akono/src/androidTest/java/net/taler/akono/InstrumentedAkonoTests.kt
index 0fbcb6f9..f7dbdc98 100644
--- a/akono/src/androidTest/java/akono/InstrumentedAkonoTests.kt
+++ b/akono/src/androidTest/java/net/taler/akono/InstrumentedAkonoTests.kt
@@ -1,12 +1,11 @@
-package akono.test;
+package net.taler.akono
+import android.util.Log
import androidx.test.ext.junit.runners.AndroidJUnit4
-import org.junit.runner.RunWith
-import org.junit.Test
import androidx.test.filters.LargeTest
import org.junit.Assert.assertEquals
-import akono.AkonoJni
-import android.util.Log
+import org.junit.Test
+import org.junit.runner.RunWith
import java.util.concurrent.LinkedBlockingDeque
@@ -27,7 +26,7 @@ class SyncMessageHandler : AkonoJni.MessageHandler {
class InstrumentedAkonoTestOne {
@Test
fun myJsTest() {
- val ajni: AkonoJni = AkonoJni()
+ val ajni = AkonoJni()
ajni.putModuleCode("a", "function foo() {}")
assertEquals("2", ajni.evalSimpleJs("1+1"))
assertEquals("36", ajni.evalSimpleJs("6*6"))
diff --git a/akono/src/main/cpp/CMakeLists.txt b/akono/src/main/cpp/CMakeLists.txt
index 10d6396f..0ee886de 100644
--- a/akono/src/main/cpp/CMakeLists.txt
+++ b/akono/src/main/cpp/CMakeLists.txt
@@ -27,15 +27,30 @@ add_library(v8 STATIC IMPORTED)
set_target_properties(v8 PROPERTIES IMPORTED_LOCATION
${deps_dir}/compiled/${ANDROID_ABI}/libv8.cr.so)
+add_library(v8_base STATIC IMPORTED)
+set_target_properties(v8_base PROPERTIES IMPORTED_LOCATION
+ ${deps_dir}/compiled/${ANDROID_ABI}/libv8_libbase.cr.so)
+
add_library(v8_platform STATIC IMPORTED)
set_target_properties(v8_platform PROPERTIES IMPORTED_LOCATION
${deps_dir}/compiled/${ANDROID_ABI}/libv8_libplatform.cr.so)
+add_library(icui18n STATIC IMPORTED)
+set_target_properties(icui18n PROPERTIES IMPORTED_LOCATION
+ ${deps_dir}/compiled/${ANDROID_ABI}/libicui18n.cr.so)
+
+add_library(icuuc STATIC IMPORTED)
+set_target_properties(icuuc PROPERTIES IMPORTED_LOCATION
+ ${deps_dir}/compiled/${ANDROID_ABI}/libicuuc.cr.so)
+
# Include libraries needed for hello-jni lib
target_link_libraries(akono-jni
v8
+ v8_base
v8_platform
node
+ icui18n
+ icuuc
android
log)
diff --git a/akono/src/main/cpp/akono-jni.cpp b/akono/src/main/cpp/akono-jni.cpp
index bbea76e6..0f47622c 100644
--- a/akono/src/main/cpp/akono-jni.cpp
+++ b/akono/src/main/cpp/akono-jni.cpp
@@ -357,7 +357,7 @@ static void sendMessageCallback(const v8::FunctionCallbackInfo<v8::Value> &args)
return;
}
- jclass clazz = env->FindClass("akono/AkonoJni");
+ jclass clazz = env->FindClass("net.taler.akono/AkonoJni");
if (clazz == nullptr) {
mylog("FATAL: class not found");
@@ -401,27 +401,27 @@ static void getModuleCode(const v8::FunctionCallbackInfo<v8::Value> &args) {
}
extern "C" JNIEXPORT jobject JNICALL
-Java_akono_AkonoJni_initNative(JNIEnv *env, jobject thiz) {
+Java_net_taler_akono_AkonoJni_initNative(JNIEnv *env, jobject thiz) {
NativeAkonoInstance *myInstance = new NativeAkonoInstance();
return env->NewDirectByteBuffer(myInstance, 0);
}
extern "C" JNIEXPORT void JNICALL
-Java_akono_AkonoJni_destroyNative(JNIEnv *env, jobject thiz, jobject buf) {
+Java_net_taler_akono_AkonoJni_destroyNative(JNIEnv *env, jobject thiz, jobject buf) {
NativeAkonoInstance *myInstance = (NativeAkonoInstance *) env->GetDirectBufferAddress(buf);
delete myInstance;
}
extern "C" JNIEXPORT jstring JNICALL
-Java_akono_AkonoJni_evalJs(JNIEnv *env, jobject thiz, jstring sourceStr, jobject buf) {
+Java_net_taler_akono_AkonoJni_evalJs(JNIEnv *env, jobject thiz, jstring sourceStr, jobject buf) {
NativeAkonoInstance *myInstance = (NativeAkonoInstance *) env->GetDirectBufferAddress(buf);
return myInstance->evalJs(env, sourceStr);
}
extern "C" JNIEXPORT void JNICALL
-Java_akono_AkonoJni_putModuleCodeNative(JNIEnv *env, jobject thiz, jstring modName, jstring modCode) {
+Java_net_taler_akono_AkonoJni_putModuleCodeNative(JNIEnv *env, jobject thiz, jstring modName, jstring modCode) {
mylog("in putModuleCodeNative");
JStringValue cModName(env, modName);
JStringValue cModCode(env, modCode);
@@ -432,13 +432,13 @@ Java_akono_AkonoJni_putModuleCodeNative(JNIEnv *env, jobject thiz, jstring modNa
extern "C" JNIEXPORT void JNICALL
-Java_akono_AkonoJni_notifyNative(JNIEnv *env, jobject thiz, jobject buf) {
+Java_net_taler_akono_AkonoJni_notifyNative(JNIEnv *env, jobject thiz, jobject buf) {
NativeAkonoInstance *myInstance = (NativeAkonoInstance *) env->GetDirectBufferAddress(buf);
uv_async_send(&myInstance->async_notify);
}
extern "C" JNIEXPORT void JNICALL
-Java_akono_AkonoJni_runNode(JNIEnv *env, jobject thiz, jobject buf) {
+Java_net_taler_akono_AkonoJni_runNode(JNIEnv *env, jobject thiz, jobject buf) {
NativeAkonoInstance *myInstance = (NativeAkonoInstance *) env->GetDirectBufferAddress(buf);
myInstance->currentJniEnv = env;
myInstance->currentJniThiz = thiz;
@@ -446,7 +446,7 @@ Java_akono_AkonoJni_runNode(JNIEnv *env, jobject thiz, jobject buf) {
}
extern "C" JNIEXPORT void JNICALL
-Java_akono_AkonoJni_makeCallbackNative(JNIEnv *env, jobject thiz, jstring sourceStr, jobject buf) {
+Java_net_taler_akono_AkonoJni_makeCallbackNative(JNIEnv *env, jobject thiz, jstring sourceStr, jobject buf) {
JStringValue jsv(env, sourceStr);
NativeAkonoInstance *myInstance = (NativeAkonoInstance *) env->GetDirectBufferAddress(buf);
myInstance->currentJniEnv = env;
diff --git a/akono/src/main/java/akono/AkonoJni.kt b/akono/src/main/java/net/taler/akono/AkonoJni.kt
index 85ceefa8..0824e268 100644
--- a/akono/src/main/java/akono/AkonoJni.kt
+++ b/akono/src/main/java/net/taler/akono/AkonoJni.kt
@@ -1,4 +1,4 @@
-package akono
+package net.taler.akono
import android.util.Base64
import android.util.Log
@@ -10,7 +10,7 @@ import kotlin.concurrent.thread
typealias AkonoNativePointer = ByteBuffer
-private val TAG = "AkonoJni"
+private const val TAG = "AkonoJni"
class AkonoJni(vararg nodeArgv: String) {
private var messageHandler: MessageHandler? = null
@@ -92,7 +92,7 @@ class AkonoJni(vararg nodeArgv: String) {
evalNodeCode(source)
}
- fun waitStopped(): Unit {
+ fun waitStopped() {
Log.i(TAG, "waiting for stop")
scheduleNodeThread {
stopped = true
diff --git a/akono/src/test/java/akono/LibraryTest.kt b/akono/src/test/java/akono/LibraryTest.kt
deleted file mode 100644
index 1a16e7e6..00000000
--- a/akono/src/test/java/akono/LibraryTest.kt
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * This Kotlin source file was generated by the Gradle 'init' task.
- */
-package akono
-
-import kotlin.test.Test
-import kotlin.test.assertTrue
-import kotlin.test.assertEquals
-
-import akono.AkonoJni
-
-class LibraryTest {
- @Test fun testSomeLibraryMethod() {
- assertTrue(true)
- }
-}