11@file:OptIn(ExperimentalKotlinGradlePluginApi ::class , ExperimentalWasmDsl ::class )
22
3+ import com.android.build.api.dsl.androidLibrary
34import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
45import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
56import org.jetbrains.kotlin.gradle.dsl.JvmTarget
67import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
78
89plugins {
9- alias(libs.plugins.kotlin.multiplatform)
1010 alias(libs.plugins.android.library)
11+ alias(libs.plugins.kotlin.multiplatform)
1112 alias(libs.plugins.com.vanniktech.maven.publish)
1213 alias(libs.plugins.kotlinx.serialization)
1314}
@@ -21,8 +22,15 @@ tasks.withType(KotlinJvmCompile::class).configureEach {
2122kotlin {
2223 jvm()
2324
24- androidTarget {
25- publishLibraryVariants(" release" , " debug" )
25+ androidLibrary {
26+ namespace = " com.prof18.rssparser"
27+ compileSdk = Integer .parseInt(libs.versions.android.compile.sdk.get())
28+ minSdk = libs.versions.android.min.sdk.get().toInt()
29+ compilerOptions.jvmTarget.set(JvmTarget .JVM_1_8 )
30+
31+ withHostTest {
32+ isIncludeAndroidResources = true
33+ }
2634 }
2735
2836 iosArm64()
@@ -58,14 +66,7 @@ kotlin {
5866 }
5967 }
6068
61- applyDefaultHierarchyTemplate {
62- common {
63- group(" jvmAndroid" ) {
64- withAndroidTarget()
65- withJvm()
66- }
67- }
68- }
69+ applyDefaultHierarchyTemplate()
6970
7071 compilerOptions {
7172 freeCompilerArgs.add(" -Xexpect-actual-classes" )
@@ -80,6 +81,14 @@ kotlin {
8081 }
8182 }
8283
84+ val jvmAndroidMain by creating {
85+ dependsOn(commonMain.get())
86+ }
87+
88+ val jvmAndroidTest by creating {
89+ dependsOn(commonTest.get())
90+ }
91+
8392 commonMain.dependencies {
8493 implementation(libs.kotlinx.coroutines.core)
8594 }
@@ -91,26 +100,33 @@ kotlin {
91100 implementation(libs.kotlinx.coroutines.test)
92101 }
93102
103+ jvmMain {
104+ dependsOn(jvmAndroidMain)
105+ }
106+
94107 jvmTest {
108+ dependsOn(jvmAndroidTest)
95109 dependencies {
96110 implementation(kotlin(" test-junit" ))
97111 }
98112 }
99113
100114 androidMain {
115+ dependsOn(jvmAndroidMain)
101116 dependencies {
102117 implementation(libs.kotlinx.coroutines.android)
103118 }
104119 }
105120
106- androidUnitTest {
121+ getByName(" androidHostTest" ) {
122+ dependsOn(jvmAndroidTest)
107123 dependencies {
108124 implementation(libs.org.robolectric)
109125 implementation(kotlin(" test-junit" ))
110126 }
111127 }
112128
113- get( " jvmAndroidMain" ) .dependencies {
129+ jvmAndroidMain.dependencies {
114130 api(libs.com.squareup.okhttp3)
115131 implementation(libs.com.squareup.okhttp3.coroutines)
116132 }
@@ -125,21 +141,3 @@ kotlin {
125141 }
126142}
127143
128- android {
129- namespace = " com.prof18.rssparser"
130-
131- compileSdk = Integer .parseInt(libs.versions.android.compile.sdk.get())
132-
133- defaultConfig {
134- minSdk = libs.versions.android.min.sdk.get().toInt()
135- }
136-
137- testOptions.unitTests {
138- isIncludeAndroidResources = true
139- }
140-
141- compileOptions {
142- sourceCompatibility = JavaVersion .VERSION_1_8
143- targetCompatibility = JavaVersion .VERSION_1_8
144- }
145- }
0 commit comments