Store/store/build.gradle.kts
Matt 5eff430629 Expose AtomicFU (#505)
Signed-off-by: mramotar <mramotar@dropbox.com>

Signed-off-by: mramotar <mramotar@dropbox.com>
2023-01-16 16:31:12 -05:00

142 lines
3.3 KiB
Text

@file:Suppress("UnstableApiUsage")
import com.vanniktech.maven.publish.SonatypeHost.S01
import org.jetbrains.dokka.gradle.DokkaTask
plugins {
kotlin("multiplatform")
kotlin("plugin.serialization")
id("com.android.library")
id("com.vanniktech.maven.publish")
id("org.jetbrains.dokka")
id("org.jetbrains.kotlinx.kover")
id("co.touchlab.faktory.kmmbridge") version Version.kmmBridge
`maven-publish`
kotlin("native.cocoapods")
id("kotlinx-atomicfu")
}
kotlin {
android()
jvm()
iosArm64()
iosX64()
js {
browser()
nodejs()
}
cocoapods {
summary = "Store5"
homepage = "https://github.com/MobileNativeFoundation/Store"
ios.deploymentTarget = "13"
version = Version.store
}
sourceSets {
all {
languageSettings.apply {
optIn("kotlinx.coroutines.ExperimentalCoroutinesApi")
optIn("kotlin.RequiresOptIn")
}
}
val commonMain by getting {
dependencies {
with(Deps.Kotlinx) {
implementation(stdLib)
implementation(coroutinesCore)
implementation(serializationCore)
implementation(dateTime)
api(atomicFu)
}
implementation(Deps.Touchlab.kermit)
implementation(project(":multicast"))
implementation(project(":cache"))
}
}
val commonTest by getting {
dependsOn(commonMain)
dependencies {
implementation(kotlin("test"))
with(Deps.Test) {
implementation(junit)
implementation(core)
implementation(coroutinesTest)
}
}
}
val jvmMain by getting
val androidMain by getting
val nativeMain by creating {
dependsOn(commonMain)
}
}
}
android {
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
compileSdk = 33
defaultConfig {
minSdk = 24
targetSdk = 33
}
lint {
disable += "ComposableModifierFactory"
disable += "ModifierFactoryExtensionFunction"
disable += "ModifierFactoryReturnType"
disable += "ModifierFactoryUnreferencedReceiver"
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}
tasks.withType<DokkaTask>().configureEach {
dokkaSourceSets.configureEach {
reportUndocumented.set(false)
skipDeprecated.set(true)
jdkVersion.set(11)
}
}
mavenPublishing {
publishToMavenCentral(S01)
signAllPublications()
}
addGithubPackagesRepository()
kmmbridge {
githubReleaseArtifacts()
githubReleaseVersions()
versionPrefix.set("5.0.0-alpha")
spm()
}
koverMerged {
enable()
xmlReport {
onCheck.set(true)
reportFile.set(layout.projectDirectory.file("kover/coverage.xml"))
}
htmlReport {
onCheck.set(true)
reportDir.set(layout.projectDirectory.dir("kover/html"))
}
verify {
onCheck.set(true)
}
}
atomicfu {
transformJvm = false
transformJs = false
}