diff options
author | Torsten Grote <t@grobox.de> | 2021-10-11 18:39:53 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2021-10-11 18:41:03 -0300 |
commit | a3f0644b5cdcbd9e350cd3b6b4acfae513751394 (patch) | |
tree | 30219f619c823fc672c470be4260ce7a61acd2f0 | |
parent | f9e670402edf5d7911bcfcaf87cceb6373de81b0 (diff) | |
download | akono-a3f0644b5cdcbd9e350cd3b6b4acfae513751394.tar.gz akono-a3f0644b5cdcbd9e350cd3b6b4acfae513751394.tar.bz2 akono-a3f0644b5cdcbd9e350cd3b6b4acfae513751394.zip |
Upgrade libraries and clean up build system
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | .idea/gradle.xml | 5 | ||||
-rw-r--r-- | .idea/misc.xml | 3 | ||||
-rw-r--r-- | .idea/runConfigurations.xml | 12 | ||||
-rw-r--r-- | akono/build.gradle.kts | 73 | ||||
-rw-r--r-- | akono/proguard-rules.pro | 2 | ||||
-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.txt | 15 | ||||
-rw-r--r-- | akono/src/main/cpp/akono-jni.cpp | 16 | ||||
-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.kt | 16 | ||||
-rw-r--r-- | build.gradle.kts | 13 | ||||
m--------- | deps/android-node-v8 | 0 | ||||
-rw-r--r-- | gradle/wrapper/gradle-wrapper.properties | 2 |
14 files changed, 59 insertions, 116 deletions
@@ -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 |