Unverified Commit d4d654df authored by Nikolay Igotti's avatar Nikolay Igotti Committed by GitHub

Make version available in the runtime. (#204)

parent 7d0514fd
......@@ -24,6 +24,7 @@ buildscript {
val skiko = SkikoProperties(rootProject)
val buildType = skiko.buildType
val generatedKotlin = "$buildDir/kotlin/commonMain"
allprojects {
group = "org.jetbrains.skiko"
......@@ -385,6 +386,24 @@ val wasmCompile = project.tasks.register<Exec>("wasmCompile") {
outputs.files(outJs, outWasm)
}
val generateVersion = project.tasks.register("generateVersion") {
val outDir = generatedKotlin
file(outDir).mkdirs()
val out = "$outDir/Version.kt"
outputs.dir(outDir)
doFirst {
val target = "${targetOs.id}-${targetArch.id}"
val skiaTag = project.property("dependencies.skia.$target") as String
File(out).writeText("""
package org.jetbrains.skiko
object Version {
val skiko = "${skiko.deployVersion}"
val skia = "${skiaTag}"
}
""".trimIndent())
}
}
// Very hacky way to compile native bridges and add the
// resulting object files into the final native klib.
project.tasks.register<Exec>("nativeBridgesCompile") {
......@@ -846,6 +865,9 @@ publishing {
afterEvaluate {
tasks.withType<KotlinCompile>().configureEach {
dependsOn(generateVersion)
source(generatedKotlin)
if (name == "compileTestKotlinJvm") {
kotlinOptions.freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn"
}
......
package org.jetbrains.skiko
import org.junit.Test
internal class VersionTest {
@Test
fun `skiko version`() {
assert(org.jetbrains.skiko.Version.skiko.isNotBlank())
}
@Test
fun `skia version`() {
assert( org.jetbrains.skiko.Version.skia.isNotBlank())
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment