X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=build.gradle;h=9b1eb69d2daddc1d9da951f3b6ec834ede8158f5;hb=485f6ecbc3e4439fa7a2252ed3cfa74d0097c353;hp=6dac8415a8c4df4375c97a87006664b44ac1770c;hpb=726bda0e9aea2d68b90803e142346cc46c8d4772;p=jalview.git diff --git a/build.gradle b/build.gradle index 6dac841..9b1eb69 100644 --- a/build.gradle +++ b/build.gradle @@ -40,7 +40,7 @@ plugins { id 'eclipse' id "com.diffplug.gradle.spotless" version "3.28.0" id 'com.github.johnrengelman.shadow' version '4.0.3' - id 'com.install4j.gradle' version '8.0.10' + id 'com.install4j.gradle' version '9.0.6' id 'com.dorongold.task-tree' version '1.5' // only needed to display task dependency tree with gradle task1 [task2 ...] taskTree id 'com.palantir.git-version' version '0.12.3' } @@ -52,6 +52,7 @@ repositories { } + // in ext the values are cast to Object. Ensure string values are cast as String (and not GStringImpl) for later use def string(Object o) { return o == null ? "" : o.toString() @@ -205,7 +206,7 @@ ext { install4jDMGDSStore = "${install4j_images_dir}/${install4j_dmg_ds_store}" install4jDMGBackgroundImage = "${install4j_images_dir}/${install4j_dmg_background}" install4jInstallerName = "${jalview_name} Non-Release Installer" - install4jExecutableName = jalview_name.replaceAll("[^\\w]+", "_").toLowerCase() + install4jExecutableName = install4j_executable_name install4jExtraScheme = "jalviewx" install4jMacIconsFile = string("${install4j_images_dir}/${install4j_mac_icons_file}") install4jWindowsIconsFile = string("${install4j_images_dir}/${install4j_windows_icons_file}") @@ -371,6 +372,7 @@ ext { .replaceAll("_*-_*", "-") // collapse _-_ .toLowerCase() + getdownWrapperLink = install4jUnixApplicationFolder // e.g. "jalview_local" getdownAppDir = string("${getdownWebsiteDir}/${getdownAppDistDir}") //getdownJ11libDir = "${getdownWebsiteDir}/${getdown_j11lib_dir}" getdownResourceDir = string("${getdownWebsiteDir}/${getdown_resource_dir}") @@ -419,16 +421,16 @@ ext { '--add-modules', j11modules ] */ - } else if (JAVA_VERSION.equals("12") || JAVA_VERSION.equals("13")) { - JAVA_INTEGER_VERSION = JAVA_VERSION - libDir = j11libDir - libDistDir = j11libDir - compile_source_compatibility = JAVA_VERSION - compile_target_compatibility = JAVA_VERSION + } else if (JAVA_VERSION.equals("17")) { + JAVA_INTEGER_VERSION = string("17") + libDir = j17libDir + libDistDir = j17libDir + compile_source_compatibility = 17 + compile_target_compatibility = 17 getdownAltJavaMinVersion = string(findProperty("getdown_alt_java11_min_version")) getdownAltJavaMaxVersion = string(findProperty("getdown_alt_java11_max_version")) getdownAltMultiJavaLocation = string(findProperty("getdown_alt_java11_txt_multi_java_location")) - eclipseJavaRuntimeName = string("JavaSE-11") + eclipseJavaRuntimeName = string("JavaSE-17") /* compile without modules -- using classpath libraries additional_compiler_args += [ '--module-path', modules_compileClasspath.asPath, @@ -448,11 +450,11 @@ ext { jreInstallsDir = System.getProperty("user.home") + jreInstallsDir.substring(1) } macosJavaVMDir = string("${jreInstallsDir}/jre-${JAVA_INTEGER_VERSION}-mac-x64/jre") - macosJavaVMTgz = string("${jreInstallsDir}/tgz/jre-${JAVA_INTEGER_VERSION}-mac-x64.tar.gz") windowsJavaVMDir = string("${jreInstallsDir}/jre-${JAVA_INTEGER_VERSION}-windows-x64/jre") - windowsJavaVMTgz = string("${jreInstallsDir}/tgz/jre-${JAVA_INTEGER_VERSION}-windows-x64.tar.gz") linuxJavaVMDir = string("${jreInstallsDir}/jre-${JAVA_INTEGER_VERSION}-linux-x64/jre") - linuxJavaVMTgz = string("${jreInstallsDir}/tgz/jre-${JAVA_INTEGER_VERSION}-linux-x64.tar.gz") + macosJavaVMTgz = string("${jreInstallsDir}/tgz/jre_${JAVA_INTEGER_VERSION}_mac_x64.tar.gz") + windowsJavaVMTgz = string("${jreInstallsDir}/tgz/jre_${JAVA_INTEGER_VERSION}_windows_x64.tar.gz") + linuxJavaVMTgz = string("${jreInstallsDir}/tgz/jre_${JAVA_INTEGER_VERSION}_linux_x64.tar.gz") install4jDir = string("${jalviewDir}/${install4j_utils_dir}") install4jConfFileName = string("jalview-install4j-conf.install4j") install4jConfFile = file("${install4jDir}/${install4jConfFileName}") @@ -1369,13 +1371,12 @@ task linkCheck(type: JavaExec) { args = [ "${helpBuildDir}/${help_dir}", "-nointernet" ] def outFOS = new FileOutputStream(helpLinksCheckerOutFile, false) // false == don't append - def errFOS = outFOS standardOutput = new org.apache.tools.ant.util.TeeOutputStream( outFOS, - standardOutput) + System.out) errorOutput = new org.apache.tools.ant.util.TeeOutputStream( outFOS, - errorOutput) + System.err) inputs.dir(helpBuildDir) outputs.file(helpLinksCheckerOutFile) @@ -1410,6 +1411,8 @@ jar { def outputDir = "${jalviewDir}/${package_dir}" destinationDirectory = file(outputDir) archiveFileName = rootProject.name+".jar" + duplicatesStrategy "EXCLUDE" + exclude "cache*/**" exclude "*.jar" @@ -1475,6 +1478,9 @@ shadowJar { attributes "Implementation-Version": JALVIEW_VERSION, "Application-Name": install4jApplicationName } + + duplicatesStrategy "INCLUDE" + mainClassName = shadow_jar_main_class mergeServiceFiles() classifier = "all-"+JALVIEW_VERSION+"-j"+JAVA_VERSION @@ -1579,6 +1585,18 @@ task getdownWebsite() { into getdownResourceDir } } + + def getdownWrapperScripts = [ getdown_bash_wrapper_script, getdown_powershell_wrapper_script, getdown_batch_wrapper_script ] + getdownWrapperScripts.each{ script -> + def s = file( "${jalviewDir}/utils/getdown/${getdown_wrapper_script_dir}/${script}" ) + if (s.exists()) { + copy { + from s + into "${getdownWebsiteDir}/${getdown_wrapper_script_dir}" + } + getdownTextString += "resource = ${getdown_wrapper_script_dir}/${script}\n" + } + } def codeFiles = [] fileTree(file(package_dir)).each{ f -> @@ -1589,7 +1607,9 @@ task getdownWebsite() { codeFiles += f } } - codeFiles.sort().each{f -> + def jalviewJar = jar.archiveFileName.getOrNull() + // put jalview.jar first for CLASSPATH and .properties files reasons + codeFiles.sort{a, b -> ( a.getName() == jalviewJar ? -1 : ( b.getName() == jalviewJar ? 1 : a <=> b ) ) }.each{f -> def name = f.getName() def line = "code = ${getdownAppDistDir}/${name}\n" getdownTextString += line @@ -1673,6 +1693,7 @@ task getdownWebsite() { from launchJvl from getdownLauncher from "${getdownWebsiteDir}/${getdown_build_properties}" + from "${getdownWebsiteDir}/${channel_props}" if (file(getdownLauncher).getName() != getdown_launcher) { rename(file(getdownLauncher).getName(), getdown_launcher) } @@ -1797,6 +1818,12 @@ task copyInstall4jTemplate { } } + // disable install screen for OSX dmg (for 2.11.2.0) + install4jConfigXml.'**'.macosArchive.each { macosArchive -> + macosArchive.attributes().remove('executeSetupApp') + macosArchive.attributes().remove('setupAppId') + } + // turn off checksum creation for LOCAL channel def e = install4jConfigXml.application[0] if (CHANNEL == "LOCAL") { @@ -1907,6 +1934,10 @@ task installers(type: com.install4j.gradle.Install4jTask) { 'WINDOWS_APPLICATION_ID': install4jWinApplicationId, 'MACOS_DMG_DS_STORE': install4jDMGDSStore, 'MACOS_DMG_BG_IMAGE': install4jDMGBackgroundImage, + 'WRAPPER_LINK': getdownWrapperLink, + 'BASH_WRAPPER_SCRIPT': getdown_bash_wrapper_script, + 'POWERSHELL_WRAPPER_SCRIPT': getdown_powershell_wrapper_script, + 'WRAPPER_SCRIPT_BIN_DIR': getdown_wrapper_script_dir, 'INSTALLER_NAME': install4jInstallerName, 'INSTALL4J_UTILS_DIR': install4j_utils_dir, 'GETDOWN_WEBSITE_DIR': getdown_website_dir, @@ -1956,7 +1987,7 @@ task installers(type: com.install4j.gradle.Install4jTask) { println("Using projectFile "+projectFile) if (!disableNotarization) { println("Will notarize OSX App DMG") } } - verbose=true + //verbose=true inputs.dir(getdownWebsiteDir) inputs.file(install4jConfFile) @@ -2384,6 +2415,10 @@ task jalviewjsSyncAllLibs (type: Sync) { preserve { include "**" } + + // should this be exclude really ? + duplicatesStrategy "INCLUDE" + outputs.files outputFiles inputs.files inputFiles } @@ -2538,12 +2573,12 @@ DEBUG: ${eclipseDebug} new org.apache.tools.ant.util.TeeOutputStream( logOutFOS, stdout), - standardOutput) + System.out) errorOutput = new org.apache.tools.ant.util.TeeOutputStream( new org.apache.tools.ant.util.TeeOutputStream( logErrFOS, stderr), - errorOutput) + System.err) } else { standardOutput = new org.apache.tools.ant.util.TeeOutputStream( logOutFOS, @@ -2631,7 +2666,7 @@ def jalviewjsCallCore(String name, FileCollection list, String prefixFile, Strin new org.apache.tools.ant.util.TeeOutputStream( logErrFOS, stderr), - errorOutput) + System.err) } else { standardOutput = new org.apache.tools.ant.util.TeeOutputStream( logOutFOS, @@ -2938,7 +2973,13 @@ task jalviewjsServer { def htmlFile = "${jalviewDirAbsolutePath}/${filename}" doLast { - SimpleHttpFileServerFactory factory = new SimpleHttpFileServerFactory() + def factory + try { + def f = Class.forName("org.gradle.plugins.javascript.envjs.http.simple.SimpleHttpFileServerFactory") + factory = f.newInstance() + } catch (ClassNotFoundException e) { + throw new GradleException("Unable to create SimpleHttpFileServerFactory") + } def port = Integer.valueOf(jalviewjs_server_port) def start = port def running = false