From a496eae3e2a01428ff92bf93558ecc534c64820a Mon Sep 17 00:00:00 2001 From: Anton Shestak Date: Fri, 2 Jul 2021 14:09:09 +0700 Subject: [PATCH 1/3] #9 update to kotlin 1.5.20 and gradle 0.7.2 used convention-plugin --- .github/workflows/compilation-check.yml | 10 +++- .github/workflows/publish.yml | 6 +- README.md | 8 +-- build.gradle | 20 +++++++ buildSrc/build.gradle.kts | 19 ------ buildSrc/src/main/kotlin/Deps.kt | 58 ------------------- .../kotlin/android-base-convention.gradle.kts | 10 ---- .../android-library-convention.gradle.kts | 4 -- .../kotlin/mpp-library-convention.gradle.kts | 5 -- gradle/libs.versions.toml | 31 ++++++++++ gradle/wrapper/gradle-wrapper.properties | 2 +- javascript-build-logic/build.gradle.kts | 17 ++++++ .../kotlin/android-app-convention.gradle.kts | 11 +++- .../kotlin/android-base-convention.gradle.kts | 14 +++++ .../android-library-convention.gradle.kts | 13 +++++ .../android-publication-convention.gradle.kts | 15 +++++ .../main/kotlin/detekt-convention.gradle.kts | 15 +++++ .../kotlin/javadoc-stub-convention.gradle.kts | 16 +++++ ...ultiplatform-library-convention.gradle.kts | 31 ++++++++++ .../kotlin/publication-convention.gradle.kts | 36 +++++------- javascript/build.gradle.kts | 57 ++++-------------- sample/android-app/build.gradle.kts | 8 +-- sample/build.gradle.kts | 12 ---- sample/mpp-library/build.gradle.kts | 19 ++++-- settings.gradle.kts | 13 ++--- 25 files changed, 243 insertions(+), 207 deletions(-) create mode 100644 build.gradle delete mode 100644 buildSrc/build.gradle.kts delete mode 100644 buildSrc/src/main/kotlin/Deps.kt delete mode 100644 buildSrc/src/main/kotlin/android-base-convention.gradle.kts delete mode 100644 buildSrc/src/main/kotlin/android-library-convention.gradle.kts delete mode 100644 buildSrc/src/main/kotlin/mpp-library-convention.gradle.kts create mode 100644 gradle/libs.versions.toml create mode 100644 javascript-build-logic/build.gradle.kts rename {buildSrc => javascript-build-logic}/src/main/kotlin/android-app-convention.gradle.kts (67%) create mode 100644 javascript-build-logic/src/main/kotlin/android-base-convention.gradle.kts create mode 100644 javascript-build-logic/src/main/kotlin/android-library-convention.gradle.kts create mode 100644 javascript-build-logic/src/main/kotlin/android-publication-convention.gradle.kts create mode 100644 javascript-build-logic/src/main/kotlin/detekt-convention.gradle.kts create mode 100644 javascript-build-logic/src/main/kotlin/javadoc-stub-convention.gradle.kts create mode 100644 javascript-build-logic/src/main/kotlin/multiplatform-library-convention.gradle.kts rename {buildSrc => javascript-build-logic}/src/main/kotlin/publication-convention.gradle.kts (73%) delete mode 100644 sample/build.gradle.kts diff --git a/.github/workflows/compilation-check.yml b/.github/workflows/compilation-check.yml index c7aa9bc..950b326 100644 --- a/.github/workflows/compilation-check.yml +++ b/.github/workflows/compilation-check.yml @@ -12,9 +12,13 @@ jobs: steps: - uses: actions/checkout@v1 - - name: Set up JDK 1.8 + - name: Set up JDK 11 uses: actions/setup-java@v1 with: - java-version: 1.8 + java-version: 11 - name: Build and test - run: ./gradlew build publishToMavenLocal + run: ./gradlew build publishToMavenLocal syncMultiPlatformLibraryDebugFrameworkIosX64 + - name: Install pods with kotlin + run: cd sample/ios-app && pod install + - name: build ios sample + run: cd sample/ios-app && xcodebuild -scheme TestProj -workspace TestProj.xcworkspace -configuration Debug -sdk iphonesimulator -arch x86_64 build CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO | xcpretty diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index dbe4035..219f43b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -21,10 +21,10 @@ jobs: steps: - uses: actions/checkout@v1 - - name: Set up JDK 1.8 + - name: Set up JDK 11 uses: actions/setup-java@v1 with: - java-version: 1.8 + java-version: 11 - name: Publish library run: ./gradlew publish release: @@ -40,6 +40,6 @@ jobs: with: commitish: ${{ github.ref }} tag_name: release/${{ github.event.inputs.version }} - release_name: Release ${{ github.event.inputs.version }} + release_name: ${{ github.event.inputs.version }} body: "Will be filled later" draft: true \ No newline at end of file diff --git a/README.md b/README.md index 51c46aa..5f18828 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![GitHub license](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](http://www.apache.org/licenses/LICENSE-2.0) [![Download](https://img.shields.io/maven-central/v/dev.icerock.moko/javascript) ](https://repo1.maven.org/maven2/dev/icerock/moko/javascript/) ![kotlin-version](https://img.shields.io/badge/kotlin-1.4.32-orange) +[![GitHub license](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](http://www.apache.org/licenses/LICENSE-2.0) [![Download](https://img.shields.io/maven-central/v/dev.icerock.moko/javascript) ](https://repo1.maven.org/maven2/dev/icerock/moko/javascript) ![kotlin-version](https://kotlin-version.aws.icerock.dev/kotlin-version?group=dev.icerock.moko&name=javascript) # Mobile Kotlin javascript This is a Kotlin MultiPlatform library that allows you to run JavaScript code from common Kotlin code @@ -22,10 +22,6 @@ This is a Kotlin MultiPlatform library that allows you to run JavaScript code fr - Android API 16+ - iOS version 9.0+ -## Versions -- kotlin 1.4.32 - - 0.1.0 - ## Installation root build.gradle ```groovy @@ -39,7 +35,7 @@ allprojects { project build.gradle ```groovy dependencies { - commonMainApi("dev.icerock.moko:javascript:0.1.0") + commonMainApi("dev.icerock.moko:javascript:0.2.0") } ``` diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..32a15eb --- /dev/null +++ b/build.gradle @@ -0,0 +1,20 @@ +/* + * Copyright 2019 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. + */ + +buildscript { + repositories { + mavenCentral() + google() + } + dependencies { + classpath(":javascript-build-logic") + } +} + +allprojects { + plugins.withId("org.gradle.maven-publish") { + group = "dev.icerock.moko" + version = libs.versions.mokoJavascriptVersion.get() + } +} \ No newline at end of file diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts deleted file mode 100644 index d5de8bd..0000000 --- a/buildSrc/build.gradle.kts +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2021 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. - */ - -plugins { - `kotlin-dsl` -} - -repositories { - google() - mavenCentral() - jcenter() -} - -dependencies { - implementation("dev.icerock:mobile-multiplatform:0.10.0") - implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32") - implementation("com.android.tools.build:gradle:4.1.2") -} diff --git a/buildSrc/src/main/kotlin/Deps.kt b/buildSrc/src/main/kotlin/Deps.kt deleted file mode 100644 index d0d8bbf..0000000 --- a/buildSrc/src/main/kotlin/Deps.kt +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2021 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. - */ - -object Deps { - private const val kotlinTestVersion = "1.4.32" - - private const val androidAppCompatVersion = "1.1.0" - private const val materialDesignVersion = "1.0.0" - private const val androidLifecycleVersion = "2.1.0" - private const val androidCoreTestingVersion = "1.3.0" - private const val testJUnitExtVersion = "1.1.2" - private const val quickjsVersion = "0.9.0" - - private const val coroutinesVersion = "1.4.2" - private const val kotlinxSerializationVersion = "1.1.0" - private const val mokoTestVersion = "0.3.0" - - const val mokoJavascriptVersion = "0.1.0" - - object Android { - const val compileSdk = 30 - const val targetSdk = 30 - const val minSdk = 18 - } - - object Libs { - object Android { - const val appCompat = "androidx.appcompat:appcompat:$androidAppCompatVersion" - const val material = "com.google.android.material:material:$materialDesignVersion" - const val lifecycle = "androidx.lifecycle:lifecycle-extensions:$androidLifecycleVersion" - - const val kotlinTestJUnit = "org.jetbrains.kotlin:kotlin-test-junit:$kotlinTestVersion" - const val testRunner = "androidx.test:runner:$androidCoreTestingVersion" - const val testRules = "androidx.test:rules:$androidCoreTestingVersion" - const val testJUnitExt = "androidx.test.ext:junit:$testJUnitExtVersion" - const val testJUnitExtKtx = "androidx.test.ext:junit-ktx:$testJUnitExtVersion" - - const val quickjs = "app.cash.quickjs:quickjs-android:$quickjsVersion" - } - - object MultiPlatform { - const val coroutines = - "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion" - const val kotlinSerialization = - "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinxSerializationVersion" - - const val kotlinTest = - "org.jetbrains.kotlin:kotlin-test-common:$kotlinTestVersion" - const val kotlinTestAnnotations = - "org.jetbrains.kotlin:kotlin-test-annotations-common:$kotlinTestVersion" - const val mokoTest = "dev.icerock.moko:test-core:$mokoTestVersion" - const val mokoTestRobolectric = "dev.icerock.moko:test-roboelectric:$mokoTestVersion" - - const val mokoJavascript = "dev.icerock.moko:javascript:$mokoJavascriptVersion" - } - } -} diff --git a/buildSrc/src/main/kotlin/android-base-convention.gradle.kts b/buildSrc/src/main/kotlin/android-base-convention.gradle.kts deleted file mode 100644 index 3569213..0000000 --- a/buildSrc/src/main/kotlin/android-base-convention.gradle.kts +++ /dev/null @@ -1,10 +0,0 @@ -import com.android.build.gradle.BaseExtension - -configure { - compileSdkVersion(Deps.Android.compileSdk) - - defaultConfig { - minSdkVersion(Deps.Android.minSdk) - targetSdkVersion(Deps.Android.targetSdk) - } -} diff --git a/buildSrc/src/main/kotlin/android-library-convention.gradle.kts b/buildSrc/src/main/kotlin/android-library-convention.gradle.kts deleted file mode 100644 index b977402..0000000 --- a/buildSrc/src/main/kotlin/android-library-convention.gradle.kts +++ /dev/null @@ -1,4 +0,0 @@ -plugins { - id("com.android.library") - id("android-base-convention") -} diff --git a/buildSrc/src/main/kotlin/mpp-library-convention.gradle.kts b/buildSrc/src/main/kotlin/mpp-library-convention.gradle.kts deleted file mode 100644 index ed4baff..0000000 --- a/buildSrc/src/main/kotlin/mpp-library-convention.gradle.kts +++ /dev/null @@ -1,5 +0,0 @@ -plugins { - id("android-library-convention") - id("org.jetbrains.kotlin.multiplatform") - id("dev.icerock.mobile.multiplatform") -} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..46e7cc2 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,31 @@ +[versions] +kotlinTestVersion = "1.5.20" +androidAppCompatVersion = "1.2.0" +materialDesignVersion = "1.0.0" +androidLifecycleVersion = "2.1.0" +androidCoreTestingVersion = "1.3.0" +testJUnitExtVersion = "1.1.2" +quickjsVersion = "0.9.0" +coroutinesVersion = "1.5.0-native-mt" +kotlinxSerializationVersion = "1.1.0" +mokoTestVersion = "0.4.0" +mokoJavascriptVersion = "0.2.0" + + +[libraries] +appCompat = { module = "androidx.appcompat:appcompat", version.ref = "androidAppCompatVersion" } +material = { module = "com.google.android.material:material", version.ref = "materialDesignVersion" } +lifecycle = { module = "androidx.lifecycle:lifecycle-extensions", version.ref = "androidLifecycleVersion" } +kotlinTestJUnit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlinTestVersion" } +testRunner = { module = "androidx.test:runner", version.ref = "androidCoreTestingVersion" } +testRules = { module = "androidx.test:rules", version.ref = "androidCoreTestingVersion" } +testJUnitExt = { module = "androidx.test.ext:junit", version.ref = "testJUnitExtVersion" } +testJUnitExtKtx = { module = "androidx.test.ext:junit-ktx", version.ref = "testJUnitExtVersion" } +quickjs = { module = "app.cash.quickjs:quickjs-android", version.ref = "quickjsVersion" } +coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutinesVersion" } +kotlinSerialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationVersion" } +kotlinTest = { module = "org.jetbrains.kotlin:kotlin-test-common", version.ref = "kotlinTestVersion" } +kotlinTestAnnotations = { module = "org.jetbrains.kotlin:kotlin-test-annotations-common", version.ref = "kotlinTestVersion" } +mokoTest = { module = "dev.icerock.moko:test-core", version.ref = "mokoTestVersion" } +mokoTestRobolectric = { module = "dev.icerock.moko:test-roboelectric", version.ref = "mokoTestVersion" } +mokoJavascript = { module = "dev.icerock.moko:javascript", version.ref = "mokoJavascriptVersion" } \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 549d844..0f80bbf 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/javascript-build-logic/build.gradle.kts b/javascript-build-logic/build.gradle.kts new file mode 100644 index 0000000..84cbae3 --- /dev/null +++ b/javascript-build-logic/build.gradle.kts @@ -0,0 +1,17 @@ +plugins { + `kotlin-dsl` +} + +repositories { + mavenCentral() + google() + + gradlePluginPortal() +} + +dependencies { + api("dev.icerock:mobile-multiplatform:0.12.0") + api("org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20") + api("com.android.tools.build:gradle:4.2.1") + api("io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.15.0") +} diff --git a/buildSrc/src/main/kotlin/android-app-convention.gradle.kts b/javascript-build-logic/src/main/kotlin/android-app-convention.gradle.kts similarity index 67% rename from buildSrc/src/main/kotlin/android-app-convention.gradle.kts rename to javascript-build-logic/src/main/kotlin/android-app-convention.gradle.kts index 6a73926..2859874 100644 --- a/buildSrc/src/main/kotlin/android-app-convention.gradle.kts +++ b/javascript-build-logic/src/main/kotlin/android-app-convention.gradle.kts @@ -1,6 +1,11 @@ +/* + * Copyright 2021 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. + */ + plugins { id("com.android.application") id("android-base-convention") + id("kotlin-android") } android { @@ -8,11 +13,9 @@ android { javaMaxHeapSize = "2g" } - defaultConfig.vectorDrawables.useSupportLibrary = true - buildTypes { getByName("release") { - isMinifyEnabled = false + isMinifyEnabled = true proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro") } getByName("debug") { @@ -23,5 +26,7 @@ android { packagingOptions { exclude("META-INF/*.kotlin_module") + exclude("META-INF/AL2.0") + exclude("META-INF/LGPL2.1") } } diff --git a/javascript-build-logic/src/main/kotlin/android-base-convention.gradle.kts b/javascript-build-logic/src/main/kotlin/android-base-convention.gradle.kts new file mode 100644 index 0000000..5f97e66 --- /dev/null +++ b/javascript-build-logic/src/main/kotlin/android-base-convention.gradle.kts @@ -0,0 +1,14 @@ +/* + * Copyright 2021 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. + */ + +import com.android.build.gradle.BaseExtension + +configure { + compileSdkVersion(30) + + defaultConfig { + minSdkVersion(18) + targetSdkVersion(30) + } +} diff --git a/javascript-build-logic/src/main/kotlin/android-library-convention.gradle.kts b/javascript-build-logic/src/main/kotlin/android-library-convention.gradle.kts new file mode 100644 index 0000000..c435401 --- /dev/null +++ b/javascript-build-logic/src/main/kotlin/android-library-convention.gradle.kts @@ -0,0 +1,13 @@ +/* + * Copyright 2021 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. + */ + +plugins { + id("com.android.library") + id("kotlin-android") + id("android-base-convention") +} + +android { + sourceSets.all { java.srcDir("src/$name/kotlin") } +} diff --git a/javascript-build-logic/src/main/kotlin/android-publication-convention.gradle.kts b/javascript-build-logic/src/main/kotlin/android-publication-convention.gradle.kts new file mode 100644 index 0000000..b4dae9e --- /dev/null +++ b/javascript-build-logic/src/main/kotlin/android-publication-convention.gradle.kts @@ -0,0 +1,15 @@ +/* + * Copyright 2021 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. + */ + +plugins { + id("publication-convention") +} + +afterEvaluate { + publishing.publications { + create("release", MavenPublication::class.java) { + from(components.getByName("release")) + } + } +} diff --git a/javascript-build-logic/src/main/kotlin/detekt-convention.gradle.kts b/javascript-build-logic/src/main/kotlin/detekt-convention.gradle.kts new file mode 100644 index 0000000..68343a8 --- /dev/null +++ b/javascript-build-logic/src/main/kotlin/detekt-convention.gradle.kts @@ -0,0 +1,15 @@ +/* + * Copyright 2021 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. + */ + +plugins { + id("io.gitlab.arturbosch.detekt") +} + +detekt { + input.setFrom("src/commonMain/kotlin", "src/androidMain/kotlin", "src/iosMain/kotlin", "src/main/kotlin") +} + +dependencies { + "detektPlugins"("io.gitlab.arturbosch.detekt:detekt-formatting:1.15.0") +} diff --git a/javascript-build-logic/src/main/kotlin/javadoc-stub-convention.gradle.kts b/javascript-build-logic/src/main/kotlin/javadoc-stub-convention.gradle.kts new file mode 100644 index 0000000..a1a2691 --- /dev/null +++ b/javascript-build-logic/src/main/kotlin/javadoc-stub-convention.gradle.kts @@ -0,0 +1,16 @@ +/* + * Copyright 2021 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. + */ + +plugins { + id("org.gradle.maven-publish") +} + +val javadocJar by tasks.registering(Jar::class) { + archiveClassifier.set("javadoc") +} + +publishing.publications.withType { + // Stub javadoc.jar artifact + artifact(javadocJar.get()) +} diff --git a/javascript-build-logic/src/main/kotlin/multiplatform-library-convention.gradle.kts b/javascript-build-logic/src/main/kotlin/multiplatform-library-convention.gradle.kts new file mode 100644 index 0000000..349f8ed --- /dev/null +++ b/javascript-build-logic/src/main/kotlin/multiplatform-library-convention.gradle.kts @@ -0,0 +1,31 @@ +/* + * Copyright 2021 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. + */ + +plugins { + id("com.android.library") + id("org.jetbrains.kotlin.multiplatform") + id("android-base-convention") + id("dev.icerock.mobile.multiplatform.android-manifest") +} + +kotlin { + ios() + android { + publishLibraryVariants("release", "debug") + } + sourceSets { + val mobileDeviceTest by creating + + val commonTest by getting + val iosTest by getting + val androidAndroidTest by getting + + + mobileDeviceTest.dependsOn(commonTest) + iosTest.dependsOn(mobileDeviceTest) + androidAndroidTest.dependsOn(mobileDeviceTest) + + } +} + diff --git a/buildSrc/src/main/kotlin/publication-convention.gradle.kts b/javascript-build-logic/src/main/kotlin/publication-convention.gradle.kts similarity index 73% rename from buildSrc/src/main/kotlin/publication-convention.gradle.kts rename to javascript-build-logic/src/main/kotlin/publication-convention.gradle.kts index 51f0985..9307b13 100644 --- a/buildSrc/src/main/kotlin/publication-convention.gradle.kts +++ b/javascript-build-logic/src/main/kotlin/publication-convention.gradle.kts @@ -1,17 +1,15 @@ +/* + * Copyright 2021 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. + */ + import java.util.Base64 plugins { + id("javadoc-stub-convention") id("org.gradle.maven-publish") id("signing") } -group = "dev.icerock.moko" -version = Deps.mokoJavascriptVersion - -val javadocJar by tasks.registering(Jar::class) { - archiveClassifier.set("javadoc") -} - publishing { repositories.maven("https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/") { name = "OSSRH" @@ -23,9 +21,6 @@ publishing { } publications.withType { - // Stub javadoc.jar artifact - artifact(javadocJar.get()) - // Provide artifacts information requited by Maven Central pom { name.set("MOKO JavaScript") @@ -64,16 +59,17 @@ publishing { } } } +} - signing { - val signingKeyId: String? = System.getenv("SIGNING_KEY_ID") - val signingPassword: String? = System.getenv("SIGNING_PASSWORD") - val signingKey: String? = System.getenv("SIGNING_KEY")?.let { base64Key -> - String(Base64.getDecoder().decode(base64Key)) - } - if (signingKeyId != null) { - useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword) - sign(publishing.publications) - } + +signing { + val signingKeyId: String? = System.getenv("SIGNING_KEY_ID") + val signingPassword: String? = System.getenv("SIGNING_PASSWORD") + val signingKey: String? = System.getenv("SIGNING_KEY")?.let { base64Key -> + String(Base64.getDecoder().decode(base64Key)) + } + if (signingKeyId != null) { + useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword) + sign(publishing.publications) } } diff --git a/javascript/build.gradle.kts b/javascript/build.gradle.kts index eb26148..2bb5b88 100644 --- a/javascript/build.gradle.kts +++ b/javascript/build.gradle.kts @@ -3,57 +3,24 @@ */ plugins { - id("mpp-library-convention") + id("multiplatform-library-convention") + id("dev.icerock.mobile.multiplatform.android-manifest") id("publication-convention") } -android { - testOptions.unitTests.isIncludeAndroidResources = true - defaultConfig { - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - } - packagingOptions { - exclude("META-INF/*.kotlin_module") - exclude("META-INF/*.kotlin_module") - exclude("META-INF/AL2.0") - exclude("META-INF/LGPL2.1") - } - sourceSets { - getByName("androidTest").java.srcDirs( - file("src/androidAndroidTest/kotlin"), - file("src/mobileDeviceTest/kotlin") - ) - } -} - -kotlin { - sourceSets { - val mobileDeviceTest by creating - val commonTest by getting - val iosTest by getting - val androidAndroidTest by getting - - mobileDeviceTest.dependsOn(commonTest) - iosTest.dependsOn(mobileDeviceTest) - androidAndroidTest.dependsOn(mobileDeviceTest) - } -} dependencies { - androidMainImplementation(Deps.Libs.Android.quickjs) - - commonMainImplementation(Deps.Libs.MultiPlatform.kotlinSerialization) - - commonTestImplementation(Deps.Libs.MultiPlatform.kotlinTest) - commonTestImplementation(Deps.Libs.MultiPlatform.kotlinTestAnnotations) - commonTestImplementation(Deps.Libs.MultiPlatform.mokoTest) - - androidTestImplementation(Deps.Libs.Android.kotlinTestJUnit) - androidTestImplementation(Deps.Libs.Android.testRunner) - androidTestImplementation(Deps.Libs.Android.testRules) - androidTestImplementation(Deps.Libs.Android.testJUnitExt) - androidTestImplementation(Deps.Libs.Android.testJUnitExtKtx) + androidMainImplementation(libs.quickjs) + commonMainImplementation(libs.kotlinSerialization) + commonTestImplementation(libs.kotlinTest) + commonTestImplementation(libs.kotlinTestAnnotations) + commonTestImplementation(libs.mokoTest) + androidTestImplementation(libs.kotlinTestJUnit) + androidTestImplementation(libs.testRunner) + androidTestImplementation(libs.testRules) + androidTestImplementation(libs.testJUnitExt) + androidTestImplementation(libs.testJUnitExtKtx) } diff --git a/sample/android-app/build.gradle.kts b/sample/android-app/build.gradle.kts index 7373125..24459bf 100644 --- a/sample/android-app/build.gradle.kts +++ b/sample/android-app/build.gradle.kts @@ -4,7 +4,7 @@ plugins { id("android-app-convention") - id("org.jetbrains.kotlin.android") + id("kotlin-android") } android { @@ -17,8 +17,8 @@ android { } dependencies { - implementation(Deps.Libs.Android.appCompat) - implementation(Deps.Libs.Android.material) + implementation(libs.appCompat) + implementation(libs.material) - implementation(project(":sample:mpp-library")) + implementation(projects.sample.mppLibrary) } diff --git a/sample/build.gradle.kts b/sample/build.gradle.kts deleted file mode 100644 index e510f6c..0000000 --- a/sample/build.gradle.kts +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright 2021 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. - */ - -subprojects { - configurations.all { - resolutionStrategy.dependencySubstitution { - substitute(module(Deps.Libs.MultiPlatform.mokoJavascript)) - .with(project(":javascript")) - } - } -} diff --git a/sample/mpp-library/build.gradle.kts b/sample/mpp-library/build.gradle.kts index 04ed8b3..ac7d979 100644 --- a/sample/mpp-library/build.gradle.kts +++ b/sample/mpp-library/build.gradle.kts @@ -3,17 +3,26 @@ */ plugins { - id("mpp-library-convention") + id("com.android.library") + id("android-base-convention") + id("detekt-convention") + id("org.jetbrains.kotlin.multiplatform") + id("dev.icerock.mobile.multiplatform.android-manifest") id("dev.icerock.mobile.multiplatform.ios-framework") } +kotlin { + android() + ios() +} + dependencies { - commonMainApi(Deps.Libs.MultiPlatform.coroutines) - commonMainApi(Deps.Libs.MultiPlatform.kotlinSerialization) + commonMainApi(libs.coroutines) + commonMainApi(libs.kotlinSerialization) - commonMainApi(Deps.Libs.MultiPlatform.mokoJavascript) + commonMainApi(projects.javascript) } framework { - export(project(":javascript")) + export(projects.javascript) } diff --git a/settings.gradle.kts b/settings.gradle.kts index 1afd947..c6ccb10 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -2,15 +2,8 @@ * Copyright 2021 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. */ -pluginManagement { - repositories { - gradlePluginPortal() - mavenCentral() - google() - - jcenter() - } -} +enableFeaturePreview("VERSION_CATALOGS") +enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") dependencyResolutionManagement { repositories { @@ -21,6 +14,8 @@ dependencyResolutionManagement { } } +includeBuild("javascript-build-logic") + include(":javascript") include(":sample:android-app") include(":sample:mpp-library") From 646d4b525ca57ed93cb8fbcca0d5e1579bf640f1 Mon Sep 17 00:00:00 2001 From: Anton Shestak Date: Fri, 2 Jul 2021 14:11:47 +0700 Subject: [PATCH 2/3] #9 removed non used --- gradle/libs.versions.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 46e7cc2..9cf12a6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -27,5 +27,3 @@ kotlinSerialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-js kotlinTest = { module = "org.jetbrains.kotlin:kotlin-test-common", version.ref = "kotlinTestVersion" } kotlinTestAnnotations = { module = "org.jetbrains.kotlin:kotlin-test-annotations-common", version.ref = "kotlinTestVersion" } mokoTest = { module = "dev.icerock.moko:test-core", version.ref = "mokoTestVersion" } -mokoTestRobolectric = { module = "dev.icerock.moko:test-roboelectric", version.ref = "mokoTestVersion" } -mokoJavascript = { module = "dev.icerock.moko:javascript", version.ref = "mokoJavascriptVersion" } \ No newline at end of file From 990edc934b5c4c658467fe0fdc4c33d0986f8269 Mon Sep 17 00:00:00 2001 From: Anton Shestak Date: Fri, 2 Jul 2021 14:50:42 +0700 Subject: [PATCH 3/3] #9 remove empty-lines --- javascript/build.gradle.kts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/javascript/build.gradle.kts b/javascript/build.gradle.kts index 2bb5b88..f8f90d1 100644 --- a/javascript/build.gradle.kts +++ b/javascript/build.gradle.kts @@ -8,10 +8,6 @@ plugins { id("publication-convention") } - - - - dependencies { androidMainImplementation(libs.quickjs) commonMainImplementation(libs.kotlinSerialization)