JAL-3280 Test for remote release build_properties file version check
[jalview.git] / build.gradle
index bdc50d0..c796b3b 100644 (file)
@@ -57,12 +57,13 @@ def string(Object o) {
   return o == null ? "" : o.toString()
 }
 
-def overrideProperties(def propsFileName) {
+def overrideProperties(String propsFileName, boolean output = false) {
   if (propsFileName == null) {
     return
   }
   def propsFile = file(propsFileName)
   if (propsFile != null && propsFile.exists()) {
+    println("Using properties from file '${propsFileName}'")
     try {
       def p = new Properties()
       def localPropsFIS = new FileInputStream(propsFile)
@@ -74,12 +75,15 @@ def overrideProperties(def propsFileName) {
           if (project.hasProperty(key)) {
             oldval = project.findProperty(key)
             project.setProperty(key, val)
-            println("Overriding property '${key}' ('${oldval}') with ${file(propsFile).getName()} value '${val}'")
+            if (output) {
+              println("Overriding property '${key}' ('${oldval}') with ${file(propsFile).getName()} value '${val}'")
+            }
           } else {
             ext.setProperty(key, val)
-            println("Setting ext property '${key}' with ${file(propsFile).getName()}s value '${val}'")
+            if (output) {
+              println("Setting ext property '${key}' with ${file(propsFile).getName()}s value '${val}'")
+            }
           }
-          //true
       }
     } catch (Exception e) {
       println("Exception reading local.properties")
@@ -93,17 +97,17 @@ ext {
   jalviewDirRelativePath = jalviewDir
 
   getdownChannelName = CHANNEL.toLowerCase()
-  // default to "release". Currently only has different cosmetics for "develop", "release"
-  propertiesChannelName = getdownChannelName == "develop" ? getdownChannelName : "release"
+  // default to "default". Currently only has different cosmetics for "develop", "release", "default"
+  propertiesChannelName = ["develop", "release", "test-release", "jalviewjs", "jalviewjs-release" ].contains(getdownChannelName) ? getdownChannelName : "default"
   // Import channel_properties
   channelDir = string("${jalviewDir}/${channel_properties_dir}/${propertiesChannelName}")
   channelGradleProperties = string("${channelDir}/channel_gradle.properties")
-  overrideProperties(channelGradleProperties)
+  overrideProperties(channelGradleProperties, false)
   // local build environment properties
   // can be "projectDir/local.properties"
-  overrideProperties("${projectDir}/local.properties")
+  overrideProperties("${projectDir}/local.properties", true)
   // or "../projectDir_local.properties"
-  overrideProperties(projectDir.getParent() + "/" + projectDir.getName() + "_local.properties")
+  overrideProperties(projectDir.getParent() + "/" + projectDir.getName() + "_local.properties", true)
 
   ////  
   // Import releaseProps from the RELEASE file
@@ -193,14 +197,15 @@ 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"
+  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()
   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}")
   switch (CHANNEL) {
 
     case "BUILD":
@@ -216,12 +221,10 @@ ext {
     install4jExtraScheme = "jalviewb"
     break
 
-    case "RELEASE":
+    case [ "RELEASE", "JALVIEWJS-RELEASE" ]:
     getdownAppDistDir = getdown_app_dir_release
     reportRsyncCommand = true
     install4jSuffix = ""
-    install4jDSStore = "DS_Store"
-    install4jDMGBackgroundImage = "jalview_dmg_background.png"
     install4jInstallerName = "${jalview_name} Installer"
     break
 
@@ -264,8 +267,6 @@ ext {
     JALVIEW_VERSION=JALVIEW_VERSION+"-develop"
     
     install4jSuffix = "Develop"
-    install4jDSStore = "DS_Store-DEVELOP"
-    install4jDMGBackgroundImage = "jalview_dmg_background-DEVELOP.png"
     install4jExtraScheme = "jalviewd"
     install4jInstallerName = "${jalview_name} Develop Installer"
     break
@@ -279,8 +280,6 @@ ext {
     }
     JALVIEW_VERSION = JALVIEW_VERSION+"-test"
     install4jSuffix = "Test"
-    install4jDSStore = "DS_Store-TEST-RELEASE"
-    install4jDMGBackgroundImage = "jalview_dmg_background-TEST.png"
     install4jExtraScheme = "jalviewt"
     install4jInstallerName = "${jalview_name} Test Installer"
     break
@@ -304,13 +303,11 @@ ext {
     }
     JALVIEW_VERSION = "TEST"
     install4jSuffix = "Test-Local"
-    install4jDSStore = "DS_Store-TEST-RELEASE"
-    install4jDMGBackgroundImage = "jalview_dmg_background-TEST.png"
     install4jExtraScheme = "jalviewt"
     install4jInstallerName = "${jalview_name} Test Installer"
     break
 
-    case "LOCAL":
+    case [ "LOCAL", "JALVIEWJS" ]:
     JALVIEW_VERSION = "TEST"
     getdownAppBase = file(getdownWebsiteDir).toURI().toString()
     getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher_local}")
@@ -1273,12 +1270,16 @@ task buildIndices(type: JavaExec) {
   outputs.file("${workingDir}/JavaHelpSearch/TMAP")
 }
 
-task prepare {
+task buildResources {
   dependsOn copyResources
+  dependsOn copyChannelResources
+  dependsOn createBuildProperties
+}
+
+task prepare {
+  dependsOn buildResources
   dependsOn copyDocs
   dependsOn copyHelp
-  dependsOn createBuildProperties
-  dependsOn copyChannelResources
   dependsOn convertMdFiles
   dependsOn buildIndices
 }
@@ -1314,6 +1315,11 @@ test {
     println("Setting Test LaF to '${testLaf}'")
     systemProperty "laf", testLaf
   }
+  def testHiDPIScale = project.findProperty("test_HiDPIScale")
+  if (testHiDPIScale != null) {
+    println("Setting Test HiDPI Scale to '${testHiDPIScale}'")
+    systemProperty "sun.java2d.uiScale", testHiDPIScale
+  }
   sourceCompatibility = compile_source_compatibility
   targetCompatibility = compile_target_compatibility
   jvmArgs += additional_compiler_args
@@ -1388,7 +1394,8 @@ jar {
     "Implementation-Version": JALVIEW_VERSION
   }
 
-  destinationDirectory = file("${jalviewDir}/${package_dir}")
+  def outputDir = "${jalviewDir}/${package_dir}"
+  destinationDirectory = file(outputDir)
   archiveFileName = rootProject.name+".jar"
 
   exclude "cache*/**"
@@ -1401,7 +1408,7 @@ jar {
   sourceSets.main.resources.srcDirs.each{ dir ->
     inputs.dir(dir)
   }
-  outputs.file("${destinationDirectory}/${archiveFileName}")
+  outputs.file("${outputDir}/${archiveFileName}")
 }
 
 
@@ -1593,6 +1600,10 @@ task getdownWebsite() {
     //getdownTextString += "class = " + file(getdownLauncher).getName() + "\n"
     getdownTextString += "resource = ${getdown_launcher_new}\n"
     getdownTextString += "class = ${main_class}\n"
+    /* NOT setting these properties so that getdownappbase and getdowndistdir will default to release version
+     * getdownTextString += "jvmarg = -Dgetdowndistdir=${getdownAppDistDir}\n"
+     * getdownTextString += "jvmarg = -Dgetdownappbase=${getdownAppBase}\n"
+     */
 
     def getdown_txt = file("${getdownWebsiteDir}/getdown.txt")
     getdown_txt.write(getdownTextString)
@@ -1619,7 +1630,7 @@ task getdownWebsite() {
       copy {
         from getdown_txt
         from getdownLauncher
-        from "${getdownWebsiteDir}/${getdown_build_properties}"
+        from "${getdownAppDir}/${getdown_build_properties}"
         if (file(getdownLauncher).getName() != getdown_launcher) {
           rename(file(getdownLauncher).getName(), getdown_launcher)
         }
@@ -1872,7 +1883,7 @@ task installers(type: com.install4j.gradle.Install4jTask) {
     'BUNDLE_ID': install4jBundleId,
     'INTERNAL_ID': install4jInternalId,
     'WINDOWS_APPLICATION_ID': install4jWinApplicationId,
-    'MACOS_DS_STORE': install4jDSStore,
+    'MACOS_DMG_DS_STORE': install4jDMGDSStore,
     'MACOS_DMG_BG_IMAGE': install4jDMGBackgroundImage,
     'INSTALLER_NAME': install4jInstallerName,
     'INSTALL4J_UTILS_DIR': install4j_utils_dir,
@@ -1892,6 +1903,7 @@ task installers(type: com.install4j.gradle.Install4jTask) {
     'MAC_ICONS_FILE': install4jMacIconsFile,
     'WINDOWS_ICONS_FILE': install4jWindowsIconsFile,
     'PNG_ICON_FILE': install4jPngIconFile,
+    'BACKGROUND': install4jBackground,
 
   ]
 
@@ -2309,7 +2321,9 @@ task jalviewjsSyncAllLibs (type: Sync) {
 
 
 task jalviewjsSyncResources (type: Sync) {
-  def inputFiles = fileTree(dir: resourceDir)
+  dependsOn buildResources
+
+  def inputFiles = fileTree(dir: resourcesBuildDir)
   def outputDir = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}"
 
   from inputFiles