- outputs.file("${jalviewDir}/${packageDir}/${archiveName}")
-}
-
-
-task copyJars(type: Copy) {
- from fileTree(dir: classesDir, include: "**/*.jar").files
- into "${jalviewDir}/${packageDir}"
-}
-
-
-// doing a Sync instead of Copy as Copy doesn't deal with "outputs" very well
-task syncJars(type: Sync) {
- from fileTree(dir: "${jalviewDir}/${libDistDir}", include: "**/*.jar").files
- into "${jalviewDir}/${packageDir}"
- preserve {
- include jar.archiveName
- }
-}
-
-
-task makeDist {
- group = "build"
- description = "Put all required libraries in dist"
- // order of "cleanPackageDir", "copyJars", "jar" important!
- jar.mustRunAfter cleanPackageDir
- syncJars.mustRunAfter cleanPackageDir
- dependsOn cleanPackageDir
- dependsOn syncJars
- dependsOn jar
- outputs.dir("${jalviewDir}/${packageDir}")
-}
-
-
-task cleanDist {
- dependsOn cleanPackageDir
- dependsOn cleanTest
- dependsOn clean
-}
-
-shadowJar {
- group = "distribution"
- if (buildDist) {
- dependsOn makeDist
- }
- from ("${jalviewDir}/${libDistDir}") {
- include("*.jar")
- }
- manifest {
- attributes 'Implementation-Version': JALVIEW_VERSION
- }
- mainClassName = shadowJarMainClass
- mergeServiceFiles()
- classifier = "all-"+JALVIEW_VERSION+"-j"+JAVA_VERSION
- minimize()
-}
-
-
-task getdownWebsite() {
- group = "distribution"
- description = "Create the getdown minimal app folder, and website folder for this version of jalview. Website folder also used for offline app installer"
- if (buildDist) {
- dependsOn makeDist
- }
-
- def getdownWebsiteResourceFilenames = []
- def getdownTextString = ""
- def getdownResourceDir = getdownResourceDir
- def getdownAppDir = getdownAppDir
- def getdownResourceFilenames = []
-
- doFirst {
- // clean the getdown website and files dir before creating getdown folders
- delete getdownWebsiteDir
- delete getdownFilesDir
-
- copy {
- from buildProperties
- rename(build_properties_file, getdown_build_properties)
- into getdownAppDir
- }
- getdownWebsiteResourceFilenames += "${getdown_app_dir}/${getdown_build_properties}"
-
- // go through properties looking for getdown_txt_...
- def props = project.properties.sort { it.key }
- 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 (getdownAltMultiJavaLocation != null && getdownAltMultiJavaLocation.length() > 0) {
- props.put("getdown_txt_multi_java_location", getdownAltMultiJavaLocation)
- }
-
- props.put("getdown_txt_appbase", getdown_app_base)
- props.each{ prop, val ->
- if (prop.startsWith("getdown_txt_") && val != null) {
- if (prop.startsWith("getdown_txt_multi_")) {
- def key = prop.substring(18)
- val.split(",").each{ v ->
- def line = "${key} = ${v}\n"
- getdownTextString += line
- }
- } else {
- // file values rationalised
- if (val.indexOf('/') > -1 || prop.startsWith("getdown_txt_resource")) {
- def r = null
- if (val.indexOf('/') == 0) {
- // absolute path
- r = file(val)
- } else if (val.indexOf('/') > 0) {
- // relative path (relative to jalviewDir)
- r = file( "${jalviewDir}/${val}" )
- }
- if (r.exists()) {
- val = "${getdown_resource_dir}/" + r.getName()
- getdownWebsiteResourceFilenames += val
- getdownResourceFilenames += r.getPath()
- }
- }
- if (! prop.startsWith("getdown_txt_resource")) {
- def line = prop.substring(12) + " = ${val}\n"
- getdownTextString += line
- }
- }
- }
- }
-
- getdownWebsiteResourceFilenames.each{ filename ->
- getdownTextString += "resource = ${filename}\n"
- }
- getdownResourceFilenames.each{ filename ->
- copy {
- from filename
- into getdownResourceDir
- }
- }
-
- def codeFiles = []
- fileTree(file(packageDir)).each{ f ->
- if (f.isDirectory()) {
- def files = fileTree(dir: f, include: ["*"]).getFiles()
- codeFiles += files
- } else if (f.exists()) {
- codeFiles += f
- }
- }
- codeFiles.sort().each{f ->
- def name = f.getName()
- def line = "code = ${getdown_app_dir}/${name}\n"
- getdownTextString += line
- copy {
- from f.getPath()
- into getdownAppDir
- }
- }
-
- // NOT USING MODULES YET, EVERYTHING SHOULD BE IN dist
- /*
- if (JAVA_VERSION.equals("11")) {
- def j11libFiles = fileTree(dir: "${jalviewDir}/${j11libDir}", include: ["*.jar"]).getFiles()
- j11libFiles.sort().each{f ->
- def name = f.getName()
- def line = "code = ${getdown_j11lib_dir}/${name}\n"
- getdownTextString += line
- copy {
- from f.getPath()
- into getdownJ11libDir
- }
- }
- }
- */
-
- // getdown-launcher.jar should not be in main application class path so the main application can move it when updated. Listed as a resource so it gets updated.
- //getdownTextString += "class = " + file(getdownLauncher).getName() + "\n"
- getdownTextString += "resource = ${getdown_launcher_new}\n"
- getdownTextString += "class = ${mainClass}\n"
-
- def getdown_txt = file("${getdownWebsiteDir}/getdown.txt")
- getdown_txt.write(getdownTextString)
-
- def launch_jvl = file("${getdownWebsiteDir}/${getdown_launch_jvl}")
- launch_jvl.write("appbase="+props.get("getdown_txt_appbase"))
-
- copy {
- from getdownLauncher
- rename(file(getdownLauncher).getName(), getdown_launcher_new)
- into getdownWebsiteDir
- }
-
- copy {
- from getdownLauncher
- if (file(getdownLauncher).getName() != getdown_launcher) {
- rename(file(getdownLauncher).getName(), getdown_launcher)
- }
- into getdownWebsiteDir
- }
-
- if (! (CHANNEL.startsWith("ARCHIVE") || CHANNEL.startsWith("DEVELOP"))) {
- copy {
- from getdown_txt
- from getdownLauncher
- from "${getdownWebsiteDir}/${getdown_build_properties}"
- if (file(getdownLauncher).getName() != getdown_launcher) {
- rename(file(getdownLauncher).getName(), getdown_launcher)
- }
- into getdownInstallDir
- }
-
- copy {
- from getdownInstallDir
- into getdownFilesInstallDir
- }
- }
-
- copy {
- from getdown_txt
- from launch_jvl
- from getdownLauncher
- from "${getdownWebsiteDir}/${getdown_build_properties}"
- if (file(getdownLauncher).getName() != getdown_launcher) {
- rename(file(getdownLauncher).getName(), getdown_launcher)
- }
- into getdownFilesDir
- }
-
- copy {
- from getdownResourceDir
- into "${getdownFilesDir}/${getdown_resource_dir}"
- }
- }
-
- if (buildDist) {
- inputs.dir("${jalviewDir}/${packageDir}")
- }
- outputs.dir(getdownWebsiteDir)
- outputs.dir(getdownFilesDir)
-}
-
-
-task getdownDigest(type: JavaExec) {
- group = "distribution"
- description = "Digest the getdown website folder"
- dependsOn getdownWebsite
- doFirst {
- classpath = files("${getdownWebsiteDir}/${getdown_launcher}")
- }
- main = "com.threerings.getdown.tools.Digester"
- args getdownWebsiteDir
- inputs.dir(getdownWebsiteDir)
- outputs.file("${getdownWebsiteDir}/digest2.txt")
-}
-
-
-task getdown() {
- group = "distribution"
- description = "Create the minimal and full getdown app folder for installers and website and create digest file"
- dependsOn getdownDigest
- doLast {
- if (reportRsyncCommand) {
- def fromDir = getdownWebsiteDir + (getdownWebsiteDir.endsWith('/')?'':'/')
- def toDir = "${getdown_rsync_dest}/${getdownDir}" + (getdownDir.endsWith('/')?'':'/')
- println "LIKELY RSYNC COMMAND:"
- println "mkdir -p '$toDir'\nrsync -avh --delete '$fromDir' '$toDir'"
- if (RUNRSYNC == "true") {
- exec {
- commandLine "mkdir", "-p", toDir
- }
- exec {
- commandLine "rsync", "-avh", "--delete", fromDir, toDir
- }
- }
- }
- }
-}
-
-
-clean {
- doFirst {
- delete getdownWebsiteDir
- delete getdownFilesDir
- }
-}
-
-
-install4j {
- if (file(install4jHomeDir).exists()) {
- // good to go!
- } else if (file(System.getProperty("user.home")+"/buildtools/install4j").exists()) {
- install4jHomeDir = System.getProperty("user.home")+"/buildtools/install4j"
- } else if (file("/Applications/install4j.app/Contents/Resources/app").exists()) {
- install4jHomeDir = "/Applications/install4j.app/Contents/Resources/app"
- }
- installDir(file(install4jHomeDir))
-
- mediaTypes = Arrays.asList(install4j_media_types.split(","))