Unzip wix to build directory (#2838)

Resolves #2804
This commit is contained in:
Alexey Tsvetkov
2023-04-04 14:18:27 +03:00
committed by GitHub
parent f2fbc7ed30
commit 3483feef2a
3 changed files with 22 additions and 2 deletions

View File

@@ -11,6 +11,7 @@ import org.gradle.api.tasks.Copy
import org.jetbrains.compose.desktop.application.tasks.AbstractJPackageTask
import org.jetbrains.compose.internal.utils.OS
import org.jetbrains.compose.internal.utils.currentOS
import org.jetbrains.compose.internal.utils.ioFile
import java.io.File
internal const val DOWNLOAD_WIX_TOOLSET_TASK_NAME = "downloadWix"
@@ -37,7 +38,7 @@ internal fun JvmApplicationContext.configureWix() {
val wixDir = project.gradle.gradleUserHomeDir.resolve("compose-jb")
val fileName = "wix311"
val zipFile = wixDir.resolve("$fileName.zip")
val unzipDir = root.projectDir.resolve(fileName)
val unzipDir = root.layout.buildDirectory.dir(fileName)
val download = root.tasks.maybeCreate(DOWNLOAD_WIX_TOOLSET_TASK_NAME, Download::class.java).apply {
onlyIf { !zipFile.isFile }
src("https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip")
@@ -46,7 +47,7 @@ internal fun JvmApplicationContext.configureWix() {
val unzip = root.tasks.maybeCreate(UNZIP_WIX_TOOLSET_TASK_NAME, Copy::class.java).apply {
dependsOn(download)
from(project.zipTree(zipFile))
destinationDir = unzipDir
destinationDir = unzipDir.ioFile
}
project.eachWindowsPackageTask {
dependsOn(unzip)

View File

@@ -503,4 +503,19 @@ class DesktopApplicationTest : GradlePluginTestBase() {
check.taskSuccessful(":runDistributable")
}
}
@Test
fun testWixUnzip() {
Assumptions.assumeTrue(currentOS == OS.Windows) { "The test is only relevant for Windows" }
with(testProject(TestProjects.jvm)) {
gradle(":unzipWix").checks {
check.taskSuccessful(":unzipWix")
file("build/wix311").checkExists()
file("build/wix311/light.exe").checkExists()
file("wix311").checkNotExists()
}
}
}
}

View File

@@ -25,4 +25,8 @@ fun File.checkExists(): File = apply {
}
}
}
}
fun File.checkNotExists(): File = apply {
check(!exists()) { "File must not exist: $absolutePath" }
}