All Downloads are FREE. Search and download functionalities are using the official Maven repository.

rrow-gradle-config-kotlin.0.6.0.source-code.io.arrow-kt.arrow-gradle-config-kotlin.gradle.kts Maven / Gradle / Ivy

import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

group = property("projects.group").toString()

version = property("projects.version").toString()

tasks {
  withType() {
    maxParallelForks = Runtime.getRuntime().availableProcessors()
    useJUnitPlatform()
    testLogging {
      setExceptionFormat("full")
      setEvents(listOf("passed", "skipped", "failed", "standardOut", "standardError"))
    }
  }
  withType() {
    kotlinOptions {
      freeCompilerArgs = freeCompilerArgs + listOf("-Xskip-runtime-version-check")
      jvmTarget = "1.8"
    }
    sourceCompatibility = JavaVersion.VERSION_1_8.toString()
    targetCompatibility = JavaVersion.VERSION_1_8.toString()
  }
  named("clean") { doFirst { delete("$projectDir/../../../arrow-site/docs/apidocs") } }
}

configure { explicitApi() }

if (isKotlinMultiplatform) {
  configure {
    jvm {
      // Fix JVM target ignores Java sources and compiles only Kotlin source files.
      withJava()
    }
    js(IR) {
      browser()
      nodejs()
    }

    linuxX64()

    mingwX64()

    iosArm32()
    iosArm64()
    iosSimulatorArm64()
    iosX64()
    macosArm64()
    macosX64()
    tvosArm64()
    tvosSimulatorArm64()
    tvosX64()
    watchosArm32()
    watchosArm64()
    watchosSimulatorArm64()
    watchosX64()
    watchosX86()

    targets.all { compilations.all { kotlinOptions { verbose = true } } }

    sourceSets {
      val commonMain by getting
      val mingwX64Main by getting
      val linuxX64Main by getting
      val iosArm32Main by getting
      val iosArm64Main by getting
      val iosSimulatorArm64Main by getting
      val iosX64Main by getting
      val macosArm64Main by getting
      val macosX64Main by getting
      val tvosArm64Main by getting
      val tvosSimulatorArm64Main by getting
      val tvosX64Main by getting
      val watchosArm32Main by getting
      val watchosArm64Main by getting
      val watchosSimulatorArm64Main by getting
      val watchosX64Main by getting
      val watchosX86Main by getting

      create("nativeMain") {
        dependsOn(commonMain)
        mingwX64Main.dependsOn(this)
        linuxX64Main.dependsOn(this)
        iosArm32Main.dependsOn(this)
        iosArm64Main.dependsOn(this)
        iosSimulatorArm64Main.dependsOn(this)
        iosX64Main.dependsOn(this)
        macosArm64Main.dependsOn(this)
        macosX64Main.dependsOn(this)
        tvosArm64Main.dependsOn(this)
        tvosSimulatorArm64Main.dependsOn(this)
        tvosX64Main.dependsOn(this)
        watchosArm32Main.dependsOn(this)
        watchosArm64Main.dependsOn(this)
        watchosSimulatorArm64Main.dependsOn(this)
        watchosX64Main.dependsOn(this)
        watchosX86Main.dependsOn(this)
      }
    }
  }
}

if (isKotlinJvm) {
  configurations.all { resolutionStrategy.cacheChangingModulesFor(0, "seconds") }
}

internal val Project.isKotlinJvm: Boolean
  get() = pluginManager.hasPlugin("org.jetbrains.kotlin.jvm")

internal val Project.isKotlinMultiplatform: Boolean
  get() = pluginManager.hasPlugin("org.jetbrains.kotlin.multiplatform")




© 2015 - 2025 Weber Informatics LLC | Privacy Policy