-
Notifications
You must be signed in to change notification settings - Fork 1.9k
/
Copy pathanimalsniffer-conventions.gradle.kts
39 lines (34 loc) · 1.45 KB
/
animalsniffer-conventions.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import ru.vyarus.gradle.plugin.animalsniffer.*
configure(subprojects) {
// Skip JDK 8 projects or unpublished ones
if (!shouldSniff()) return@configure
apply(plugin = "ru.vyarus.animalsniffer")
project.plugins.withType(JavaPlugin::class.java) {
configure<AnimalSnifferExtension> {
sourceSets = listOf((project.extensions.getByName("sourceSets") as SourceSetContainer).getByName("main"))
}
val signature: Configuration by configurations
dependencies {
signature("net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature")
signature("org.codehaus.mojo.signature:java17:1.0@signature")
}
if (project.name == coreModule) {
// Specific files so nothing from core is accidentally skipped
tasks.withType<AnimalSniffer>().configureEach {
exclude("**/future/FutureKt*")
exclude("**/future/ContinuationHandler*")
exclude("**/future/CompletableFutureCoroutine*")
exclude("**/stream/StreamKt*")
exclude("**/stream/StreamFlow*")
exclude("**/time/TimeKt*")
}
}
}
}
fun Project.shouldSniff(): Boolean {
// Skip all non-JVM projects
if (platformOf(project) != "jvm") return false
val name = project.name
if (name in unpublished || name in sourceless || name in androidNonCompatibleProjects) return false
return true
}