JAL-3210 Fixed local.properties setting. Some tidying.
[jalview.git] / build.gradle
index c9b1332..b7f2162 100644 (file)
@@ -19,6 +19,23 @@ plugins {
   id 'com.install4j.gradle' version '7.0.9'
 }
 
+// local build environment properties
+def localProps = "${jalviewDir}/local.properties"
+if (file(localProps).exists()) {
+  def p = new Properties()
+  def localPropsFIS = new FileInputStream(localProps)
+  p.load(localPropsFIS)
+  localPropsFIS.close()
+  p.each {
+    key, val -> 
+      def over = getProperty(key) != null
+      setProperty(key, val)
+      if (over) {
+        println("Overriding property '${key}' with local.properties value '${val}'")
+      }
+  }
+}
+
 repositories {
   jcenter()
   mavenCentral()
@@ -33,15 +50,15 @@ dependencies {
 }
 
 mainClassName = launcherClass
-def cloverInstrDir = file("$buildDir/$cloverSourcesInstrDir")
-def classes = "$jalviewDir/$classesDir"
+def cloverInstrDir = file("${buildDir}/${cloverSourcesInstrDir}")
+def classes = "${jalviewDir}/${classesDir}"
 
 if (clover.equals("true")) {
   use_clover = true
-  classes = "$buildDir/$cloverClassesDir"
+  classes = "${buildDir}/${cloverClassesDir}"
 } else {
   use_clover = false
-  classes = "$jalviewDir/$classesDir"
+  classes = "${jalviewDir}/${classesDir}"
 }
 
 // configure classpath/args for j8/j11 compilation
@@ -166,7 +183,7 @@ ext {
   gitHash = ""
   gitBranch = ""
 
-  println("Using a ${CHANNEL} profile. appbase=${getdown_app_base}")
+  println("Using a ${CHANNEL} profile.")
 }
 
 def JAVA_INTEGER_VERSION
@@ -631,8 +648,8 @@ task copyHelp(type: Copy) {
   }
   from(inputDir) {
     include '**/*.gif'
-      include '**/*.jpg'
-      include '**/*.png'
+    include '**/*.jpg'
+    include '**/*.png'
   }
   into outputDir
 
@@ -650,7 +667,6 @@ task syncLib(type: Sync) {
 task syncResources(type: Sync) {
   from "${jalviewDir}/${resourceDir}"
   include "**/*.*"
-  exclude "install4j"
   into "${classes}"
   preserve {
     include "**"
@@ -1263,6 +1279,9 @@ task jalviewjsSetEclipseWorkspace {
   def propVal = null
   if (project.hasProperty(propKey)) {
     propVal = project.getProperty(propKey)
+    if (propVal.startsWith("~/")) {
+      propVal = System.getProperty("user.home") + propVal.substring(1)
+    }
   }
   def propsFileName = "${jalviewjsBuildDir}/${jalviewjs_eclipse_workspace_location_file}"
   def eclipseWsDir = propVal
@@ -1309,7 +1328,7 @@ task jalviewjsEclipsePaths {
   def eclipseProduct
 
   def eclipseRoot = jalviewjs_eclipse_root
-  if (eclipseRoot.startsWith("~")) {
+  if (eclipseRoot.startsWith("~/")) {
     eclipseRoot = System.getProperty("user.home") + eclipseRoot.substring(1)
   }
   if (OperatingSystem.current().isMacOsX()) {
@@ -1343,6 +1362,7 @@ task jalviewjsEclipsePaths {
     fis.close()
     assumedVersion = false
   }
+  /*
   String[] v = eclipseVersion.split("\\.")
   def v0 = Integer.valueOf(v[0])
   def v1 = Integer.valueOf(v[1])
@@ -1351,8 +1371,10 @@ task jalviewjsEclipsePaths {
   } else {
     eclipseVersionSuffix = "_4.13"
   }
+  utilsDropinsDir = "${jalviewDir}/${jalviewjs_eclipse_dropins_dir}${eclipseVersionSuffix}"
+  */
 
-  utilsDropinsDir = "${jalviewjs_utils_dir}/${jalviewjs_eclipse_dropins_dir}${eclipseVersionSuffix}"
+  utilsDropinsDir = "${jalviewDir}/${jalviewjs_eclipse_dropins_dir}"
   def propKey = "eclipse_debug"
   eclipseDebug = (project.hasProperty(propKey) && project.getProperty(propKey).equals("true"))
 
@@ -1374,6 +1396,7 @@ task OLDjalviewjsEclipseCopyDropins {
   dependsOn jalviewjsEclipsePaths
   dependsOn jalviewjsCleanEclipse
   def inputFiles = fileTree(dir: utilsDropinsDir, include: "*.jar")
+  inputFiles += file(jalviewjs_j2s_plugin)
   def outputDir = eclipseDropinsDir
 
   inputs.files inputFiles
@@ -1398,6 +1421,13 @@ task jalviewjsEclipseCopyDropins(type: Copy) {
 
   from utilsDropinsDir
   into eclipseDropinsDir
+
+  doLast {
+    copy {
+      from jalviewjs_j2s_plugin
+      into eclipseDropinsDir
+    }
+  }
 }
 
 // this eclipse -clean doesn't actually work
@@ -1430,20 +1460,20 @@ jalviewjsEclipseCopyDropins.finalizedBy jalviewjsCleanEclipse
 task jalviewjsUnzipFiles {
   dependsOn jalviewjsSitePath
 
-  def zipFiles = fileTree(dir: "${jalviewjs_utils_dir}/${jalviewjs_libjs_dir}", include: "*.zip")
-  zipFiles += "${jalviewjs_utils_dir}/${jalviewjs_swingjs_zip}${eclipseVersionSuffix}"
+  def zipFiles = fileTree(dir: "${jalviewDir}/${jalviewjs_libjs_dir}", include: "*.zip")
+  zipFiles += "${jalviewDir}/${jalviewjs_swingjs_zip}"
 
   doLast {
     zipFiles.each { file_zip -> 
       copy {
         from zipTree(file_zip)
-        into jalviewjsSiteDir
+        into "${jalviewDir}/${jalviewjsSiteDir}"
       }
     }
   }
 
   inputs.files zipFiles
-  outputs.dir jalviewjsSiteDir
+  outputs.dir "${jalviewDir}/${jalviewjsSiteDir}"
 }
 
 task jalviewjsCreateJ2sSettings(type: WriteProperties) {
@@ -1476,10 +1506,10 @@ task jalviewjsEclipseSetup {
   dependsOn jalviewjsCreateJ2sSettings
 }
 
-task jalviewjsCopyResources (type: Copy) {
+task jalviewjsCopyResources (type: Sync) {
   dependsOn jalviewjsSitePath
-  def inputFiles = fileTree(dir: jalviewjs_resource_dir)
-  def outputDir = "${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}"
+  def inputFiles = fileTree(dir: "${jalviewDir}/${resourceDir}")
+  def outputDir = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}"
 
   from inputFiles
   into outputDir
@@ -1488,14 +1518,17 @@ task jalviewjsCopyResources (type: Copy) {
     outputFiles += "${outputDir}/${filename}"
     null
   }
+  preserve {
+    include "**"
+  }
   outputs.files outputFiles
   inputs.files inputFiles
 }
 
-task jalviewjsCopySiteResources (type: Copy) {
+task jalviewjsCopySiteResources (type: Sync) {
   dependsOn jalviewjsSitePath
-  def inputFiles = fileTree(dir: "${jalviewjs_utils_dir}/${jalviewjs_site_resource_dir}")
-  def outputDir = jalviewjsSiteDir
+  def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjs_site_resource_dir}")
+  def outputDir = "${jalviewDir}/${jalviewjsSiteDir}"
 
   from inputFiles
   into outputDir
@@ -1504,6 +1537,9 @@ task jalviewjsCopySiteResources (type: Copy) {
     outputFiles += "${outputDir}/${filename}"
     null
   }
+  preserve {
+    include "**"
+  }
   outputs.files outputFiles
   inputs.files inputFiles
 }
@@ -1519,6 +1555,7 @@ task jalviewjsProjectImport(type: Exec) {
   if (eclipseDebug) {
     args += "-debug"
   }
+  // can we use args += ["--launcher.appendVmargs", "-vmargs", "-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=utils/jalviewjs/eclipse/dropins"] here? (instead of copying plugins to eclipse dropins dir)
 
   doFirst {
     println("IMPORT ECLIPSE_DEBUG=${eclipseDebug}")
@@ -1535,10 +1572,11 @@ task jalviewjsTranspile(type: Exec) {
   dependsOn jalviewjsEclipsePaths
 
   executable(eclipseBinary)
-  args(["-nosplash", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-data", eclipseWorkspace, "-${jalviewjs_eclipseBuildArg}", eclipse_project_name ])
+  args(["-nosplash", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-data", eclipseWorkspace, "-${jalviewjs_eclipse_build_arg}", eclipse_project_name ])
   if (eclipseDebug) {
     args += "-debug"
   }
+  // can we use args += ["--launcher.appendVmargs", "-vmargs", "-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=swingjs"] here? (instead of copying plugins to eclipse dropins dir)
 
   def stdout
   def stderr
@@ -1594,17 +1632,17 @@ DEBUG: ${eclipseDebug}
     println("TRANSPILE ECLIPSE_DEBUG=${eclipseDebug}")
   }
 
-  inputs.dir(sourceDir)
-  outputs.dir("${eclipse_bin_dir}/main")
-  outputs.dir(jalviewjsTransferSiteDir)
-  outputs.upToDateWhen { file("${jalviewjsTransferSiteDir}${jalviewjs_server_resource}").exists() }
+  inputs.dir("${jalviewDir}/${sourceDir}")
+  outputs.dir("${jalviewDir}/${eclipse_bin_dir}/main")
+  outputs.dir("${jalviewDir}/${jalviewjsTransferSiteDir}")
+  outputs.upToDateWhen { file("${jalviewDir}/${jalviewjsTransferSiteDir}${jalviewjs_server_resource}").exists() }
 
 }
 
 task jalviewjsCopyTransferSite(type: Copy) {
   dependsOn jalviewjsTranspile
-  from jalviewjsTransferSiteDir
-  into jalviewjsSiteDir
+  from "${jalviewDir}/${jalviewjsTransferSiteDir}"
+  into "${jalviewDir}/${jalviewjsSiteDir}"
 }
 
 jalviewjsUnzipFiles.mustRunAfter jalviewjsCopyTransferSite
@@ -1688,6 +1726,7 @@ task jalviewjsServer {
   }
 
   outputs.file(htmlFile)
+  outputs.upToDateWhen({false})
 }
 
 task cleanJalviewjsAll {