summaryrefslogtreecommitdiff
path: root/buildSrc
diff options
context:
space:
mode:
Diffstat (limited to 'buildSrc')
-rw-r--r--buildSrc/build.gradle.kts2
-rw-r--r--buildSrc/src/main/kotlin/Versions.kt2
-rw-r--r--buildSrc/src/main/kotlin/distribution-conventions.gradle.kts17
-rw-r--r--buildSrc/src/main/kotlin/experiment-conventions.gradle.kts23
4 files changed, 38 insertions, 6 deletions
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
index 94d6b19d..73c4fdf8 100644
--- a/buildSrc/build.gradle.kts
+++ b/buildSrc/build.gradle.kts
@@ -39,10 +39,10 @@ repositories {
dependencies {
implementation(kotlin("gradle-plugin", version = "1.4.31"))
implementation("org.jlleitschuh.gradle:ktlint-gradle:10.0.0")
- implementation("org.jetbrains.dokka:dokka-gradle-plugin:0.10.1")
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("gradle.plugin.com.github.jengelman.gradle.plugins:shadow:7.0.0")
}
tasks.withType<KotlinCompile>().configureEach {
diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt
index 6aa9260b..bb187a40 100644
--- a/buildSrc/src/main/kotlin/Versions.kt
+++ b/buildSrc/src/main/kotlin/Versions.kt
@@ -26,7 +26,6 @@ import org.gradle.api.JavaVersion
import org.gradle.api.Project
import org.gradle.kotlin.dsl.extra
import kotlin.properties.ReadOnlyProperty
-import kotlin.reflect.KProperty
/**
* This class contains the versions of the dependencies shared by the different
@@ -46,6 +45,7 @@ public class Versions(private val project: Project) {
val slf4j by version()
val kotlinLogging by version(name = "kotlin-logging")
val log4j by version()
+ val config by version()
val kotlinxCoroutines by version(name = "kotlinx-coroutines")
diff --git a/buildSrc/src/main/kotlin/distribution-conventions.gradle.kts b/buildSrc/src/main/kotlin/distribution-conventions.gradle.kts
index a0b7593d..57e5b284 100644
--- a/buildSrc/src/main/kotlin/distribution-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/distribution-conventions.gradle.kts
@@ -39,12 +39,23 @@ distributions {
from("README.md")
from("LICENSE.txt")
+ from("docs") { into("docs") }
- // Include the distributions of the sub project.
+ // Include distributions of the subprojects
getTasksByName("assembleDist", true)
.filter { it.project != project }
- .map { it.project.the<DistributionContainer>()["main"] }
- .forEach { with(it.contents) }
+ .map { it.project.name to it.project.the<DistributionContainer>() }
+ .forEach { (name, dist) ->
+ dist.findByName("main")?.let { with(it.contents) }
+
+ // Include experiments if they exist
+ val experiment = dist.findByName("experiment")
+ if (experiment != null) {
+ into("experiments/${name.removePrefix("opendc-experiments-")}") {
+ with(experiment.contents)
+ }
+ }
+ }
}
}
}
diff --git a/buildSrc/src/main/kotlin/experiment-conventions.gradle.kts b/buildSrc/src/main/kotlin/experiment-conventions.gradle.kts
index 4745ff1a..580f67cb 100644
--- a/buildSrc/src/main/kotlin/experiment-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/experiment-conventions.gradle.kts
@@ -1,3 +1,5 @@
+import gradle.kotlin.dsl.accessors._9bf86420fccbde1948375f641de89b70.sourceSets
+
/*
* Copyright (c) 2021 AtLarge Research
*
@@ -22,10 +24,12 @@
plugins {
`java-library`
+ distribution
+ id("com.github.johnrengelman.shadow")
}
dependencies {
- implementation(project(":opendc-harness"))
+ runtimeOnly(project(":opendc-harness:opendc-harness-junit5"))
}
tasks.register<Test>("experiment") {
@@ -38,3 +42,20 @@ tasks.register<Test>("experiment") {
testClassesDirs = sourceSets["main"].output.classesDirs
classpath = sourceSets["main"].runtimeClasspath
}
+
+distributions {
+ create("experiment") {
+ contents {
+ from("README.md")
+ from(tasks.shadowJar.get())
+ }
+ }
+}
+
+tasks.shadowJar {
+ dependencies {
+ // Do not include the JUnit 5 runner in the final shadow jar, since it is only necessary for development
+ // inside IDE
+ exclude(project(":opendc-harness:opendc-harness-junit5"))
+ }
+}