Download d8 using configuration to make use of Gradle dependency caching
#KTI-72
This commit is contained in:
committed by
Space Team
parent
638cbd4d8e
commit
5e39bb97a0
@@ -2654,6 +2654,18 @@
|
||||
<sha256 value="39493c1da24d9f5f160cc3fb6670b9cad023e65ce12a6673af32e47ddcdeb8c3" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="google.d8" name="v8" version="linux64-rel-11.5.99">
|
||||
<artifact name="v8-linux64-rel-11.5.99.zip">
|
||||
<md5 value="c929047b03bf3ddeeffbe7d66c4b83b6" origin="Generated by Gradle"/>
|
||||
<sha256 value="80a2e94cc3606e978dc84516520d75a912c7a9b6d9fab4d520441db384ac34fc" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="google.d8" name="v8" version="win64-rel-11.5.99">
|
||||
<artifact name="v8-win64-rel-11.5.99.zip">
|
||||
<md5 value="1f5984db3f35be3231dffaf7d64ff4e9" origin="Generated by Gradle"/>
|
||||
<sha256 value="edd5199cd6fb8bdf5798a1d108bd7b85da11ba72c28702bb96181212825404bb" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="gradle.plugin.com.github.johnrengelman" name="shadow" version="7.1.2">
|
||||
<artifact name="shadow-7.1.2.jar">
|
||||
<md5 value="0e152cbfd964889d83033c1071488e31" origin="Generated by Gradle"/>
|
||||
|
||||
+2
-1
@@ -10,5 +10,6 @@ data class D8Env(
|
||||
val targetPath: File,
|
||||
val executablePath: File,
|
||||
val isWindows: Boolean,
|
||||
val downloadUrl: URL
|
||||
val downloadUrl: URL,
|
||||
val ivyDependency: String
|
||||
)
|
||||
+2
-1
@@ -60,7 +60,8 @@ open class D8RootExtension(@Transient val rootProject: Project) : ConfigurationP
|
||||
targetPath = targetPath,
|
||||
executablePath = targetPath.resolve(if (isWindows) "d8.exe" else "d8"),
|
||||
isWindows = isWindows,
|
||||
downloadUrl = URL("${downloadBaseUrl.trimEnd('/')}/$requiredZipName"),
|
||||
downloadUrl = URL(downloadBaseUrl),
|
||||
ivyDependency = "google.d8:v8:${D8Platform.platform}-$edition-$version@zip"
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+21
-6
@@ -5,16 +5,17 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.targets.js.d8
|
||||
|
||||
import de.undercouch.gradle.tasks.download.Download
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.plugins.BasePlugin
|
||||
import org.gradle.api.tasks.Copy
|
||||
import org.jetbrains.kotlin.gradle.plugin.whenEvaluated
|
||||
import org.jetbrains.kotlin.gradle.targets.js.MultiplePluginDeclarationDetector
|
||||
import org.jetbrains.kotlin.gradle.targets.js.d8.D8RootExtension.Companion.EXTENSION_NAME
|
||||
import org.jetbrains.kotlin.gradle.tasks.CleanDataTask
|
||||
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
||||
|
||||
|
||||
open class D8RootPlugin : Plugin<Project> {
|
||||
override fun apply(project: Project) {
|
||||
MultiplePluginDeclarationDetector.detect(project)
|
||||
@@ -27,13 +28,27 @@ open class D8RootPlugin : Plugin<Project> {
|
||||
|
||||
val settings = project.extensions.create(EXTENSION_NAME, D8RootExtension::class.java, project)
|
||||
|
||||
val downloadTask = project.registerTask<Download>("${TASKS_GROUP_NAME}Download") {
|
||||
val env = settings.requireConfigured()
|
||||
project.gradle.projectsEvaluated {
|
||||
val downloadUrl = settings.requireConfigured().downloadUrl
|
||||
project.repositories.ivy { repo ->
|
||||
repo.name = "D8 Distributions at $downloadUrl"
|
||||
repo.url = downloadUrl.toURI()
|
||||
repo.patternLayout {
|
||||
it.artifact("[artifact]-[revision].[ext]")
|
||||
}
|
||||
repo.metadataSources { it.artifact() }
|
||||
repo.content { it.includeModule("google.d8", "v8") }
|
||||
}
|
||||
}
|
||||
|
||||
val downloadTask = project.registerTask<Copy>("${TASKS_GROUP_NAME}Download") {
|
||||
it.group = TASKS_GROUP_NAME
|
||||
it.src(env.downloadUrl)
|
||||
it.dest(env.zipPath)
|
||||
it.overwrite(false)
|
||||
it.description = "Download local d8 version"
|
||||
|
||||
val env = settings.requireConfigured()
|
||||
val configuration = project.configurations.detachedConfiguration(project.dependencies.create(env.ivyDependency))
|
||||
it.from(project.provider { configuration.singleFile })
|
||||
it.into(env.zipPath.parentFile)
|
||||
}
|
||||
|
||||
project.registerTask<Copy>(INSTALL_TASK_NAME) {
|
||||
|
||||
Reference in New Issue
Block a user