summaryrefslogtreecommitdiff
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
parentf9e670402edf5d7911bcfcaf87cceb6373de81b0 (diff)
downloadakono-a3f0644b5cdcbd9e350cd3b6b4acfae513751394.tar.gz
akono-a3f0644b5cdcbd9e350cd3b6b4acfae513751394.tar.bz2
akono-a3f0644b5cdcbd9e350cd3b6b4acfae513751394.zip
Upgrade libraries and clean up build system
-rw-r--r--.gitignore1
-rw-r--r--.idea/gradle.xml5
-rw-r--r--.idea/misc.xml3
-rw-r--r--.idea/runConfigurations.xml12
-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
-rw-r--r--build.gradle.kts13
m---------deps/android-node-v80
-rw-r--r--gradle/wrapper/gradle-wrapper.properties2
14 files changed, 59 insertions, 116 deletions
diff --git a/.gitignore b/.gitignore
index 9a06e233..e7267712 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,4 @@
/local.properties
/deps/compiled/*
+/akono/.cxx
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 2db3c7d0..0ec966ca 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -1,10 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
+ <component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
+ <option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
+ <option name="gradleHome" value="$USER_HOME$/android/gradle/latest" />
+ <option name="gradleJvm" value="11" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
@@ -12,7 +16,6 @@
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
- <option name="testRunner" value="PLATFORM" />
</GradleProjectSettings>
</option>
</component>
diff --git a/.idea/misc.xml b/.idea/misc.xml
index dfd2c799..31622f1e 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
- <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="JDK" project-jdk-type="JavaSDK">
+ <component name="ExternalStorageConfigurationManager" enabled="true" />
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
deleted file mode 100644
index 7f68460d..00000000
--- a/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="RunConfigurationProducerService">
- <option name="ignoredProducers">
- <set>
- <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
- <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
- <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
- </set>
- </option>
- </component>
-</project> \ No newline at end of file
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)
- }
-}
diff --git a/build.gradle.kts b/build.gradle.kts
index 36b9f1f5..5d4acf07 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,22 +1,17 @@
-val kotlin_version by extra("1.3.71")
-
buildscript {
- var kotlin_version: String by extra
- kotlin_version = "1.3.71"
repositories {
google()
- jcenter()
+ mavenCentral()
}
dependencies {
- classpath("com.android.tools.build:gradle:3.6.2")
- classpath(kotlin("gradle-plugin", version = "1.3.71"))
+ classpath("com.android.tools.build:gradle:7.0.2")
+ classpath(kotlin("gradle-plugin", version = "1.5.31"))
}
}
allprojects {
repositories {
google()
- jcenter()
+ mavenCentral()
}
-
}
diff --git a/deps/android-node-v8 b/deps/android-node-v8
-Subproject acd0002000d7e71d399d87db97b3fb7fd175006
+Subproject 12fcb51fc6c001cf265968fee89016f5e977b53
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 674bdda0..c17bc40a 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip