app

Local-first trade for farms and co-ops
git clone https://radroots.dev/git/app.git
Log | Files | Refs | README | LICENSE

build.gradle.kts (3578B)


      1 import org.gradle.api.tasks.SourceSetContainer
      2 import org.gradle.api.tasks.testing.Test
      3 
      4 plugins {
      5     `java-gradle-plugin`
      6     alias(libs.plugins.kotlin.jvm)
      7 }
      8 
      9 kotlin {
     10     jvmToolchain(21)
     11 }
     12 
     13 dependencies {
     14     implementation(project(":contracts"))
     15     implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:${libs.versions.kotlin.get()}")
     16     implementation("org.jetbrains.kotlin:compose-compiler-gradle-plugin:${libs.versions.kotlin.get()}")
     17     implementation("org.jetbrains.compose:compose-gradle-plugin:${libs.versions.compose.get()}")
     18     implementation("dev.detekt:detekt-gradle-plugin:${libs.versions.detekt.get()}")
     19     implementation("org.jlleitschuh.gradle:ktlint-gradle:${libs.versions.ktlint.get()}")
     20     implementation("com.github.jk1:gradle-license-report:${libs.versions.license.report.get()}")
     21     implementation("org.owasp:dependency-check-gradle:${libs.versions.owasp.dependency.check.get()}")
     22     testImplementation(kotlin("test"))
     23 }
     24 
     25 val sourceSets = the<SourceSetContainer>()
     26 val functionalTestSourceSet = sourceSets.create("functionalTest")
     27 
     28 configurations[functionalTestSourceSet.implementationConfigurationName]
     29     .extendsFrom(configurations.testImplementation.get())
     30 configurations[functionalTestSourceSet.runtimeOnlyConfigurationName]
     31     .extendsFrom(configurations.testRuntimeOnly.get())
     32 
     33 dependencies {
     34     add(functionalTestSourceSet.implementationConfigurationName, sourceSets.main.get().output)
     35     add(functionalTestSourceSet.implementationConfigurationName, gradleTestKit())
     36     add(functionalTestSourceSet.implementationConfigurationName, kotlin("test"))
     37 }
     38 
     39 gradlePlugin {
     40     plugins {
     41         create("harvestCircleRoot") {
     42             id = "org.harvestcircle.build.root"
     43             implementationClass = "org.harvestcircle.buildlogic.plugins.HarvestCircleRootPlugin"
     44         }
     45         create("harvestCircleKmpShared") {
     46             id = "org.harvestcircle.build.kmp-shared"
     47             implementationClass = "org.harvestcircle.buildlogic.plugins.HarvestCircleKmpSharedPlugin"
     48         }
     49         create("harvestCircleDesignSystem") {
     50             id = "org.harvestcircle.build.design-system"
     51             implementationClass = "org.harvestcircle.buildlogic.plugins.HarvestCircleDesignSystemPlugin"
     52         }
     53         create("harvestCircleDesignCatalog") {
     54             id = "org.harvestcircle.build.design-catalog"
     55             implementationClass = "org.harvestcircle.buildlogic.plugins.HarvestCircleDesignCatalogPlugin"
     56         }
     57         create("harvestCircleDesktopApp") {
     58             id = "org.harvestcircle.build.desktop-app"
     59             implementationClass = "org.harvestcircle.buildlogic.plugins.HarvestCircleDesktopAppPlugin"
     60         }
     61         create("harvestCircleRustFfi") {
     62             id = "org.harvestcircle.build.rust-ffi"
     63             implementationClass = "org.harvestcircle.buildlogic.plugins.HarvestCircleRustFfiPlugin"
     64         }
     65         create("harvestCirclePackaging") {
     66             id = "org.harvestcircle.build.packaging"
     67             implementationClass = "org.harvestcircle.buildlogic.plugins.HarvestCirclePackagingPlugin"
     68         }
     69     }
     70     testSourceSets(functionalTestSourceSet)
     71 }
     72 
     73 tasks.withType<Test>().configureEach {
     74     useJUnitPlatform()
     75 }
     76 
     77 val functionalTest by tasks.registering(Test::class) {
     78     description = "Runs convention-plugin tests against isolated Gradle builds."
     79     group = "verification"
     80     testClassesDirs = functionalTestSourceSet.output.classesDirs
     81     classpath = functionalTestSourceSet.runtimeClasspath
     82     shouldRunAfter(tasks.test)
     83 }
     84 
     85 tasks.check {
     86     dependsOn(functionalTest)
     87 }