}
+
// 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()
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}")
install4jPngIconFile = string("${install4j_images_dir}/${install4j_png_icon_file}")
install4jBackground = string("${install4j_images_dir}/${install4j_background}")
+ install4jBuildDir = "${install4j_build_dir}/${JAVA_VERSION}"
+ install4jCheckSums = true
switch (CHANNEL) {
case "BUILD":
getdownAppBase = file(getdownWebsiteDir).toURI().toString()
getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher_local}")
install4jExtraScheme = "jalviewl"
+ install4jCheckSums = false
break
default: // something wrong specified
.replaceAll("_*-_*", "-") // collapse _-_
.toLowerCase()
+ getdownWrapperLink = install4jUnixApplicationFolder // e.g. "jalview_local"
getdownAppDir = string("${getdownWebsiteDir}/${getdownAppDistDir}")
//getdownJ11libDir = "${getdownWebsiteDir}/${getdown_j11lib_dir}"
getdownResourceDir = string("${getdownWebsiteDir}/${getdown_resource_dir}")
'--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,
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)
def outputDir = "${jalviewDir}/${package_dir}"
destinationDirectory = file(outputDir)
archiveFileName = rootProject.name+".jar"
+ duplicatesStrategy "EXCLUDE"
+
exclude "cache*/**"
exclude "*.jar"
attributes "Implementation-Version": JALVIEW_VERSION,
"Application-Name": install4jApplicationName
}
+
+ duplicatesStrategy "INCLUDE"
+
mainClassName = shadow_jar_main_class
mergeServiceFiles()
classifier = "all-"+JALVIEW_VERSION+"-j"+JAVA_VERSION
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 ->
// turn off checksum creation for LOCAL channel
def e = install4jConfigXml.application[0]
- if (CHANNEL == "LOCAL") {
- e.'@createChecksums' = "false"
- } else {
- e.'@createChecksums' = "true"
- }
+ e.'@createChecksums' = string(install4jCheckSums)
// put file association actions where placeholder action is
def install4jFileAssociationsText = install4jFileAssociationsFile.text
}
}
-
-task installers(type: com.install4j.gradle.Install4jTask) {
+task installerFiles(type: com.install4j.gradle.Install4jTask) {
group = "distribution"
description = "Create the install4j installers"
dependsOn getdown
filesMd5 = filesMd5.substring(0,8)
}
def install4jTemplateVersion = "${JALVIEW_VERSION}_F${filesMd5}_C${gitHash}"
- // make install4jBuildDir relative to jalviewDir
- def install4jBuildDir = "${install4j_build_dir}/${JAVA_VERSION}"
variables = [
'JALVIEW_NAME': jalview_name,
'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,
println("Using projectFile "+projectFile)
if (!disableNotarization) { println("Will notarize OSX App DMG") }
}
- verbose=true
+ //verbose=true
inputs.dir(getdownWebsiteDir)
inputs.file(install4jConfFile)
outputs.dir("${jalviewDir}/${install4j_build_dir}/${JAVA_VERSION}")
}
+task addVersionToInstallersDataFiles {
+ dependsOn installerFiles
+
+ def installersOutputTxt = "${jalviewDir}/${install4jBuildDir}/output.txt"
+ def installersOutputVersionTxt = "${jalviewDir}/${install4jBuildDir}/output-${JALVIEW_VERSION}.txt"
+ def installersSha256 = "${jalviewDir}/${install4jBuildDir}/sha256sums"
+ def installersSha256Version = "${jalviewDir}/${install4jBuildDir}/sha256sums-${JALVIEW_VERSION}"
+
+ inputs.file(installersOutputTxt)
+ outputs.file(installersOutputVersionTxt)
+ if (install4jCheckSums) {
+ inputs.file(installersSha256)
+ outputs.file(installersSha256Version)
+ }
+
+ doFirst {
+ file(installersOutputVersionTxt).write(file(installersOutputTxt).text)
+ if (install4jCheckSums) {
+ file(installersSha256Version).write(file(installersSha256).text)
+ }
+ }
+}
+
+task installers {
+ dependsOn installerFiles
+ dependsOn addVersionToInstallersDataFiles
+}
+
spotless {
java {
task sourceDist(type: Tar) {
group "distribution"
description "Create a source .tar.gz file for distribution"
-
+
+ dependsOn createBuildProperties
dependsOn convertMdFiles
def VERSION_UNDERSCORES = JALVIEW_VERSION.replaceAll("\\.", "_")
// exclude(EXCLUDE_FILES)
// exclude(PROCESS_FILES)
// }
+
+ from(file(buildProperties).getParent()) {
+ include(file(buildProperties).getName())
+ rename(file(buildProperties).getName(), "build_properties")
+ filter({ line ->
+ line.replaceAll("^INSTALLATION=.*\$","INSTALLATION=Source Release"+" git-commit\\\\:"+gitHash+" ["+gitBranch+"]")
+ })
+ }
+
}
preserve {
include "**"
}
+
+ // should this be exclude really ?
+ duplicatesStrategy "INCLUDE"
+
outputs.files outputFiles
inputs.files inputFiles
}
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,
new org.apache.tools.ant.util.TeeOutputStream(
logErrFOS,
stderr),
- errorOutput)
+ System.err)
} else {
standardOutput = new org.apache.tools.ant.util.TeeOutputStream(
logOutFOS,
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