From a3bc229085a6b8b955c7d486b2e75558ce5349f1 Mon Sep 17 00:00:00 2001 From: Leonid Shalupov Date: Tue, 25 Jul 2017 21:15:46 +0300 Subject: [PATCH] builds scripts: allow Linux's .tar.gz and Mac's .zip to be skipped This may be needed e.g. to build cross-platform distribution only. --- .../intellij/build/BuildOptions.groovy | 4 ++++ .../impl/LinuxDistributionBuilder.groovy | 22 ++++++++++--------- .../build/impl/MacDistributionBuilder.groovy | 20 +++++++++-------- 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/BuildOptions.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/BuildOptions.groovy index 211312a7ac45..72b2dd3f65e0 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/BuildOptions.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/BuildOptions.groovy @@ -52,8 +52,12 @@ class BuildOptions { static final SEARCHABLE_OPTIONS_INDEX_STEP = "search_index" static final PROVIDED_MODULES_LIST_STEP = "provided_modules_list" static final SOURCES_ARCHIVE_STEP = "sources_archive" + /** build Mac OS X artifacts */ + static final MAC_ARTIFACTS = "mac_artifacts" /** product DMG file for Mac OS X. If it is skipped only sit archive will be produced. */ static final MAC_DMG_STEP = "mac_dmg" + /** product TAR.GZ file for Linux. */ + static final LINUX_TAR_GZ_STEP = "linux_targz" /** sign additional binary files in Mac OS X distribution */ static final MAC_SIGN_STEP = "mac_sign" /** create *.exe installer for Windows distribution. If it is skipped only zip archive will be produced. */ diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy index e34feb20fd26..9bbf900decb9 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy @@ -66,16 +66,18 @@ class LinuxDistributionBuilder extends OsSpecificDistributionBuilder { @Override void buildArtifacts(String osSpecificDistPath) { - if (customizer.buildTarGzWithoutBundledJre) { - buildTarGz(null, osSpecificDistPath) - } - def jreDirectoryPath = buildContext.bundledJreManager.extractLinuxJre() - if (jreDirectoryPath != null) { - buildTarGz(jreDirectoryPath, osSpecificDistPath) - buildSnapPackage(jreDirectoryPath, osSpecificDistPath) - } - else { - buildContext.messages.info("Skipping building Linux distribution with bundled JRE because JRE archive is missing") + buildContext.executeStep("Build Linux .tar.gz", BuildOptions.LINUX_TAR_GZ_STEP) { + if (customizer.buildTarGzWithoutBundledJre) { + buildTarGz(null, osSpecificDistPath) + } + def jreDirectoryPath = buildContext.bundledJreManager.extractLinuxJre() + if (jreDirectoryPath != null) { + buildTarGz(jreDirectoryPath, osSpecificDistPath) + buildSnapPackage(jreDirectoryPath, osSpecificDistPath) + } + else { + buildContext.messages.info("Skipping building Linux distribution with bundled JRE because JRE archive is missing") + } } } diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/MacDistributionBuilder.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/MacDistributionBuilder.groovy index bccc804fba36..bd00ee0721d9 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/MacDistributionBuilder.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/MacDistributionBuilder.groovy @@ -93,15 +93,17 @@ class MacDistributionBuilder extends OsSpecificDistributionBuilder { @Override void buildArtifacts(String osSpecificDistPath) { - def macZipPath = buildMacZip(osSpecificDistPath) - if (buildContext.proprietaryBuildTools.macHostProperties == null) { - buildContext.messages.info("A Mac OS build agent isn't configured, dmg artifact won't be produced") - buildContext.notifyArtifactBuilt(macZipPath) - } - else { - buildContext.executeStep("Build dmg artifact for Mac OS X", BuildOptions.MAC_DMG_STEP) { - MacDmgBuilder.signAndBuildDmg(buildContext, customizer, buildContext.proprietaryBuildTools.macHostProperties, macZipPath) - buildContext.ant.delete(file: macZipPath) + buildContext.executeStep("Build artifacts for Mac OS X", BuildOptions.MAC_ARTIFACTS) { + def macZipPath = buildMacZip(osSpecificDistPath) + if (buildContext.proprietaryBuildTools.macHostProperties == null) { + buildContext.messages.info("A Mac OS build agent isn't configured, dmg artifact won't be produced") + buildContext.notifyArtifactBuilt(macZipPath) + } + else { + buildContext.executeStep("Build dmg artifact for Mac OS X", BuildOptions.MAC_DMG_STEP) { + MacDmgBuilder.signAndBuildDmg(buildContext, customizer, buildContext.proprietaryBuildTools.macHostProperties, macZipPath) + buildContext.ant.delete(file: macZipPath) + } } } }