/* * This file is part of GNU Taler * (C) 2020 Taler Systems S.A. * * GNU Taler is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 3, or (at your option) any later version. * * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with * GNU Taler; see the file COPYING. If not, see */ plugins { id 'org.jetbrains.kotlin.multiplatform' id 'org.jetbrains.kotlin.plugin.serialization' id 'com.android.library' } group 'net.taler' version '0.0.1' apply plugin: 'maven-publish' kotlin { explicitApi() android { repositories { google() maven { url "https://dl.bintray.com/terl/lazysodium-maven" } } compilations.all { kotlinOptions.jvmTarget = '1.8' } } js { browser { testTask { useKarma { useChromeHeadless() } } } nodejs { } } ios { compilations.main.cinterops { sodium { packageName 'org.libsodium' defFile project.file("src/nativeInterop/cinterop/sodium-static.def") } } binaries { framework { baseName = "TalerWallet" } } } linuxX64("linux") { compilations.main.cinterops { sodium { packageName 'org.libsodium' } } } sourceSets { def coroutines_version = "1.3.8-native-mt-1.4.0-rc" def ktor_version = "1.4.0" all { languageSettings { progressiveMode = true useExperimentalAnnotation('kotlin.ExperimentalStdlibApi') } } commonMain { dependencies { api project(path: ":common") implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version" implementation "io.ktor:ktor-client-core:$ktor_version" implementation "io.ktor:ktor-client-logging:$ktor_version" implementation "io.ktor:ktor-client-serialization:$ktor_version" } } commonTest { dependencies { implementation kotlin('test-common') implementation kotlin('test-annotations-common') implementation "io.ktor:ktor-client-mock:$ktor_version" } } androidMain { dependencies { implementation "io.ktor:ktor-client-okhttp:$ktor_version" // TODO Android // implementation("com.goterl.lazycode:lazysodium-android:4.2.0@aar") { implementation("com.goterl.lazycode:lazysodium-java:4.3.0") { exclude group: "org.slf4j" } implementation 'net.java.dev.jna:jna:5.6.0@aar' } } androidTest { dependencies { implementation kotlin('test-junit') implementation "org.slf4j:slf4j-simple:1.7.30" } } jsMain { dependencies { implementation "io.ktor:ktor-client-js:$ktor_version" implementation npm('tweetnacl', '1.0.3') implementation npm('ed2curve', '0.3.0') implementation npm('hash.js', '1.1.7') } } jsTest { dependencies { implementation kotlin('test-js') } } nativeMain { dependsOn commonMain dependencies { } } nativeTest { dependsOn commonTest dependencies { } } linuxMain { dependsOn nativeMain dependencies { implementation "io.ktor:ktor-client-curl:$ktor_version" } } linuxTest { dependsOn nativeTest } iosMain { dependsOn nativeMain dependencies { implementation "io.ktor:ktor-client-ios:$ktor_version" } } iosTest { dependsOn nativeTest } } } android { compileSdkVersion 29 //noinspection GradleDependency buildToolsVersion "29.0.2" defaultConfig { minSdkVersion 21 targetSdkVersion 29 versionCode 1 versionName "0.1" } sourceSets { main { manifest.srcFile 'src/androidMain/AndroidManifest.xml' } } }