summaryrefslogtreecommitdiff
path: root/simulator/buildSrc/src/main/kotlin/Versions.kt
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-02-23 12:05:59 +0100
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-02-23 12:12:36 +0100
commit90de768b8bfb3acc222f508d2e602ef3b7f1ff91 (patch)
tree577a96ec45e245d1a1184a5158495c2289ae004c /simulator/buildSrc/src/main/kotlin/Versions.kt
parent0b092b352dc29ce69f6f126eb7857a1243a6ef62 (diff)
Move dependency versions to gradle.properties
This change moves the version of the dependencies from buildSrc to gradle.properties to prevent recompilation when changing dependency versions.
Diffstat (limited to 'simulator/buildSrc/src/main/kotlin/Versions.kt')
-rw-r--r--simulator/buildSrc/src/main/kotlin/Versions.kt41
1 files changed, 27 insertions, 14 deletions
diff --git a/simulator/buildSrc/src/main/kotlin/Versions.kt b/simulator/buildSrc/src/main/kotlin/Versions.kt
index d845c4bd..fcf3c778 100644
--- a/simulator/buildSrc/src/main/kotlin/Versions.kt
+++ b/simulator/buildSrc/src/main/kotlin/Versions.kt
@@ -22,29 +22,42 @@
* SOFTWARE.
*/
+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
* subprojects.
*/
-public object Versions {
-
+public class Versions(private val project: Project) {
/**
- * The library for testing the projects.
+ * A delegate for obtaining configuration values from a [Project] instance.
*/
- val JUNIT_JUPITER = "5.7.1"
+ private fun version(name: String? = null): ReadOnlyProperty<Versions, String> =
+ ReadOnlyProperty { _, property -> get(name ?: property.name) }
- /**
- * The library for hosting the tests.
- */
- val JUNIT_PLATFORM = "1.7.1"
+ val junitJupiter by version(name = "junit-jupiter")
+ val junitPlatform by version(name = "junit-platform")
+
+ val slf4j by version()
+ val kotlinLogging by version(name = "kotlin-logging")
+ val log4j by version()
+
+ val kotlinxCoroutines by version(name = "kotlinx-coroutines")
- /**
- * Logging facade.
- */
- val SLF4J = "1.7.30"
/**
- * Kotlin coroutines support
+ * Obtain the version for the specified [dependency][name].
*/
- val KOTLINX_COROUTINES = "1.4.2"
+ operator fun get(name: String) = project.extra.get("$name.version") as String
+
+ companion object {
+ /**
+ * The JVM version to target.
+ */
+ val jvmTarget = JavaVersion.VERSION_1_8
+ }
}