Extract shared build logic to convention plugins
See: https://docs.gradle.org/current/userguide/sharing_build_logic_between_subprojects.html#sec:convention_plugins
This commit is contained in:
parent
bae2d88e3d
commit
88e31cd1ac
@ -1,9 +1,7 @@
|
|||||||
description = "Benchmarks for kotlin-result."
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
kotlin("multiplatform")
|
|
||||||
id("org.jetbrains.kotlinx.benchmark")
|
id("org.jetbrains.kotlinx.benchmark")
|
||||||
id("org.jetbrains.kotlin.plugin.allopen")
|
id("org.jetbrains.kotlin.plugin.allopen")
|
||||||
|
id("kotlin-conventions")
|
||||||
}
|
}
|
||||||
|
|
||||||
allOpen {
|
allOpen {
|
||||||
@ -19,15 +17,6 @@ benchmark {
|
|||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
jvmToolchain(8)
|
|
||||||
|
|
||||||
jvm {
|
|
||||||
}
|
|
||||||
|
|
||||||
js(IR) {
|
|
||||||
nodejs()
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
val commonMain by getting {
|
val commonMain by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
|
1
benchmarks/gradle.properties
Normal file
1
benchmarks/gradle.properties
Normal file
@ -0,0 +1 @@
|
|||||||
|
description=Benchmarks for kotlin-result.
|
249
build.gradle.kts
249
build.gradle.kts
@ -1,26 +1,11 @@
|
|||||||
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
|
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
|
||||||
import com.github.benmanes.gradle.versions.updates.gradle.GradleReleaseChannel
|
import com.github.benmanes.gradle.versions.updates.gradle.GradleReleaseChannel
|
||||||
import org.jetbrains.dokka.gradle.DokkaTask
|
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper
|
|
||||||
|
|
||||||
val ossrhUsername: String? by project
|
|
||||||
val ossrhPassword: String? by project
|
|
||||||
|
|
||||||
val signingKeyId: String? by project // must be the last 8 digits of the key
|
|
||||||
val signingKey: String? by project
|
|
||||||
val signingPassword: String? by project
|
|
||||||
|
|
||||||
description = "A Result monad for modelling success or failure operations."
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
base
|
|
||||||
alias(libs.plugins.versions)
|
alias(libs.plugins.versions)
|
||||||
|
|
||||||
alias(libs.plugins.kotlin.multiplatform) apply false
|
|
||||||
alias(libs.plugins.kotlin.benchmark) apply false
|
alias(libs.plugins.kotlin.benchmark) apply false
|
||||||
alias(libs.plugins.kotlin.allopen) apply false
|
alias(libs.plugins.kotlin.allopen) apply false
|
||||||
alias(libs.plugins.dokka) apply false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType<DependencyUpdatesTask> {
|
tasks.withType<DependencyUpdatesTask> {
|
||||||
@ -32,237 +17,3 @@ tasks.withType<DependencyUpdatesTask> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
subprojects {
|
|
||||||
plugins.withType<MavenPublishPlugin> {
|
|
||||||
apply(plugin = "org.gradle.signing")
|
|
||||||
|
|
||||||
plugins.withType<KotlinMultiplatformPluginWrapper> {
|
|
||||||
apply(plugin = "org.jetbrains.dokka")
|
|
||||||
|
|
||||||
val dokkaHtml by tasks.existing(DokkaTask::class)
|
|
||||||
|
|
||||||
val javadocJar by tasks.registering(Jar::class) {
|
|
||||||
group = LifecycleBasePlugin.BUILD_GROUP
|
|
||||||
description = "Assembles a jar archive containing the Javadoc API documentation."
|
|
||||||
archiveClassifier.set("javadoc")
|
|
||||||
from(dokkaHtml)
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.withType<Jar> {
|
|
||||||
from(rootDir.resolve("LICENSE")) {
|
|
||||||
into("META-INF")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
configure<KotlinMultiplatformExtension> {
|
|
||||||
explicitApi()
|
|
||||||
|
|
||||||
jvmToolchain(8)
|
|
||||||
|
|
||||||
jvm {
|
|
||||||
mavenPublication {
|
|
||||||
artifact(javadocJar.get())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
js(IR) {
|
|
||||||
browser()
|
|
||||||
nodejs()
|
|
||||||
}
|
|
||||||
|
|
||||||
linuxX64()
|
|
||||||
|
|
||||||
mingwX64()
|
|
||||||
|
|
||||||
macosArm64()
|
|
||||||
macosX64()
|
|
||||||
|
|
||||||
iosArm64()
|
|
||||||
iosSimulatorArm64()
|
|
||||||
iosX64()
|
|
||||||
|
|
||||||
tvosArm64()
|
|
||||||
tvosSimulatorArm64()
|
|
||||||
tvosX64()
|
|
||||||
|
|
||||||
watchosArm32()
|
|
||||||
watchosArm64()
|
|
||||||
watchosSimulatorArm64()
|
|
||||||
watchosX64()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
configure<PublishingExtension> {
|
|
||||||
repositories {
|
|
||||||
maven {
|
|
||||||
if (project.version.toString().endsWith("SNAPSHOT")) {
|
|
||||||
setUrl("https://oss.sonatype.org/content/repositories/snapshots")
|
|
||||||
} else {
|
|
||||||
setUrl("https://oss.sonatype.org/service/local/staging/deploy/maven2")
|
|
||||||
}
|
|
||||||
|
|
||||||
credentials {
|
|
||||||
username = ossrhUsername
|
|
||||||
password = ossrhPassword
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
publications.withType<MavenPublication> {
|
|
||||||
pom {
|
|
||||||
name.set(project.name)
|
|
||||||
url.set("https://github.com/michaelbull/kotlin-result")
|
|
||||||
inceptionYear.set("2017")
|
|
||||||
|
|
||||||
licenses {
|
|
||||||
license {
|
|
||||||
name.set("ISC License")
|
|
||||||
url.set("https://opensource.org/licenses/isc-license.txt")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
developers {
|
|
||||||
developer {
|
|
||||||
name.set("Michael Bull")
|
|
||||||
url.set("https://www.michael-bull.com")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
contributors {
|
|
||||||
contributor {
|
|
||||||
name.set("Kevin Herron")
|
|
||||||
url.set("https://github.com/kevinherron")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Markus Padourek")
|
|
||||||
url.set("https://github.com/Globegitter")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Tristan Hamilton")
|
|
||||||
url.set("https://github.com/Munzey")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Joseph Van der Wee")
|
|
||||||
url.set("https://github.com/jvanderwee")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Gregory Inouye")
|
|
||||||
url.set("https://github.com/gregoryinouye")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Thomas Oddsund")
|
|
||||||
url.set("https://github.com/oddsund")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Jan Müller")
|
|
||||||
url.set("https://github.com/DerYeger")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("avently")
|
|
||||||
url.set("https://github.com/avently")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("gsteckman")
|
|
||||||
url.set("https://github.com/gsteckman")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Mathias Guelton")
|
|
||||||
url.set("https://github.com/mguelton")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Jordan Bergin")
|
|
||||||
url.set("https://github.com/MrBergin")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Pablo Gonzalez Alonso")
|
|
||||||
url.set("https://pablisco.com/")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Joseph Cooper")
|
|
||||||
url.set("https://grodin.github.io/")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Sebastian Kappen")
|
|
||||||
url.set("https://github.com/Nimelrian")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Dmitry Suzdalev")
|
|
||||||
url.set("https://github.com/dimsuz")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Berik Visschers")
|
|
||||||
url.set("https://visschers.nu/")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Matthew Nelson")
|
|
||||||
url.set("https://matthewnelson.io/")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Matthias Geisler")
|
|
||||||
url.set("https://github.com/bitPogo")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Kirill Zhukov")
|
|
||||||
url.set("https://github.com/kirillzh")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Peter Cunderlik")
|
|
||||||
url.set("https://github.com/peter-cunderlik-kmed")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("YuitoSato")
|
|
||||||
url.set("https://github.com/YuitoSato")
|
|
||||||
}
|
|
||||||
|
|
||||||
contributor {
|
|
||||||
name.set("Dmitry Bock")
|
|
||||||
url.set("https://github.com/Jhabkin")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
scm {
|
|
||||||
connection.set("scm:git:https://github.com/michaelbull/kotlin-result")
|
|
||||||
developerConnection.set("scm:git:git@github.com:michaelbull/kotlin-result.git")
|
|
||||||
url.set("https://github.com/michaelbull/kotlin-result")
|
|
||||||
}
|
|
||||||
|
|
||||||
issueManagement {
|
|
||||||
system.set("GitHub")
|
|
||||||
url.set("https://github.com/michaelbull/kotlin-result/issues")
|
|
||||||
}
|
|
||||||
|
|
||||||
ciManagement {
|
|
||||||
system.set("GitHub")
|
|
||||||
url.set("https://github.com/michaelbull/kotlin-result/actions?query=workflow%3Aci")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
configure<SigningExtension> {
|
|
||||||
useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
|
|
||||||
sign(publications)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
7
buildSrc/build.gradle.kts
Normal file
7
buildSrc/build.gradle.kts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
plugins {
|
||||||
|
`kotlin-dsl`
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(libs.kotlin.gradle.plugin)
|
||||||
|
}
|
19
buildSrc/settings.gradle.kts
Normal file
19
buildSrc/settings.gradle.kts
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
pluginManagement {
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
gradlePluginPortal()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencyResolutionManagement {
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
gradlePluginPortal()
|
||||||
|
}
|
||||||
|
|
||||||
|
versionCatalogs {
|
||||||
|
create("libs") {
|
||||||
|
from(files("../gradle/libs.versions.toml"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
66
buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts
Normal file
66
buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
plugins {
|
||||||
|
kotlin("multiplatform")
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlin {
|
||||||
|
jvmToolchain(8)
|
||||||
|
|
||||||
|
jvm()
|
||||||
|
|
||||||
|
js(IR) {
|
||||||
|
browser()
|
||||||
|
nodejs()
|
||||||
|
}
|
||||||
|
|
||||||
|
linuxX64()
|
||||||
|
|
||||||
|
mingwX64()
|
||||||
|
|
||||||
|
macosArm64()
|
||||||
|
macosX64()
|
||||||
|
|
||||||
|
iosArm64()
|
||||||
|
iosSimulatorArm64()
|
||||||
|
iosX64()
|
||||||
|
|
||||||
|
tvosArm64()
|
||||||
|
tvosSimulatorArm64()
|
||||||
|
tvosX64()
|
||||||
|
|
||||||
|
watchosArm32()
|
||||||
|
watchosArm64()
|
||||||
|
watchosSimulatorArm64()
|
||||||
|
watchosX64()
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
all {
|
||||||
|
languageSettings.apply {
|
||||||
|
optIn("kotlin.contracts.ExperimentalContracts")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
commonTest {
|
||||||
|
dependencies {
|
||||||
|
implementation(kotlin("test"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jvmTest {
|
||||||
|
dependencies {
|
||||||
|
implementation(kotlin("test-junit"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jsTest {
|
||||||
|
dependencies {
|
||||||
|
implementation(kotlin("test-js"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.withType<Jar> {
|
||||||
|
from(rootDir.resolve("LICENSE")) {
|
||||||
|
into("META-INF")
|
||||||
|
}
|
||||||
|
}
|
196
buildSrc/src/main/kotlin/publish-conventions.gradle.kts
Normal file
196
buildSrc/src/main/kotlin/publish-conventions.gradle.kts
Normal file
@ -0,0 +1,196 @@
|
|||||||
|
import org.gradle.api.publish.maven.MavenPublication
|
||||||
|
import org.gradle.api.tasks.bundling.Jar
|
||||||
|
import org.gradle.kotlin.dsl.`maven-publish`
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
`maven-publish`
|
||||||
|
signing
|
||||||
|
}
|
||||||
|
|
||||||
|
publishing {
|
||||||
|
repositories {
|
||||||
|
maven {
|
||||||
|
if (project.version.toString().endsWith("SNAPSHOT")) {
|
||||||
|
setUrl("https://oss.sonatype.org/content/repositories/snapshots")
|
||||||
|
} else {
|
||||||
|
setUrl("https://oss.sonatype.org/service/local/staging/deploy/maven2")
|
||||||
|
}
|
||||||
|
|
||||||
|
credentials {
|
||||||
|
val ossrhUsername: String? by project
|
||||||
|
val ossrhPassword: String? by project
|
||||||
|
|
||||||
|
username = ossrhUsername
|
||||||
|
password = ossrhPassword
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
publications.withType<MavenPublication> {
|
||||||
|
val targetName = this@withType.name
|
||||||
|
|
||||||
|
artifact(tasks.register("${targetName}JavadocJar", Jar::class) {
|
||||||
|
group = LifecycleBasePlugin.BUILD_GROUP
|
||||||
|
description = "Assembles a jar archive containing the Javadoc API documentation of target '$targetName'."
|
||||||
|
archiveClassifier.set("javadoc")
|
||||||
|
archiveAppendix.set(targetName)
|
||||||
|
})
|
||||||
|
|
||||||
|
pom {
|
||||||
|
name.set(project.name)
|
||||||
|
description.set(project.description)
|
||||||
|
inceptionYear.set("2017")
|
||||||
|
|
||||||
|
licenses {
|
||||||
|
license {
|
||||||
|
name.set("ISC License")
|
||||||
|
url.set("https://opensource.org/licenses/isc-license.txt")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
developers {
|
||||||
|
developer {
|
||||||
|
name.set("Michael Bull")
|
||||||
|
url.set("https://www.michael-bull.com")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
contributors {
|
||||||
|
contributor {
|
||||||
|
name.set("Kevin Herron")
|
||||||
|
url.set("https://github.com/kevinherron")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Markus Padourek")
|
||||||
|
url.set("https://github.com/Globegitter")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Tristan Hamilton")
|
||||||
|
url.set("https://github.com/Munzey")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Joseph Van der Wee")
|
||||||
|
url.set("https://github.com/jvanderwee")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Gregory Inouye")
|
||||||
|
url.set("https://github.com/gregoryinouye")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Thomas Oddsund")
|
||||||
|
url.set("https://github.com/oddsund")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Jan Müller")
|
||||||
|
url.set("https://github.com/DerYeger")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("avently")
|
||||||
|
url.set("https://github.com/avently")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("gsteckman")
|
||||||
|
url.set("https://github.com/gsteckman")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Mathias Guelton")
|
||||||
|
url.set("https://github.com/mguelton")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Jordan Bergin")
|
||||||
|
url.set("https://github.com/MrBergin")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Pablo Gonzalez Alonso")
|
||||||
|
url.set("https://pablisco.com/")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Joseph Cooper")
|
||||||
|
url.set("https://grodin.github.io/")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Sebastian Kappen")
|
||||||
|
url.set("https://github.com/Nimelrian")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Dmitry Suzdalev")
|
||||||
|
url.set("https://github.com/dimsuz")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Berik Visschers")
|
||||||
|
url.set("https://visschers.nu/")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Matthew Nelson")
|
||||||
|
url.set("https://matthewnelson.io/")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Matthias Geisler")
|
||||||
|
url.set("https://github.com/bitPogo")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Kirill Zhukov")
|
||||||
|
url.set("https://github.com/kirillzh")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Peter Cunderlik")
|
||||||
|
url.set("https://github.com/peter-cunderlik-kmed")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("YuitoSato")
|
||||||
|
url.set("https://github.com/YuitoSato")
|
||||||
|
}
|
||||||
|
|
||||||
|
contributor {
|
||||||
|
name.set("Dmitry Bock")
|
||||||
|
url.set("https://github.com/Jhabkin")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
scm {
|
||||||
|
connection.set("scm:git:https://github.com/michaelbull/kotlin-result")
|
||||||
|
developerConnection.set("scm:git:git@github.com:michaelbull/kotlin-result.git")
|
||||||
|
url.set("https://github.com/michaelbull/kotlin-result")
|
||||||
|
}
|
||||||
|
|
||||||
|
issueManagement {
|
||||||
|
system.set("GitHub")
|
||||||
|
url.set("https://github.com/michaelbull/kotlin-result/issues")
|
||||||
|
}
|
||||||
|
|
||||||
|
ciManagement {
|
||||||
|
system.set("GitHub")
|
||||||
|
url.set("https://github.com/michaelbull/kotlin-result/actions?query=workflow%3Aci")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
signing {
|
||||||
|
val signingKeyId: String? by project // must be the last 8 digits of the key
|
||||||
|
val signingKey: String? by project
|
||||||
|
val signingPassword: String? by project
|
||||||
|
|
||||||
|
useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
|
||||||
|
sign(publishing.publications)
|
||||||
|
}
|
@ -1,5 +1,3 @@
|
|||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
application
|
application
|
||||||
kotlin("jvm")
|
kotlin("jvm")
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
group=com.michael-bull.kotlin-result
|
group=com.michael-bull.kotlin-result
|
||||||
version=1.1.19-SNAPSHOT
|
version=1.1.19-SNAPSHOT
|
||||||
|
description=A multiplatform Result monad for modelling success or failure operations.
|
||||||
|
|
||||||
kotlin.code.style=official
|
kotlin.code.style=official
|
||||||
kotlin.native.ignoreDisabledTargets=true
|
kotlin.native.ignoreDisabledTargets=true
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
[versions]
|
[versions]
|
||||||
dokka = "1.9.10"
|
|
||||||
kotlin = "1.9.22"
|
kotlin = "1.9.22"
|
||||||
kotlin-benchmark = "0.4.10"
|
kotlin-benchmark = "0.4.10"
|
||||||
kotlin-coroutines = "1.8.0"
|
kotlin-coroutines = "1.8.0"
|
||||||
ktor = "2.3.8"
|
ktor = "2.3.8"
|
||||||
logback = "1.5.1"
|
logback = "1.3.14"
|
||||||
versions-plugin = "0.51.0"
|
versions-plugin = "0.51.0"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
logback = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
|
logback = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
|
||||||
|
|
||||||
|
kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
|
||||||
kotlin-stdlib-jdk8 = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" }
|
kotlin-stdlib-jdk8 = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" }
|
||||||
kotlin-benchmark-runtime = { module = "org.jetbrains.kotlinx:kotlinx-benchmark-runtime", version.ref = "kotlin-benchmark" }
|
kotlin-benchmark-runtime = { module = "org.jetbrains.kotlinx:kotlinx-benchmark-runtime", version.ref = "kotlin-benchmark" }
|
||||||
kotlin-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlin-coroutines" }
|
kotlin-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlin-coroutines" }
|
||||||
@ -21,7 +21,6 @@ ktor-server-content-negotiation = { module = "io.ktor:ktor-server-content-negoti
|
|||||||
ktor-server-netty = { module = "io.ktor:ktor-server-netty", version.ref = "ktor" }
|
ktor-server-netty = { module = "io.ktor:ktor-server-netty", version.ref = "ktor" }
|
||||||
|
|
||||||
[plugins]
|
[plugins]
|
||||||
dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" }
|
|
||||||
kotlin-allopen = { id = "org.jetbrains.kotlin.plugin.allopen", version.ref = "kotlin" }
|
kotlin-allopen = { id = "org.jetbrains.kotlin.plugin.allopen", version.ref = "kotlin" }
|
||||||
kotlin-benchmark = { id = "org.jetbrains.kotlinx.benchmark", version.ref = "kotlin-benchmark" }
|
kotlin-benchmark = { id = "org.jetbrains.kotlinx.benchmark", version.ref = "kotlin-benchmark" }
|
||||||
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
|
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
|
||||||
|
@ -1,18 +1,13 @@
|
|||||||
description = "Extensions for using kotlin-result with kotlinx-coroutines."
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
`maven-publish`
|
`maven-publish`
|
||||||
kotlin("multiplatform")
|
id("kotlin-conventions")
|
||||||
|
id("publish-conventions")
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
sourceSets {
|
explicitApi()
|
||||||
all {
|
|
||||||
languageSettings.apply {
|
|
||||||
optIn("kotlin.contracts.ExperimentalContracts")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
commonMain {
|
commonMain {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.kotlin.coroutines.core)
|
implementation(libs.kotlin.coroutines.core)
|
||||||
@ -22,31 +17,8 @@ kotlin {
|
|||||||
|
|
||||||
commonTest {
|
commonTest {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(kotlin("test-common"))
|
|
||||||
implementation(kotlin("test-annotations-common"))
|
|
||||||
implementation(libs.kotlin.coroutines.test)
|
implementation(libs.kotlin.coroutines.test)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
jvmTest {
|
|
||||||
dependencies {
|
|
||||||
implementation(kotlin("test-junit"))
|
|
||||||
implementation(kotlin("test"))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
jsTest {
|
|
||||||
dependencies {
|
|
||||||
implementation(kotlin("test-js"))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
publishing {
|
|
||||||
publications.withType<MavenPublication> {
|
|
||||||
pom {
|
|
||||||
description.set(project.description)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1
kotlin-result-coroutines/gradle.properties
Normal file
1
kotlin-result-coroutines/gradle.properties
Normal file
@ -0,0 +1 @@
|
|||||||
|
description=Extensions for using kotlin-result with kotlinx-coroutines.
|
@ -1,15 +1,14 @@
|
|||||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
|
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask
|
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask
|
||||||
|
|
||||||
description = "A Result monad for modelling success or failure operations."
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
`maven-publish`
|
`maven-publish`
|
||||||
kotlin("multiplatform")
|
id("kotlin-conventions")
|
||||||
|
id("publish-conventions")
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
jvmToolchain(8)
|
explicitApi()
|
||||||
|
|
||||||
// Additional targets not currently supported by coroutines
|
// Additional targets not currently supported by coroutines
|
||||||
androidNativeArm32()
|
androidNativeArm32()
|
||||||
@ -24,40 +23,6 @@ kotlin {
|
|||||||
binaries.executable()
|
binaries.executable()
|
||||||
nodejs()
|
nodejs()
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
|
||||||
all {
|
|
||||||
languageSettings.apply {
|
|
||||||
optIn("kotlin.contracts.ExperimentalContracts")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
commonTest {
|
|
||||||
dependencies {
|
|
||||||
implementation(kotlin("test"))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
jvmTest {
|
|
||||||
dependencies {
|
|
||||||
implementation(kotlin("test-junit"))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
jsTest {
|
|
||||||
dependencies {
|
|
||||||
implementation(kotlin("test-js"))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
publishing {
|
|
||||||
publications.withType<MavenPublication> {
|
|
||||||
pom {
|
|
||||||
description.set(project.description)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* https://youtrack.jetbrains.com/issue/KT-63014/Running-tests-with-wasmJs-in-1.9.20-requires-Chrome-Canary#focus=Comments-27-8321383.0-0 */
|
/* https://youtrack.jetbrains.com/issue/KT-63014/Running-tests-with-wasmJs-in-1.9.20-requires-Chrome-Canary#focus=Comments-27-8321383.0-0 */
|
||||||
|
@ -6,7 +6,7 @@ pluginManagement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("org.gradle.toolchains.foojay-resolver-convention") version "0.4.0"
|
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencyResolutionManagement {
|
dependencyResolutionManagement {
|
||||||
|
Loading…
Reference in New Issue
Block a user