From 8815105bf2462787885214a12af927d484226f21 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 30 Jul 2020 16:40:23 -0300 Subject: Split out common code into multiplatform Kotlin library --- taler-kotlin-common/build.gradle | 130 +++++++++++++++++++++------------------ 1 file changed, 70 insertions(+), 60 deletions(-) (limited to 'taler-kotlin-common/build.gradle') diff --git a/taler-kotlin-common/build.gradle b/taler-kotlin-common/build.gradle index dd083b7..129881d 100644 --- a/taler-kotlin-common/build.gradle +++ b/taler-kotlin-common/build.gradle @@ -1,72 +1,82 @@ -/* - * 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 'com.android.library' - id 'kotlin-android' - id 'kotlin-android-extensions' + id 'org.jetbrains.kotlin.multiplatform' id 'kotlinx-serialization' } -android { - compileSdkVersion 29 - //noinspection GradleDependency - buildToolsVersion "$build_tools_version" +group 'net.taler' +version '0.0.1' - defaultConfig { - minSdkVersion 24 - targetSdkVersion 29 - versionCode 1 - versionName "0.1" +apply plugin: 'maven-publish' - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles 'consumer-rules.pro' +kotlin { + jvm() + // This is for iPhone simulator + // Switch here to iosArm64 (or iosArm32) to build library for iPhone device + iosX64("ios") { + binaries { + framework() + } } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + linuxX64("linux") + js { + browser { + } + nodejs { + } + } + sourceSets { + def serialization_version = "0.20.0" + commonMain { + dependencies { + implementation kotlin('stdlib-common') + implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:$serialization_version" + } + } + commonTest { + dependencies { + implementation kotlin('test-common') + implementation kotlin('test-annotations-common') + } + } + jvmMain { + dependencies { + implementation kotlin('stdlib-jdk8') + implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serialization_version" + } + } + jvmTest { + dependencies { + implementation kotlin('test') + implementation kotlin('test-junit') + } + } + jsMain { + dependencies { + implementation kotlin('stdlib-js') + implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-js:$serialization_version" + } + } + jsTest { + dependencies { + implementation kotlin('test-js') + } + } + nativeMain { + dependsOn commonMain + dependencies { + implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:$serialization_version" + } + } + nativeTest { + dependsOn commonTest + } + configure([targets.linux, targets.ios]) { + compilations.main.source(sourceSets.nativeMain) + compilations.test.source(sourceSets.nativeTest) } } - } -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'androidx.core:core-ktx:1.3.0' - - // Navigation - implementation "androidx.navigation:navigation-ui-ktx:$nav_version" - implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" - - // ViewModel and LiveData - def lifecycle_version = "2.2.0" - implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" - - // QR codes - implementation 'com.google.zxing:core:3.4.0' // needs minSdkVersion 24+ - - // JSON parsing and serialization - api "org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.20.0" - implementation "com.fasterxml.jackson.module:jackson-module-kotlin:2.10.2" - - lintChecks 'com.github.thirdegg:lint-rules:0.0.4-alpha' - - testImplementation 'junit:junit:4.13' - testImplementation 'org.json:json:20190722' +configurations { + compileClasspath } -- cgit v1.2.3