JAL-3523 No longer change CWD of getdown when invoked by install4j launcher
[jalview.git] / build.gradle
index a8315c2..c64eb59 100644 (file)
@@ -19,7 +19,7 @@ plugins {
   id 'eclipse'
   id 'com.github.johnrengelman.shadow' version '4.0.3'
   id 'com.install4j.gradle' version '8.0.2'
-  id 'com.dorongold.task-tree' version '1.4' // only needed to display task dependency tree with  gradle task1 [task2 ...] taskTree
+  id 'com.dorongold.task-tree' version '1.5' // only needed to display task dependency tree with  gradle task1 [task2 ...] taskTree
 }
 
 repositories {
@@ -38,7 +38,7 @@ dependencies {
 
 // 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.toString()
+  return o == null ? "" : o.toString()
 }
 
 
@@ -246,22 +246,22 @@ ext {
     compile_source_compatibility = 1.8
     compile_target_compatibility = 1.8
     // these are getdown.txt properties defined dependent on the JAVA_VERSION
-    getdown_alt_java_min_version = getdown_alt_java8_min_version
-    getdown_alt_java_max_version = getdown_alt_java8_max_version
+    getdownAltJavaMinVersion = string(findProperty("getdown_alt_java8_min_version"))
+    getdownAltJavaMaxVersion = string(findProperty("getdown_alt_java8_max_version"))
     // this property is assigned below and expanded to multiple lines in the getdown task
-    getdown_alt_multi_java_location = getdown_alt_java8_txt_multi_java_location
+    getdownAltMultiJavaLocation = string(findProperty("getdown_alt_java8_txt_multi_java_location"))
     // this property is for the Java library used in eclipse
-    eclipse_java_runtime_name = string("JavaSE-1.8")
+    eclipseJavaRuntimeName = string("JavaSE-1.8")
   } else if (JAVA_VERSION.equals("11")) {
     JAVA_INTEGER_VERSION = string("11")
     libDir = j11libDir
     libDistDir = j11libDir
     compile_source_compatibility = 11
     compile_target_compatibility = 11
-    getdown_alt_java_min_version = getdown_alt_java11_min_version
-    getdown_alt_java_max_version = getdown_alt_java11_max_version
-    getdown_alt_multi_java_location = getdown_alt_java11_txt_multi_java_location
-    eclipse_java_runtime_name = string("JavaSE-11")
+    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")
     /* compile without modules -- using classpath libraries
     additional_compiler_args += [
     '--module-path', modules_compileClasspath.asPath,
@@ -274,10 +274,10 @@ ext {
     libDistDir = j11libDir
     compile_source_compatibility = JAVA_VERSION
     compile_target_compatibility = JAVA_VERSION
-    getdown_alt_java_min_version = getdown_alt_java11_min_version
-    getdown_alt_java_max_version = getdown_alt_java11_max_version
-    getdown_alt_multi_java_location = getdown_alt_java11_txt_multi_java_location
-    eclipse_java_runtime_name = string("JavaSE-11")
+    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")
     /* compile without modules -- using classpath libraries
     additional_compiler_args += [
     '--module-path', modules_compileClasspath.asPath,
@@ -292,10 +292,16 @@ ext {
   // for install4j
   JAVA_MIN_VERSION = JAVA_VERSION
   JAVA_MAX_VERSION = JAVA_VERSION
-  macosJavaVMDir = string("${System.env.HOME}/buildtools/jre/openjdk-java_vm/getdown/macos-jre${JAVA_VERSION}/jre")
-  macosJavaVMTgz = string("${System.env.HOME}/buildtools/jre/openjdk-java_vm/install4j/tgz/macos-jre${JAVA_VERSION}.tar.gz")
-  windowsJavaVMDir = string("${System.env.HOME}/buildtools/jre/openjdk-java_vm/getdown/windows-jre${JAVA_VERSION}/jre")
-  windowsJavaVMTgz = string("${System.env.HOME}/buildtools/jre/openjdk-java_vm/install4j/tgz/windows-jre${JAVA_VERSION}.tar.gz")
+  def jreInstallsDir = string(jre_installs_dir)
+  if (jreInstallsDir.startsWith("~/")) {
+    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")
   install4jDir = string("${jalviewDir}/${install4j_utils_dir}")
   install4jConfFileName = string("jalview-install4j-conf.install4j")
   install4jConfFile = file("${install4jDir}/${install4jConfFileName}")
@@ -524,7 +530,7 @@ eclipse {
     // for the IDE, use java 11 compatibility
     sourceCompatibility = compile_source_compatibility
     targetCompatibility = compile_target_compatibility
-    javaRuntimeName = eclipse_java_runtime_name
+    javaRuntimeName = eclipseJavaRuntimeName
 
     // add in jalview project specific properties/preferences into eclipse core preferences
     file {
@@ -715,7 +721,8 @@ task convertBuildingMD(type: Exec) {
   }
 
   def hostname = "hostname".execute().text.trim()
-  if ((pandoc == null || ! file(pandoc).exists()) && hostname.equals("jv-bamboo")) {
+  def buildtoolsPandoc = System.getProperty("user.home")+"/buildtools/pandoc/bin/pandoc"
+  if ((pandoc == null || ! file(pandoc).exists()) && file(buildtoolsPandoc).exists()) {
     pandoc = System.getProperty("user.home")+"/buildtools/pandoc/bin/pandoc"
   }
 
@@ -1005,13 +1012,15 @@ task getdownWebsite() {
 
     // go through properties looking for getdown_txt_...
     def props = project.properties.sort { it.key }
-    if (getdown_alt_java_min_version.length() > 0) {
-      props.put("getdown_txt_java_min_version", getdown_alt_java_min_version)
+    if (getdownAltJavaMinVersion != null && getdownAltJavaMinVersion.length() > 0) {
+      props.put("getdown_txt_java_min_version", getdownAltJavaMinVersion)
+    }
+    if (getdownAltJavaMaxVersion != null && getdownAltJavaMaxVersion.length() > 0) {
+      props.put("getdown_txt_java_max_version", getdownAltJavaMaxVersion)
     }
-    if (getdown_alt_java_max_version.length() > 0) {
-      props.put("getdown_txt_java_max_version", getdown_alt_java_max_version)
+    if (getdownAltMultiJavaLocation != null && getdownAltMultiJavaLocation.length() > 0) {
+      props.put("getdown_txt_multi_java_location", getdownAltMultiJavaLocation)
     }
-    props.put("getdown_txt_multi_java_location", getdown_alt_multi_java_location)
 
     props.put("getdown_txt_appbase", getdown_app_base)
     props.each{ prop, val ->
@@ -1286,8 +1295,11 @@ task installers(type: com.install4j.gradle.Install4jTask) {
     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_DIR': "../..",
     'OSX_KEYSTORE': OSX_KEYSTORE,
     'JSIGN_SH': JSIGN_SH,
     'JRE_DIR': getdown_app_dir_java,
@@ -1299,19 +1311,25 @@ task installers(type: com.install4j.gradle.Install4jTask) {
     'JAVA_INTEGER_VERSION': JAVA_INTEGER_VERSION,
     'VERSION': JALVIEW_VERSION,
     'MACOS_JAVA_VM_DIR': macosJavaVMDir,
-    'MACOS_JAVA_VM_TGZ': macosJavaVMTgz,
     'WINDOWS_JAVA_VM_DIR': windowsJavaVMDir,
+    'LINUX_JAVA_VM_DIR': linuxJavaVMDir,
+    'MACOS_JAVA_VM_TGZ': macosJavaVMTgz,
     'WINDOWS_JAVA_VM_TGZ': windowsJavaVMTgz,
+    'LINUX_JAVA_VM_TGZ': linuxJavaVMTgz,
     'COPYRIGHT_MESSAGE': install4j_copyright_message,
     'MACOS_BUNDLE_ID': install4j_macOS_bundle_id,
+    'INSTALL4J_UTILS_DIR': install4j_utils_dir,
+    'GETDOWN_WEBSITE_DIR': getdown_website_dir,
+    'GETDOWN_FILES_DIR': getdown_files_dir,
     'GETDOWN_RESOURCE_DIR': getdown_resource_dir,
     'GETDOWN_DIST_DIR': getdown_app_dir,
     'GETDOWN_ALT_DIR': getdown_app_dir_alt,
     'GETDOWN_INSTALL_DIR': getdown_install_dir,
     'INFO_PLIST_FILE_ASSOCIATIONS_FILE': install4j_info_plist_file_associations,
+    'BUILD_DIR': install4jBuildDir,
   ]
 
-  destination = "${jalviewDir}/${install4j_build_dir}/${JAVA_VERSION}"
+  destination = "${jalviewDir}/${install4jBuildDir}"
   buildSelected = true
 
   if (install4j_faster.equals("true") || CHANNEL.startsWith("DEVELOP") || CHANNEL.startsWith("LOCAL")) {