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