plugins { id 'org.jetbrains.kotlin.multiplatform' id 'com.android.library' id 'org.jetbrains.kotlin.plugin.serialization' } android { compileSdkVersion rootProject.ext.version_android_compile_sdk compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } packagingOptions { resources { excludes += ['META-INF/INDEX.LIST', '**/*.kotlin_metadata', 'META-INF/*.kotlin_module', 'licenses/**.TXT'] } } defaultConfig { minSdkVersion 21 targetSdkVersion 31 } namespace 'com.ustadmobile.lib.db.entities' tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) { kotlinOptions { jvmTarget = "1.8" } } } sourceCompatibility = '1.8' targetCompatibility = '1.8' group rootProject.group version rootProject.version kotlin { jvm { compilations.main.kotlinOptions { // Setup the Kotlin compiler options for the 'main' compilation: jvmTarget = "$version_kotlin_jvmTarget" } compilations.test.kotlinOptions { // Setup the Kotlin compiler options for the 'main' compilation: jvmTarget = "$version_kotlin_jvmTarget" } } android() js(LEGACY) { browser { testTask { useKarma { useChromeHeadless() //change to useChrome to run the actual browser webpackConfig.cssSupport.enabled = true } } } } jvm { compilations.main.kotlinOptions { // Setup the Kotlin compiler options for the 'main' compilation: jvmTarget = "$version_kotlin_jvmTarget" } } sourceSets { commonMain { dependencies { implementation kotlin('stdlib-common') implementation "com.github.UstadMobile.door:door-runtime:$version_door" implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:$version_kotlinx_serialization" compileOnly "com.github.UstadMobile.door:room-annotations:$version_door" } } jvmMain { dependencies { } } jsMain { dependencies { // implementation "org.jetbrains.kotlin:kotlin-stdlib-js:$version_kotlin" // implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-js:$version_kotlinx_serialization" } } androidMain { dependencies { } } jvmTest { dependencies { implementation "junit:junit:$version_junit" } } } } //Kotlin plugin applied using subprojects DSL on the root project as advised by documentation apply plugin: "maven-publish" publishing { publications { maven(MavenPublication) { groupId rootProject.group artifactId project.name version rootProject.version } } repositories { maven { url rootProject.ext.buildConfigProperties['repo.dir'] } } }