aboutsummaryrefslogtreecommitdiff
path: root/java9/build.gradle.kts
blob: 5a163a4e09b61057f506e5838fa3e7dd20d5d58e (plain)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import net.ltgt.gradle.errorprone.errorprone

plugins {
    id("io.github.reyerizo.gradle.jcstress")
}

buildscript {
    extra.apply{
        set("moduleName", "io.perfmark.javanine")
    }
}

val jdkVersion = JavaVersion.VERSION_1_9

description = "PerfMark Java9 API"

sourceSets {
    create("jmh")
}

val jmhImplementation by configurations.getting {
    extendsFrom(configurations.implementation.get())
}

val jmhAnnotationProcessor by configurations.getting {
    extendsFrom(configurations.annotationProcessor.get())
}

dependencies {
    implementation(project(":perfmark-impl"))
    compileOnly(libs.jsr305)

    testImplementation(project(":perfmark-api"))
    testImplementation(project(":perfmark-testing"))
    jcstressImplementation(project(":perfmark-impl"))

    jmhImplementation(project(":perfmark-api"))
    jmhImplementation(project(":perfmark-impl"))
    jmhImplementation(project(":perfmark-java9"))
    jmhImplementation(project(":perfmark-testing"))
    jmhImplementation(libs.junit)
    jmhImplementation(libs.jmhcore)
    jmhAnnotationProcessor(libs.jmhanno)
}

tasks.named<JavaCompile>("compileJava") {
    sourceCompatibility = jdkVersion.toString()
    targetCompatibility = jdkVersion.toString()
}

tasks.named<JavaCompile>("compileJmhJava") {
    sourceCompatibility = JavaVersion.VERSION_11.toString()
    targetCompatibility = JavaVersion.VERSION_11.toString()
    options.errorprone.excludedPaths.set(".*/build/generated/sources/annotationProcessor/.*")

}

tasks.register<Test>("jmh") {
    description = "Runs integration tests."
    group = "stress"

    testClassesDirs = sourceSets["jmh"].output.classesDirs
    classpath = sourceSets["jmh"].runtimeClasspath

    javaLauncher.set(javaToolchains.launcherFor({
        languageVersion.set(JavaLanguageVersion.of("11"))
    }))
}


tasks.named<Jar>("jar") {
    exclude("io/perfmark/java9/Internal*")
}

tasks.named<Javadoc>("javadoc") {
    exclude("io/perfmark/java9/**")
}

//  ./gradlew --no-daemon clean :perfmark-java9:jcstress
jcstress {
    jcstressDependency = "org.openjdk.jcstress:jcstress-core:0.5"
    // mode "tough"
    deoptRatio = "2"
}

tasks.named<JavaCompile>("compileJcstressJava") {
    options.errorprone.excludedPaths.set(".*/build/generated/sources/annotationProcessor/.*")
}