Danilo Arcadipane
06/09/2025, 2:13 PMSean Chin Jun Kai
06/09/2025, 2:38 PMDanilo Arcadipane
06/09/2025, 2:54 PMSean Chin Jun Kai
06/09/2025, 3:05 PMChrimaeon
06/09/2025, 4:56 PMChrimaeon
06/09/2025, 4:56 PMDanilo Arcadipane
06/09/2025, 10:07 PMimport com.app.tooling.utils.DependencyUtils.removeExpectActualWarning
import com.app.tooling.utils.DependencyUtils.setupJVM
import com.app.tooling.utils.DependencyUtils.setupWasm
import org.jetbrains.dokka.gradle.DokkaTask
import org.jetbrains.dokka.Platform
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
group = com.app.tooling.utils.Configuration.mavenGroupId
version = com.app.tooling.utils.Configuration.aarVersion
publishing {
publications.withType<MavenPublication> {
artifactId = "corecommon"
}
}
plugins {
kotlin("multiplatform")
kotlin("plugin.serialization")
id("com.android.library")
id("org.jetbrains.dokka")
}
kotlin {
removeExpectActualWarning()
androidTarget {
@OptIn(ExperimentalKotlinGradlePluginApi::class)
compilerOptions {
jvmTarget.set(JvmTarget.JVM_17)
}
}
setupJVM()
setupWasm()
listOf(
iosArm64(),
iosX64(),
iosSimulatorArm64(),
).forEach { iosTarget ->
iosTarget.binaries.framework {
baseName = "commonKit"
isStatic = true
}
}
sourceSets {
commonMain {
dependencies {
implementation(libs.coroutines.core)
implementation(libs.kotlin.stdlib)
implementation(libs.koin.core)
implementation(libs.gson)
implementation(libs.ktor.core)
implementation(libs.ktor.contentNegotiation)
implementation(libs.ktor.serialization)
}
}
commonTest {
dependencies {
implementation(libs.kotlin.test)
}
}
androidMain {
dependencies {
implementation(libs.androidx.security.crypto)
implementation(libs.compose.activity)
implementation(libs.androidx.lifecycle.viewmodel)
implementation(libs.koin.android)
implementation(libs.ktor.android)
implementation(libs.okhttp)
implementation(libs.ktor.client.okhttp)
}
}
iosMain {
dependencies {
implementation(libs.koin.core)
implementation(libs.ktor.ios)
}
}
jvmMain {}
wasmJsMain {}
commonTest.dependencies {
implementation(kotlin("test-junit"))
implementation("junit:junit:4.13.2")
}
}
}
android {
namespace = "com.app.mediaplayer"
compileSdk = libs.versions.android.compileSdk.get().toInt()
defaultConfig {
minSdk = libs.versions.android.minSdk.get().toInt()
targetSdk = libs.versions.android.targetSdk.get().toInt()
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
testOptions {
unitTests.isIncludeAndroidResources = true
}
}
tasks.withType<DokkaTask>().configureEach {
dokkaSourceSets {
// Create a custom source set not known to the Kotlin Gradle Plugin
register("customSourceSet") {
this.jdkVersion.set(9)
this.displayName.set("custom")
this.sourceRoots.from(file("src/customJdk9/kotlin"))
}
}
}