Unverified Commit 3647cb87 authored by Nikolay Igotti's avatar Nikolay Igotti Committed by GitHub

Make compilation more cross-friendly. (#43)

parent 91e9bd02
......@@ -36,12 +36,12 @@ repositories {
}
val skiaZip = run {
val zipName = skiko.skiaReleaseForCurrentOS + ".zip"
val zipName = skiko.skiaReleaseForTargetOS + ".zip"
val zipFile = skiko.dependenciesDir.resolve("skia/${zipName.substringAfterLast('/')}")
tasks.register("downloadSkia", Download::class) {
onlyIf { skiko.skiaDir == null && !zipFile.exists() }
inputs.property("skia.release.for.current.os", skiko.skiaReleaseForCurrentOS)
inputs.property("skia.release.for.target.os", skiko.skiaReleaseForTargetOS)
src("https://github.com/JetBrains/skia-build/releases/download/$zipName")
dest(zipFile)
onlyIfModified(true)
......@@ -117,8 +117,6 @@ val skijaDir = run {
}
}
val lombok by configurations.creating
val jetbrainsAnnotations by configurations.creating
dependencies {
......@@ -434,9 +432,9 @@ val skikoJvmJar: Provider<Jar> by tasks.registering(Jar::class) {
}
val createChecksums by project.tasks.registering(org.gradle.crypto.checksum.Checksum::class) {
val linkTask = project.tasks.named("link${buildType.id}${targetOs.id.capitalize()}")
val linkTask = project.tasks.withType(LinkSharedLibrary::class.java).single { it.name.contains(buildType.id) }
dependsOn(linkTask)
files = linkTask.get().outputs.files.filter { it.isFile } +
files = linkTask.outputs.files.filter { it.isFile } +
if (targetOs.isWindows) files(skiaDir.map { it.resolve("out/${buildType.id}-x64/icudtl.dat") }) else files()
algorithm = Checksum.Algorithm.SHA256
outputDir = file("$buildDir/checksums")
......@@ -446,9 +444,8 @@ val skikoJvmRuntimeJar by project.tasks.registering(Jar::class) {
archiveBaseName.set("skiko-$target")
dependsOn(createChecksums)
from(skikoJvmJar.map { zipTree(it.archiveFile) })
from(project.tasks.named("link${buildType.id}${targetOs.id.capitalize()}").map {
it.outputs.files.filter { it.isFile }
})
val linkTask = project.tasks.withType(LinkSharedLibrary::class.java).single { it.name.contains(buildType.id) }
from(linkTask).outputs.files.filter { it.isFile }
if (targetOs.isWindows) {
from(files(skiaDir.map { it.resolve("out/${buildType.id}-x64/icudtl.dat") }))
}
......@@ -552,7 +549,7 @@ publishing {
}
}
create<MavenPublication>("skikoJvmRuntime") {
artifactId = SkikoArtifacts.runtimeArtifactIdFor(hostOs, hostArch)
artifactId = SkikoArtifacts.runtimeArtifactIdFor(targetOs, targetArch)
afterEvaluate {
artifact(skikoJvmRuntimeJar.map { it.archiveFile.get() })
}
......
......@@ -47,8 +47,21 @@ val hostArch by lazy {
}
}
val targetOs = hostOs
val targetArch = hostArch
fun findTargetOs() = when (System.getProperty("skiko.target.os.name")) {
"linux" -> OS.Linux
"macos" -> OS.MacOS
"windows" -> OS.Windows
else -> null
}
fun findTargetArch() = when (System.getProperty("skiko.target.os.arch")) {
"x64" -> Arch.X64
"arm64" -> Arch.Arm64
else -> null
}
val targetOs = findTargetOs() ?: hostOs
val targetArch = findTargetArch() ?: hostArch
val target = targetId(targetOs, targetArch)
......@@ -73,7 +86,7 @@ class SkikoProperties(private val myProject: Project) {
val skijaCommitHash: String
get() = myProject.property("dependencies.skija.git.commit") as String
val skiaReleaseForCurrentOS: String
val skiaReleaseForTargetOS: String
get() = (myProject.property("dependencies.skia.$target") as String)
val releaseGithubVersion: String
......
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