Build: Download jshell using configuration

This commit is contained in:
Vyacheslav Gerasimov
2023-06-02 12:37:25 +02:00
committed by Space Team
parent 965b00549f
commit d5831587fb
2 changed files with 74 additions and 48 deletions
+14
View File
@@ -8813,6 +8813,20 @@
<sha256 value="05165e53fd9aeb774f95178c85740c3ee9ea72a9ca489497df837cc397a5da06" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.mozilla" name="jsshell" version="2023-05-12-09-49-14-mozilla-central">
<artifact name="jsshell-2023-05-12-09-49-14-mozilla-central-linux-x86_64.zip">
<md5 value="89dc0de9e0f43be8a79773091bbcc360" origin="Generated by Gradle"/>
<sha256 value="975cd4a1e56705ba9cad53b694fb76547cc458096e460138043db3be70614f49" origin="Generated by Gradle"/>
</artifact>
<artifact name="jsshell-2023-05-12-09-49-14-mozilla-central-mac.zip">
<md5 value="75436dc4f38a846342559048624d64e7" origin="Generated by Gradle"/>
<sha256 value="3fb3b24b3b91275a69f0d8b1021bfa5e4ca5603afa62be8b42cde011f9fc2189" origin="Generated by Gradle"/>
</artifact>
<artifact name="jsshell-2023-05-12-09-49-14-mozilla-central-win64.zip">
<md5 value="284986d7035bc4a61be0085b3c500a80" origin="Generated by Gradle"/>
<sha256 value="11cff20bd4ad5fb34d330c5852f638fec889bc70db574677a0d4ea7d956f99ef" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.nodejs" name="node" version="16.13.0">
<artifact name="node-16.13.0-darwin-arm64.tar.gz">
<md5 value="e8b6901932683ae9c6d0d24b379cdf82" origin="Generated by Gradle"/>
+60 -48
View File
@@ -1,11 +1,63 @@
import org.gradle.internal.os.OperatingSystem
import de.undercouch.gradle.tasks.download.Download
import java.net.URI
import java.util.*
plugins {
kotlin("jvm")
id("jps-compatible")
id("de.undercouch.download")
}
repositories {
ivy {
url = URI("https://archive.mozilla.org/pub/firefox/nightly/")
patternLayout {
artifact("2023/05/[revision]/[artifact]-[classifier].[ext]")
}
metadataSources { artifact() }
content { includeModule("org.mozilla", "jsshell") }
}
}
enum class OsName { WINDOWS, MAC, LINUX, UNKNOWN }
enum class OsArch { X86_32, X86_64, ARM64, UNKNOWN }
data class OsType(val name: OsName, val arch: OsArch)
val currentOsType = run {
val gradleOs = OperatingSystem.current()
val osName = when {
gradleOs.isMacOsX -> OsName.MAC
gradleOs.isWindows -> OsName.WINDOWS
gradleOs.isLinux -> OsName.LINUX
else -> OsName.UNKNOWN
}
val osArch = when (providers.systemProperty("sun.arch.data.model").forUseAtConfigurationTime().get()) {
"32" -> OsArch.X86_32
"64" -> when (providers.systemProperty("os.arch").forUseAtConfigurationTime().get().toLowerCase()) {
"aarch64" -> OsArch.ARM64
else -> OsArch.X86_64
}
else -> OsArch.UNKNOWN
}
OsType(osName, osArch)
}
val jsShellVersion = "2023-05-12-09-49-14-mozilla-central"
val jsShellSuffix = when (currentOsType) {
OsType(OsName.LINUX, OsArch.X86_32) -> "linux-i686"
OsType(OsName.LINUX, OsArch.X86_64) -> "linux-x86_64"
OsType(OsName.MAC, OsArch.X86_64),
OsType(OsName.MAC, OsArch.ARM64) -> "mac"
OsType(OsName.WINDOWS, OsArch.X86_32) -> "win32"
OsType(OsName.WINDOWS, OsArch.X86_64) -> "win64"
else -> error("unsupported os type $currentOsType")
}
val jsShell by configurations.creating {
isCanBeResolved = true
isCanBeConsumed = false
}
dependencies {
@@ -13,6 +65,8 @@ dependencies {
testApi(projectTests(":compiler:tests-common"))
testApi(projectTests(":compiler:tests-common-new"))
testApi(intellijCore())
jsShell("org.mozilla:jsshell:$jsShellVersion:$jsShellSuffix@zip")
}
val generationRoot = projectDir.resolve("tests-gen")
@@ -52,55 +106,13 @@ fun Test.setupGradlePropertiesForwarding() {
}
}
enum class OsName { WINDOWS, MAC, LINUX, UNKNOWN }
enum class OsArch { X86_32, X86_64, ARM64, UNKNOWN }
data class OsType(val name: OsName, val arch: OsArch)
val currentOsType = run {
val gradleOs = OperatingSystem.current()
val osName = when {
gradleOs.isMacOsX -> OsName.MAC
gradleOs.isWindows -> OsName.WINDOWS
gradleOs.isLinux -> OsName.LINUX
else -> OsName.UNKNOWN
}
val osArch = when (providers.systemProperty("sun.arch.data.model").forUseAtConfigurationTime().get()) {
"32" -> OsArch.X86_32
"64" -> when (providers.systemProperty("os.arch").forUseAtConfigurationTime().get().toLowerCase()) {
"aarch64" -> OsArch.ARM64
else -> OsArch.X86_64
}
else -> OsArch.UNKNOWN
}
OsType(osName, osArch)
}
val jsShellVersion = "2023-05-12-09-49-14-mozilla-central"
val jsShellDirectory = "https://archive.mozilla.org/pub/firefox/nightly/2023/05/$jsShellVersion"
val jsShellSuffix = when (currentOsType) {
OsType(OsName.LINUX, OsArch.X86_32) -> "linux-i686"
OsType(OsName.LINUX, OsArch.X86_64) -> "linux-x86_64"
OsType(OsName.MAC, OsArch.X86_64),
OsType(OsName.MAC, OsArch.ARM64) -> "mac"
OsType(OsName.WINDOWS, OsArch.X86_32) -> "win32"
OsType(OsName.WINDOWS, OsArch.X86_64) -> "win64"
else -> error("unsupported os type $currentOsType")
}
val jsShellLocation = "$jsShellDirectory/jsshell-$jsShellSuffix.zip"
val downloadedTools = File(buildDir, "tools")
val downloadJsShell by task<Download> {
src(jsShellLocation)
dest(File(downloadedTools, "jsshell-$jsShellSuffix-$jsShellVersion.zip"))
overwrite(false)
}
val unzipJsShell by task<Copy> {
dependsOn(downloadJsShell)
from(zipTree(downloadJsShell.get().dest))
dependsOn(jsShell)
from {
zipTree(jsShell.singleFile)
}
val unpackedDir = File(downloadedTools, "jsshell-$jsShellSuffix-$jsShellVersion")
into(unpackedDir)
}