X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=build.gradle;h=f5a2182cd942ee9931ee414cf7d549742cd75e36;hb=ae3dafc0a1885ac30935d70a088b10a3940fa02d;hp=b651ab15dc7dd083a7740b0cf533834fabcbd5e0;hpb=0fd7ab01e0f117c2ebe8cdcc54f86ff44507c940;p=jalview.git diff --git a/build.gradle b/build.gradle index b651ab1..f5a2182 100644 --- a/build.gradle +++ b/build.gradle @@ -139,6 +139,11 @@ ext { reportRsyncCommand = false jvlChannelName = CHANNEL.toLowerCase() install4jSuffix = CHANNEL.substring(0, 1).toUpperCase() + CHANNEL.substring(1).toLowerCase(); // BUILD -> Build + install4jDSStore = "DS_Store-NON-RELEASE" + install4jDMGBackgroundImage = "jalview_dmg_background-NON-RELEASE.png" + install4jInstallerName = "${jalview_name} Non-Release Installer" + install4jExecutableName = jalview_name.replaceAll("[^\\w]+", "_").toLowerCase() + install4jExtraScheme = "jalviewx" switch (CHANNEL) { case "BUILD": @@ -151,12 +156,16 @@ ext { if ("".equals(testngExcludedGroups)) { testngExcludedGroups = "Not-bamboo" } + install4jExtraScheme = "jalviewb" break case "RELEASE": getdownAppDistDir = getdown_app_dir_release reportRsyncCommand = true install4jSuffix = "" + install4jDSStore = "DS_Store" + install4jDMGBackgroundImage = "jalview_dmg_background.png" + install4jInstallerName = "${jalview_name} Installer" break case "ARCHIVE": @@ -171,6 +180,7 @@ ext { buildDist = false } reportRsyncCommand = true + install4jExtraScheme = "jalviewa" break case "ARCHIVELOCAL": @@ -187,16 +197,22 @@ ext { reportRsyncCommand = true getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher_local}") install4jSuffix = "Archive" + install4jExtraScheme = "jalviewa" break case "DEVELOP": reportRsyncCommand = true + install4jExtraScheme = "jalviewd" break case "TEST-RELEASE": reportRsyncCommand = true - install4jSuffix = "Test" JALVIEW_VERSION = "TEST" + install4jSuffix = "Test" + install4jDSStore = "DS_Store-TEST-RELEASE" + install4jDMGBackgroundImage = "jalview_dmg_background.png" + install4jExtraScheme = "jalviewt" + install4jInstallerName = "${jalview_name} Test Installer" break case ~/^SCRATCH(|-[-\w]*)$/: @@ -214,13 +230,18 @@ ext { getdownAppBase = file(file("${LOCALDIR}").getAbsolutePath()).toURI().toString() getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher_local}") } - install4jSuffix = "Test-Local" JALVIEW_VERSION = "TEST" + install4jSuffix = "Test-Local" + install4jDSStore = "DS_Store-TEST-RELEASE" + install4jDMGBackgroundImage = "jalview_dmg_background.png" + install4jExtraScheme = "jalviewt" + install4jInstallerName = "${jalview_name} Test Installer" break case "LOCAL": getdownAppBase = file(getdownWebsiteDir).toURI().toString() getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher_local}") + install4jExtraScheme = "jalviewl" break default: // something wrong specified @@ -234,19 +255,33 @@ ext { println("Overriding getdown appbase with '${getdownAppBase}'") } // sanitise file name for jalview launcher file for this channel - jvlChannelName = jvlChannelName.replaceAll("[^\\w\\-]", "_") + jvlChannelName = jvlChannelName.replaceAll("[^\\w\\-]+", "_") // install4j application and folder names if (install4jSuffix == "") { - install4jApplicationName = "${getdown_txt_title}" - install4jApplicationFolder = "${getdown_txt_title}" - install4jUnixApplicationFolder = install4jApplicationFolder.toLowerCase() + install4jApplicationName = "${jalview_name}" + install4jBundleId = "${install4j_bundle_id}" + install4jWinApplicationId = install4j_release_win_application_id } else { - install4jApplicationName = "${getdown_txt_title} ${install4jSuffix}" - install4jApplicationFolder = "${getdown_txt_title} ${install4jSuffix}" - // sanitise folder names - install4jApplicationFolder = install4jApplicationFolder.replaceAll("[\"'~\\.]", "_") - install4jUnixApplicationFolder = install4jApplicationFolder.toLowerCase().replaceAll(" ","-") - } + install4jApplicationName = "${jalview_name} ${install4jSuffix}" + install4jBundleId = "${install4j_bundle_id}-" + install4jSuffix.toLowerCase() + // add int hash of install4jSuffix to the last part of the application_id + def id = install4j_release_win_application_id + def idsplitreverse = id.split("-").reverse() + idsplitreverse[0] = idsplitreverse[0].toInteger() + install4jSuffix.hashCode() + install4jWinApplicationId = idsplitreverse.reverse().join("-") + } + // sanitise folder and id names + // install4jApplicationFolder = e.g. "Jalview Build" + install4jApplicationFolder = install4jApplicationName + .replaceAll("[\"'~:/\\\\\\s]", "_") // replace all awkward filename chars " ' ~ : / \ + .replaceAll("_+", "_") // collapse __ + install4jInternalId = install4jApplicationName + .replaceAll(" ","_") + .replaceAll("[^\\w\\-\\.]", "_") // replace other non [alphanumeric,_,-,.] + .replaceAll("_+", "") // collapse __ + //.replaceAll("_*-_*", "-") // collapse _-_ + install4jUnixApplicationFolder = install4jInternalId + .toLowerCase() getdownAppDir = string("${getdownWebsiteDir}/${getdownAppDistDir}") //getdownJ11libDir = "${getdownWebsiteDir}/${getdown_j11lib_dir}" @@ -1065,7 +1100,7 @@ task getdownWebsite() { } getdownWebsiteResourceFilenames += "${getdownAppDistDir}/${getdown_build_properties}" - // go through properties looking for getdown_txt_... + // set some getdown_txt_ properties then go through all properties looking for getdown_txt_... def props = project.properties.sort { it.key } if (getdownAltJavaMinVersion != null && getdownAltJavaMinVersion.length() > 0) { props.put("getdown_txt_java_min_version", getdownAltJavaMinVersion) @@ -1077,7 +1112,11 @@ task getdownWebsite() { props.put("getdown_txt_multi_java_location", getdownAltMultiJavaLocation) } - props.put("getdown_txt_appbase", getdownAppBase) + props.put("getdown_txt_title", jalview_name) + props.put("getdown_txt_ui.name", install4jApplicationName) + + // start with appbase + getdownTextString += "appbase = ${getdownAppBase}\n" props.each{ prop, val -> if (prop.startsWith("getdown_txt_") && val != null) { if (prop.startsWith("getdown_txt_multi_")) { @@ -1166,7 +1205,7 @@ task getdownWebsite() { def getdownLaunchJvl = getdown_launch_jvl_name + ( (jvlChannelName != null && jvlChannelName.length() > 0)?"-${jvlChannelName}":"" ) + ".jvl" def launchJvl = file("${getdownWebsiteDir}/${getdownLaunchJvl}") - launchJvl.write("appbase="+props.get("getdown_txt_appbase")) + launchJvl.write("appbase=${getdownAppBase}") copy { from getdownLauncher @@ -1379,7 +1418,8 @@ task installers(type: com.install4j.gradle.Install4jTask) { def install4jBuildDir = "${install4j_build_dir}/${JAVA_VERSION}" variables = [ - 'JALVIEW_NAME': install4jApplicationName, + 'JALVIEW_NAME': jalview_name, + 'JALVIEW_APPLICATION_NAME': install4jApplicationName, 'JALVIEW_DIR': "../..", 'OSX_KEYSTORE': OSX_KEYSTORE, 'JSIGN_SH': JSIGN_SH, @@ -1398,8 +1438,12 @@ task installers(type: com.install4j.gradle.Install4jTask) { 'WINDOWS_JAVA_VM_TGZ': windowsJavaVMTgz, 'LINUX_JAVA_VM_TGZ': linuxJavaVMTgz, 'COPYRIGHT_MESSAGE': install4j_copyright_message, - 'MACOS_BUNDLE_ID': install4j_macOS_bundle_id, - 'INSTALLER_NAME': install4j_installer_name, + 'BUNDLE_ID': install4jBundleId, + 'INTERNAL_ID': install4jInternalId, + 'WINDOWS_APPLICATION_ID': install4jWinApplicationId, + 'MACOS_DS_STORE': install4jDSStore, + 'MACOS_DMG_BG_IMAGE': install4jDMGBackgroundImage, + 'INSTALLER_NAME': install4jInstallerName, 'INSTALL4J_UTILS_DIR': install4j_utils_dir, 'GETDOWN_WEBSITE_DIR': getdown_website_dir, 'GETDOWN_FILES_DIR': getdown_files_dir, @@ -1412,8 +1456,13 @@ task installers(type: com.install4j.gradle.Install4jTask) { 'UNIX_DESKTOP_ADDITIONS': install4j_unix_desktop_additions, 'APPLICATION_FOLDER': install4jApplicationFolder, 'UNIX_APPLICATION_FOLDER': install4jUnixApplicationFolder, + 'EXECUTABLE_NAME': install4jExecutableName, + 'EXTRA_SCHEME': install4jExtraScheme, ] + //println("INSTALL4J VARIABLES:") + //variables.each{k,v->println("${k}=${v}")} + destination = "${jalviewDir}/${install4jBuildDir}" buildSelected = true