Browse Source

Unzip wix to build directory (#2838)

Resolves #2804
pull/2973/head
Alexey Tsvetkov 2 years ago committed by GitHub
parent
commit
3483feef2a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/wixToolset.kt
  2. 15
      gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/DesktopApplicationTest.kt
  3. 4
      gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/fileUtils.kt

5
gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/wixToolset.kt

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

15
gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/DesktopApplicationTest.kt

@ -503,4 +503,19 @@ class DesktopApplicationTest : GradlePluginTestBase() {
check.taskSuccessful(":runDistributable") 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()
}
}
}
} }

4
gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/fileUtils.kt

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