mirror of
https://github.com/apple/pkl.git
synced 2026-07-10 15:12:43 +02:00
87ec8ee730
Enable the configuration cache feature in Gradle, and adjust various pieces of build logic that aren't configuration cache compatible.
88 lines
2.7 KiB
Kotlin
88 lines
2.7 KiB
Kotlin
/*
|
|
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* https://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
import de.undercouch.gradle.tasks.download.Download
|
|
import de.undercouch.gradle.tasks.download.Verify
|
|
|
|
plugins { id("de.undercouch.download") }
|
|
|
|
val buildInfo = project.extensions.getByType<BuildInfo>()
|
|
|
|
// tries to minimize chance of corruption by download-to-temp-file-and-move
|
|
val downloadGraalVmAarch64 by
|
|
tasks.registering(Download::class) { configureDownloadGraalVm(buildInfo.graalVmAarch64) }
|
|
|
|
val downloadGraalVmAmd64 by
|
|
tasks.registering(Download::class) { configureDownloadGraalVm(buildInfo.graalVmAmd64) }
|
|
|
|
fun Download.configureDownloadGraalVm(graalvm: BuildInfo.GraalVm) {
|
|
val installDir = graalvm.installDir
|
|
val downloadFile = graalvm.downloadFile
|
|
onlyIf { !installDir.exists() }
|
|
doLast { println("Downloaded GraalVm to $downloadFile") }
|
|
|
|
src(graalvm.downloadUrl)
|
|
dest(downloadFile)
|
|
overwrite(false)
|
|
tempAndMove(true)
|
|
}
|
|
|
|
val verifyGraalVmAarch64 by
|
|
tasks.registering(Verify::class) {
|
|
configureVerifyGraalVm(buildInfo.graalVmAarch64)
|
|
dependsOn(downloadGraalVmAarch64)
|
|
}
|
|
|
|
val verifyGraalVmAmd64 by
|
|
tasks.registering(Verify::class) {
|
|
configureVerifyGraalVm(buildInfo.graalVmAmd64)
|
|
dependsOn(downloadGraalVmAmd64)
|
|
}
|
|
|
|
fun Verify.configureVerifyGraalVm(graalvm: BuildInfo.GraalVm) {
|
|
val installDir = graalvm.installDir
|
|
onlyIf { !installDir.exists() }
|
|
|
|
src(graalvm.downloadFile)
|
|
checksum(
|
|
buildInfo.libs.findVersion("graalVmSha256-${graalvm.osName}-${graalvm.arch}").get().toString()
|
|
)
|
|
algorithm("SHA-256")
|
|
}
|
|
|
|
// incorrect diagnostic
|
|
@Suppress("UnusedReceiverParameter")
|
|
fun InstallGraalVm.configureInstallGraalVm(graalVm: BuildInfo.GraalVm) {
|
|
homeDir = graalVm.homeDir
|
|
downloadFile = graalVm.downloadFile
|
|
version = graalVm.version
|
|
graalVmJdkVersion = graalVm.graalVmJdkVersion
|
|
installDir = graalVm.installDir
|
|
}
|
|
|
|
@Suppress("unused")
|
|
val installGraalVmAarch64 by
|
|
tasks.registering(InstallGraalVm::class) {
|
|
dependsOn(verifyGraalVmAarch64)
|
|
configureInstallGraalVm(buildInfo.graalVmAarch64)
|
|
}
|
|
|
|
@Suppress("unused")
|
|
val installGraalVmAmd64 by
|
|
tasks.registering(InstallGraalVm::class) {
|
|
dependsOn(verifyGraalVmAmd64)
|
|
configureInstallGraalVm(buildInfo.graalVmAmd64)
|
|
}
|