• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download

<lambda>null1 import org.gradle.api.*
2 import org.gradle.api.plugins.*
3 import org.gradle.api.tasks.*
4 import org.gradle.api.tasks.bundling.*
5 import org.gradle.api.tasks.testing.*
6 import org.gradle.kotlin.dsl.*
7 import ru.vyarus.gradle.plugin.animalsniffer.AnimalSnifferExtension
8 
9 /*
10  * Copyright 2017-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
11  */
12 
13 // Animalsniffer setup
14 // Animalsniffer requires java plugin to be applied, but Kotlin 1.9.20
15 // relies on `java-base` for Kotlin Multiplatforms `withJava` implementation
16 // https://github.com/xvik/gradle-animalsniffer-plugin/issues/84
17 // https://youtrack.jetbrains.com/issue/KT-59595
18 plugins {
19     java
20     id("ru.vyarus.animalsniffer")
21 }
22 
23 
<lambda>null24 plugins.withId("org.jetbrains.kotlin.multiplatform") {
25     listOf(
26         JavaPlugin.API_ELEMENTS_CONFIGURATION_NAME,
27         JavaPlugin.RUNTIME_ELEMENTS_CONFIGURATION_NAME
28     ).forEach { outputConfigurationName ->
29         configurations.findByName(outputConfigurationName)?.isCanBeConsumed = false
30     }
31 
32     disableJavaPluginTasks(extensions.getByName("sourceSets") as SourceSetContainer)
33 }
34 
Projectnull35 fun Project.disableJavaPluginTasks(javaSourceSet: SourceSetContainer) {
36     project.tasks.withType(Jar::class.java).named(javaSourceSet.getByName("main").jarTaskName).configure {
37         dependsOn("jvmTest")
38         enabled = false
39     }
40 
41     project.tasks.withType(Test::class.java).named(JavaPlugin.TEST_TASK_NAME) {
42         dependsOn("jvmJar")
43         enabled = false
44     }
45 }
46 
47 
48 afterEvaluate { // Can be applied only when the project is evaluated
<lambda>null49     extensions.configure<AnimalSnifferExtension> {
50         sourceSets = listOf(this@afterEvaluate.sourceSets["main"])
51 
52         val annotationValue = when(name) {
53             "kotlinx-serialization-core" -> "kotlinx.serialization.internal.SuppressAnimalSniffer"
54             "kotlinx-serialization-hocon" -> "kotlinx.serialization.hocon.internal.SuppressAnimalSniffer"
55             "kotlinx-serialization-protobuf" -> "kotlinx.serialization.protobuf.internal.SuppressAnimalSniffer"
56             "kotlinx-serialization-cbor" -> "kotlinx.serialization.cbor.internal.SuppressAnimalSniffer"
57             else -> "kotlinx.serialization.json.internal.SuppressAnimalSniffer"
58         }
59 
60         annotation = annotationValue
61     }
<lambda>null62     dependencies {
63         "signature"("net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature")
64         "signature"("org.codehaus.mojo.signature:java18:1.0@signature")
65     }
66 
67 }