[build scripts] add option to compress cross platform zip with zip64

GitOrigin-RevId: c0b0a09698da558cc7fdb1c8c28d8edc67446b08
This commit is contained in:
Felix Popov
2025-01-03 17:35:23 +00:00
committed by intellij-monorepo-bot
parent ac04b62c7d
commit fb4f988b7e
2 changed files with 13 additions and 1 deletions
@@ -380,6 +380,11 @@ data class BuildOptions(
*/
var useLocalLauncher: Boolean = false
/**
* When `true`, cross-platform distribution will be packed using zip64 in AlwaysWithCompatibility mode
*/
var useZip64ForCrossPlatformDistribution: Boolean = getBooleanProperty("intellij.build.cross.platform.dist.zip64", false)
/**
* Pass `true` to this system property to produce .snap packages.
* A build configuration should have "docker.version >= 17" in requirements.
@@ -901,7 +901,14 @@ private fun crossPlatformZip(
writeNewFile(targetFile) { outFileChannel ->
NoDuplicateZipArchiveOutputStream(outFileChannel, context.options.compressZipFiles).use { out ->
out.setUseZip64(Zip64Mode.Never)
out.setUseZip64(
if (context.options.useZip64ForCrossPlatformDistribution) {
Zip64Mode.AlwaysWithCompatibility
}
else {
Zip64Mode.Never
}
)
// for the `bin/` directory layout, see `PathManager.getBinDirectories(Path)`