JAL-3753 JAL-3754 first rejig
authorBen Soares <b.soares@dundee.ac.uk>
Fri, 18 Sep 2020 17:18:51 +0000 (18:18 +0100)
committerBen Soares <b.soares@dundee.ac.uk>
Fri, 18 Sep 2020 17:18:51 +0000 (18:18 +0100)
build.gradle
gradle.properties

index 4fe4088..48c83a3 100644 (file)
@@ -167,8 +167,6 @@ ext {
   //cloverTestClassesDir = cloverClassesDir
   cloverDb = string("${cloverBuildDir}/clover.db")
 
-  resourceClassesDir = useClover ? cloverClassesDir : classesDir
-
   testSourceDir = useClover ? cloverTestInstrDir : testDir
   testClassesDir = useClover ? cloverTestClassesDir : "${jalviewDir}/${test_output_dir}"
 
@@ -181,7 +179,6 @@ ext {
   getdownAppBase = string("${getdown_channel_base}/${getdownDir}")
   getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher}")
   getdownAppDistDir = getdown_app_dir_alt
-  buildProperties = string("${resourceDir}/${build_properties_file}")
   reportRsyncCommand = false
   jvlChannelName = CHANNEL.toLowerCase()
   install4jSuffix = CHANNEL.substring(0, 1).toUpperCase() + CHANNEL.substring(1).toLowerCase(); // BUILD -> Build
@@ -252,11 +249,19 @@ ext {
     // DEVELOP-RELEASE is usually associated with a Jalview release series so set the version
     JALVIEW_VERSION=JALVIEW_VERSION+"-develop"
     
+    channelPropertiesFile = string("${channel_properties_dir}/develop_properties")
+    getdownImagesDir = "${getdown_images_dir}/develop"
+    getdownBgColour = "000000"
+    getdownFgColour = "FFFFFF"
+    getdownLightFgColour = "CCCCFF"
     install4jSuffix = "Develop"
     install4jDSStore = "DS_Store-DEVELOP"
     install4jDMGBackgroundImage = "jalview_dmg_background-DEVELOP.png"
     install4jExtraScheme = "jalviewd"
     install4jInstallerName = "${jalview_name} Develop Installer"
+    install4jMacIconsFile = string("${install4j_utils_dir}/develop/${install4j_mac_icons_file}")
+    install4jWindowsIconsFile = string("${install4j_utils_dir}/develop/${install4j_windows_icons_file}")
+    install4jPngIconFile = string("${install4j_utils_dir}/develop/${install4j_png_icon_file}")
     break
 
     case "TEST-RELEASE":
@@ -439,12 +444,16 @@ ext {
     install4jHomeDir = System.getProperty("user.home") + install4jHomeDir.substring(1)
   }
 
+  resourceBuildDir = string("${buildDir}/resource")
+  resourcesBuildDir = string("${resourceBuildDir}/resources")
+  helpBuildDir = string("${resourceBuildDir}/${help_dir}")
+  docBuildDir = string("${resourceBuildDir}/${doc_dir}")
 
-
+  buildProperties = string("${resourcesBuildDir}/${build_properties_file}")
   buildingHTML = string("${jalviewDir}/${doc_dir}/building.html")
-  helpFile = string("${resourceClassesDir}/${help_dir}/help.jhm")
   helpParentDir = string("${jalviewDir}/${help_parent_dir}")
   helpSourceDir = string("${helpParentDir}/${help_dir}")
+  helpFile = string("${helpBuildDir}/help.jhm")
 
 
   relativeBuildDir = file(jalviewDirAbsolutePath).toPath().relativize(buildDir.toPath())
@@ -482,12 +491,9 @@ sourceSets {
     }
 
     resources {
-      srcDirs resourceDir
-      srcDirs += helpParentDir
+      srcDirs resourcesBuildDir
     }
 
-    jar.destinationDir = file("${jalviewDir}/${package_dir}")
-
     compileClasspath = files(sourceSets.main.java.outputDir)
     compileClasspath += fileTree(dir: "${jalviewDir}/${libDir}", include: ["*.jar"])
 
@@ -548,14 +554,12 @@ eclipse {
 
   classpath {
     //defaultOutputDir = sourceSets.main.java.outputDir
-    def removeThese = []
-    configurations.each{
-      if (it.isCanBeResolved()) {
-        removeThese += it
+    configurations.each{ c->
+      if (c.isCanBeResolved()) {
+        minusConfigurations += [c]
       }
     }
 
-    minusConfigurations += removeThese
     plusConfigurations = [ ]
     file {
 
@@ -1005,24 +1009,6 @@ def getDate(format) {
 }
 
 
-task createBuildProperties(type: WriteProperties) {
-  group = "build"
-  description = "Create the ${buildProperties} file"
-  
-  inputs.dir(sourceDir)
-  inputs.dir(resourceDir)
-  file(buildProperties).getParentFile().mkdirs()
-  outputFile (buildProperties)
-  // taking time specific comment out to allow better incremental builds
-  comment "--Jalview Build Details--\n"+getDate("yyyy-MM-dd HH:mm:ss")
-  //comment "--Jalview Build Details--\n"+getDate("yyyy-MM-dd")
-  property "BUILD_DATE", getDate("HH:mm:ss dd MMMM yyyy")
-  property "VERSION", JALVIEW_VERSION
-  property "INSTALLATION", INSTALLATION+" git-commit:"+gitHash+" ["+gitBranch+"]"
-  outputs.file(outputFile)
-}
-
-
 clean {
   doFirst {
     delete buildProperties
@@ -1136,17 +1122,29 @@ task convertMdFiles {
 }
 
 
-task syncDocs(type: Sync) {
+task copyDocs(type: Copy) {
   dependsOn convertMdFiles
-  def syncDir = "${classesDir}/${doc_dir}"
-  from fileTree("${jalviewDir}/${doc_dir}")
+  def syncDir = "${docBuildDir}"
+  from ("${jalviewDir}/${doc_dir}") {
+    exclude '**/*.gif'
+    exclude '**/*.jpg'
+    exclude '**/*.png'
+    filter(ReplaceTokens,
+      beginToken: '$$',
+      endToken: '$$',
+      tokens: [
+        'Version-Rel': JALVIEW_VERSION,
+        'Year-Rel': getDate("yyyy")
+      ]
+    )
+  }
   into syncDir
 }
 
 
 task copyHelp(type: Copy) {
   def inputDir = helpSourceDir
-  def outputDir = "${resourceClassesDir}/${help_dir}"
+  def outputDir = "${helpBuildDir}"
   from(inputDir) {
     exclude '**/*.gif'
     exclude '**/*.jpg'
@@ -1173,29 +1171,53 @@ task copyHelp(type: Copy) {
 }
 
 
-task syncLib(type: Sync) {
-  def syncDir = "${resourceClassesDir}/${libDistDir}"
-  from fileTree("${jalviewDir}/${libDistDir}")
-  into syncDir
+task copyResources(type: Copy) {
+  from(resourceDir) {
+    filter(ReplaceTokens,
+      beginToken: '$$',
+      endToken: '$$',
+      tokens: [
+        'Version-Rel': JALVIEW_VERSION,
+        'Year-Rel': getDate("yyyy")
+      ]
+    )
+  }
+  include "**/*.*"
+  into "${resourcesBuildDir}"
+  //preserve {
+  //  include "**"
+  //}
 }
 
 
-task syncResources(type: Sync) {
-  dependsOn createBuildProperties
-  from resourceDir
-  include "**/*.*"
-  into "${resourceClassesDir}"
-  preserve {
-    include "**"
-  }
+task createBuildProperties(type: WriteProperties) {
+  dependsOn copyResources
+  group = "build"
+  description = "Create the ${buildProperties} file"
+  
+  inputs.dir(sourceDir)
+  inputs.dir(resourcesBuildDir)
+//println("MKDIRS "+file(buildProperties).getParentFile().toString())
+//  doFirst {
+//    file(buildProperties).getParentFile().mkdirs()
+//  }
+  outputFile (buildProperties)
+  // taking time specific comment out to allow better incremental builds
+  comment "--Jalview Build Details--\n"+getDate("yyyy-MM-dd HH:mm:ss")
+  //comment "--Jalview Build Details--\n"+getDate("yyyy-MM-dd")
+  property "BUILD_DATE", getDate("HH:mm:ss dd MMMM yyyy")
+  property "VERSION", JALVIEW_VERSION
+  property "INSTALLATION", INSTALLATION+" git-commit:"+gitHash+" ["+gitBranch+"]"
+  outputs.file(outputFile)
 }
 
 
 task prepare {
-  dependsOn syncResources
-  dependsOn syncDocs
+  dependsOn copyResources
+  dependsOn copyDocs
   dependsOn copyHelp
 }
+jar.dependsOn prepare
 
 
 //testReportDirName = "test-reports" // note that test workingDir will be $jalviewDir
@@ -1241,7 +1263,7 @@ task buildIndices(type: JavaExec) {
   dependsOn copyHelp
   classpath = sourceSets.main.compileClasspath
   main = "com.sun.java.help.search.Indexer"
-  workingDir = "${classesDir}/${help_dir}"
+  workingDir = "${helpBuildDir}"
   def argDir = "html"
   args = [ argDir ]
   inputs.dir("${workingDir}/${argDir}")
@@ -1277,7 +1299,8 @@ task linkCheck(type: JavaExec) {
   classpath = files("${jalviewDir}/${utils_dir}")
   main = "HelpLinksChecker"
   workingDir = jalviewDir
-  args = [ "${classesDir}/${help_dir}", "-nointernet" ]
+  def helpBuildDir = "${helpBuildDir}"
+  args = [ helpBuildDir, "-nointernet" ]
 
   def outFOS = new FileOutputStream(helpLinksCheckerOutFile, false) // false == don't append
   def errFOS = outFOS
@@ -1288,13 +1311,13 @@ task linkCheck(type: JavaExec) {
     outFOS,
     errorOutput)
 
-  inputs.dir("${classesDir}/${help_dir}")
+  inputs.dir(helpBuildDir)
   outputs.file(helpLinksCheckerOutFile)
 }
 
 // import the pubhtmlhelp target
 ant.properties.basedir = "${jalviewDir}"
-ant.properties.helpBuildDir = "${jalviewDirAbsolutePath}/${classes_dir}/${help_dir}"
+ant.properties.helpBuildDir = "${jalviewDirAbsolutePath}/${helpBuildDir}"
 ant.importBuild "${utils_dir}/publishHelp.xml"
 
 
@@ -1313,12 +1336,13 @@ jar {
   manifest {
     attributes "Main-Class": main_class,
     "Permissions": "all-permissions",
-    "Application-Name": "Jalview Desktop",
-    "Codebase": application_codebase
+    "Application-Name": install4jApplicationName,
+    "Codebase": application_codebase,
+    "Implementation-Version": JALVIEW_VERSION
   }
 
-  destinationDir = file("${jalviewDir}/${package_dir}")
-  archiveName = rootProject.name+".jar"
+  destinationDirectory = file("${jalviewDir}/${package_dir}")
+  archiveFileName = rootProject.name+".jar"
 
   exclude "cache*/**"
   exclude "*.jar"
@@ -1327,7 +1351,7 @@ jar {
   exclude "**/*.jar.*"
 
   inputs.dir(classesDir)
-  outputs.file("${jalviewDir}/${package_dir}/${archiveName}")
+  outputs.file("${jalviewDir}/${package_dir}/${archiveFileName}")
 }
 
 
@@ -1339,10 +1363,11 @@ task copyJars(type: Copy) {
 
 // doing a Sync instead of Copy as Copy doesn't deal with "outputs" very well
 task syncJars(type: Sync) {
+  dependsOn jar
   from fileTree(dir: "${jalviewDir}/${libDistDir}", include: "**/*.jar").files
   into "${jalviewDir}/${package_dir}"
   preserve {
-    include jar.archiveName
+    include jar.archiveFileName.getOrNull()
   }
 }
 
@@ -1376,7 +1401,8 @@ shadowJar {
     include("*.jar")
   }
   manifest {
-    attributes 'Implementation-Version': JALVIEW_VERSION
+    attributes "Implementation-Version": JALVIEW_VERSION,
+    "Application-Name": install4jApplicationName
   }
   mainClassName = shadow_jar_main_class
   mergeServiceFiles()
@@ -1849,12 +1875,7 @@ task sourceDist(type: Tar) {
 
   def VERSION_UNDERSCORES = JALVIEW_VERSION.replaceAll("\\.", "_")
   def outputFileName = "${project.name}_${VERSION_UNDERSCORES}.tar.gz"
-  // cater for buildship < 3.1 [3.0.1 is max version in eclipse 2018-09]
-  try {
-    archiveFileName = outputFileName
-  } catch (Exception e) {
-    archiveName = outputFileName
-  }
+  archiveFileName = outputFileName
   
   compression Compression.GZIP
   
@@ -1944,7 +1965,7 @@ task helppages {
   dependsOn copyHelp
   dependsOn pubhtmlhelp
   
-  inputs.dir("${classesDir}/${help_dir}")
+  inputs.dir("${helpBuildDir}")
   outputs.dir("${buildDir}/distributions/${help_dir}")
 }
 
@@ -2748,11 +2769,7 @@ task jalviewjsSiteTar(type: Tar) {
   description "Creates a tar.gz file for the website"
   dependsOn jalviewjsBuildSite
   def outputFilename = "jalviewjs-site-${JALVIEW_VERSION}.tar.gz"
-  try {
-    archiveFileName = outputFilename
-  } catch (Exception e) {
-    archiveName = outputFilename
-  }
+  archiveFileName = outputFilename
 
   compression Compression.GZIP
 
index b99cdca..16fe32f 100644 (file)
@@ -60,7 +60,6 @@ jalview_name = Jalview
 getdown_local = false
 getdown_website_dir = getdown/website
 getdown_resource_dir = resource
-#getdown_j11lib_dir = j11lib
 getdown_files_dir = getdown/files
 getdown_lib_dir = getdown/lib
 getdown_launcher = getdown-launcher.jar