summaryrefslogtreecommitdiff
path: root/buildSrc
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-10-25 14:53:54 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-10-25 14:53:54 +0200
commitaa9b32f8cd1467e9718959f400f6777e5d71737d (patch)
treeb88bbede15108c6855d7f94ded4c7054df186a72 /buildSrc
parenteb0e0a3bc557c05a70eead388797ab850ea87366 (diff)
parentb7a71e5b4aa77b41ef41deec2ace42b67a5a13a7 (diff)
merge: Integrate v2.1 progress into public repository
This pull request integrates the changes planned for the v2.1 release of OpenDC into the public Github repository in order to sync the progress of both repositories.
Diffstat (limited to 'buildSrc')
-rw-r--r--buildSrc/build.gradle.kts18
-rw-r--r--buildSrc/src/main/kotlin/Libs.kt2
-rw-r--r--buildSrc/src/main/kotlin/benchmark-conventions.gradle.kts38
-rw-r--r--buildSrc/src/main/kotlin/experiment-conventions.gradle.kts2
-rw-r--r--buildSrc/src/main/kotlin/jacoco-aggregation.gradle.kts10
-rw-r--r--buildSrc/src/main/kotlin/jacoco-conventions.gradle.kts35
-rw-r--r--buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts2
-rw-r--r--buildSrc/src/main/kotlin/testing-conventions.gradle.kts10
8 files changed, 22 insertions, 95 deletions
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
index 3b793a61..4eb8ac31 100644
--- a/buildSrc/build.gradle.kts
+++ b/buildSrc/build.gradle.kts
@@ -20,8 +20,6 @@
* SOFTWARE.
*/
-import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
-
plugins {
`kotlin-dsl`
}
@@ -33,16 +31,10 @@ repositories {
}
dependencies {
- implementation(kotlin("gradle-plugin", version = "1.4.31"))
- implementation("org.jlleitschuh.gradle:ktlint-gradle:10.0.0")
- implementation("org.jetbrains.kotlin:kotlin-allopen:1.4.31")
- implementation("org.jetbrains.kotlinx:kotlinx-benchmark-plugin:0.3.0")
- implementation("org.jetbrains.dokka:dokka-gradle-plugin:1.4.32")
+ implementation(kotlin("gradle-plugin", version = "1.5.30"))
+ implementation("org.jlleitschuh.gradle:ktlint-gradle:10.1.0")
+ implementation("org.jetbrains.kotlin:kotlin-allopen:1.5.30")
+ implementation("me.champeau.jmh:jmh-gradle-plugin:0.6.6")
+ implementation("org.jetbrains.dokka:dokka-gradle-plugin:1.5.0")
implementation("gradle.plugin.com.github.jengelman.gradle.plugins:shadow:7.0.0")
}
-
-tasks.withType<KotlinCompile>().configureEach {
- kotlinOptions {
- allWarningsAsErrors = true
- }
-}
diff --git a/buildSrc/src/main/kotlin/Libs.kt b/buildSrc/src/main/kotlin/Libs.kt
index 9567845a..f538b1ad 100644
--- a/buildSrc/src/main/kotlin/Libs.kt
+++ b/buildSrc/src/main/kotlin/Libs.kt
@@ -58,6 +58,6 @@ public class Libs(project: Project) {
/**
* The JVM version to target.
*/
- val jvmTarget = JavaVersion.VERSION_1_8
+ val jvmTarget = JavaVersion.VERSION_11
}
}
diff --git a/buildSrc/src/main/kotlin/benchmark-conventions.gradle.kts b/buildSrc/src/main/kotlin/benchmark-conventions.gradle.kts
index 4e73d4d3..65608e8f 100644
--- a/buildSrc/src/main/kotlin/benchmark-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/benchmark-conventions.gradle.kts
@@ -20,49 +20,21 @@
* SOFTWARE.
*/
-import kotlinx.benchmark.gradle.*
import org.jetbrains.kotlin.allopen.gradle.*
plugins {
- id("org.jetbrains.kotlinx.benchmark")
`java-library`
kotlin("plugin.allopen")
-}
-
-sourceSets {
- register("jmh") {
- compileClasspath += sourceSets["main"].output
- runtimeClasspath += sourceSets["main"].output
- }
-}
-
-configurations {
- named("jmhImplementation") {
- extendsFrom(configurations["implementation"])
- }
+ id("me.champeau.jmh")
}
configure<AllOpenExtension> {
annotation("org.openjdk.jmh.annotations.State")
}
-benchmark {
- targets {
- register("jmh") {
- this as JvmBenchmarkTarget
- jmhVersion = "1.21"
- }
- }
-}
-
-dependencies {
- val libs = Libs(project)
- implementation(libs["kotlinx-benchmark-runtime-jvm"])
-}
+jmh {
+ jmhVersion.set("1.33")
-// Workaround for https://github.com/Kotlin/kotlinx-benchmark/issues/39
-afterEvaluate {
- tasks.named<org.gradle.jvm.tasks.Jar>("jmhBenchmarkJar") {
- duplicatesStrategy = DuplicatesStrategy.EXCLUDE
- }
+ profilers.add("stack")
+ profilers.add("gc")
}
diff --git a/buildSrc/src/main/kotlin/experiment-conventions.gradle.kts b/buildSrc/src/main/kotlin/experiment-conventions.gradle.kts
index 26780205..c1750a40 100644
--- a/buildSrc/src/main/kotlin/experiment-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/experiment-conventions.gradle.kts
@@ -1,5 +1,3 @@
-import gradle.kotlin.dsl.accessors._9bf86420fccbde1948375f641de89b70.sourceSets
-
/*
* Copyright (c) 2021 AtLarge Research
*
diff --git a/buildSrc/src/main/kotlin/jacoco-aggregation.gradle.kts b/buildSrc/src/main/kotlin/jacoco-aggregation.gradle.kts
index 3e8aa741..5afd3e0d 100644
--- a/buildSrc/src/main/kotlin/jacoco-aggregation.gradle.kts
+++ b/buildSrc/src/main/kotlin/jacoco-aggregation.gradle.kts
@@ -1,7 +1,5 @@
/*
- * MIT License
- *
- * Copyright (c) 2019 atlarge-research
+ * Copyright (c) 2021 AtLarge Research
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -37,10 +35,10 @@ tasks.register<JacocoReport>("codeCoverageReport") {
description = "Generates an aggregate report based on all subprojects"
reports {
- xml.isEnabled = true
- xml.destination = file("${buildDir}/reports/jacoco/report.xml")
+ xml.required.set(true)
+ xml.outputLocation.set(file("${buildDir}/reports/jacoco/report.xml"))
- html.isEnabled = true
+ html.required.set(true)
}
subprojects {
diff --git a/buildSrc/src/main/kotlin/jacoco-conventions.gradle.kts b/buildSrc/src/main/kotlin/jacoco-conventions.gradle.kts
index d0534d4f..6fb9ccc3 100644
--- a/buildSrc/src/main/kotlin/jacoco-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/jacoco-conventions.gradle.kts
@@ -27,39 +27,6 @@ plugins {
tasks.jacocoTestReport {
reports {
- html.isEnabled = true
+ html.required.set(true)
}
}
-
-/* Share sources folder with other projects for aggregated JaCoCo reports */
-configurations.create("transitiveSourcesElements") {
- isVisible = false
- isCanBeResolved = false
- isCanBeConsumed = true
- extendsFrom(configurations.implementation.get())
- attributes {
- attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME))
- attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION))
- attribute(DocsType.DOCS_TYPE_ATTRIBUTE, objects.named("source-folders"))
- }
- sourceSets.main.get().java.srcDirs.forEach {
- outgoing.artifact(it)
- }
-}
-
-/* Share the coverage data to be aggregated for the whole product */
-configurations.create("coverageDataElements") {
- isVisible = false
- isCanBeResolved = false
- isCanBeConsumed = true
- extendsFrom(configurations.implementation.get())
- attributes {
- attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME))
- attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION))
- attribute(DocsType.DOCS_TYPE_ATTRIBUTE, objects.named("jacoco-coverage-data"))
- }
- // This will cause the test task to run if the coverage data is requested by the aggregation task
- outgoing.artifact(tasks.test.map { task ->
- task.extensions.getByType<JacocoTaskExtension>().destinationFile!!
- })
-}
diff --git a/buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts b/buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts
index 703e9938..6e4cab89 100644
--- a/buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts
@@ -39,6 +39,6 @@ java {
tasks.withType<KotlinCompile>().configureEach {
kotlinOptions.jvmTarget = Libs.jvmTarget.toString()
- kotlinOptions.useIR = true
kotlinOptions.freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn"
+ kotlinOptions.freeCompilerArgs += "-Xjvm-default=all"
}
diff --git a/buildSrc/src/main/kotlin/testing-conventions.gradle.kts b/buildSrc/src/main/kotlin/testing-conventions.gradle.kts
index 7d344500..ebeb58a4 100644
--- a/buildSrc/src/main/kotlin/testing-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/testing-conventions.gradle.kts
@@ -28,16 +28,16 @@ tasks.test {
useJUnitPlatform()
reports {
- html.isEnabled = true
- junitXml.isEnabled = true
+ html.required.set(true)
+ junitXml.required.set(true)
}
}
dependencies {
val libs = Libs(project)
- testImplementation(libs["junit-jupiter-api"])
- testImplementation(libs["junit-jupiter-params"])
+ testImplementation(libs["junit.jupiter.api"])
+ testImplementation(libs["junit.jupiter.params"])
testImplementation(libs["mockk"])
- testRuntimeOnly(libs["junit-jupiter-engine"])
+ testRuntimeOnly(libs["junit.jupiter.engine"])
}