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()
}
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
gitHash = ""
gitBranch = ""
- println("Using a ${CHANNEL} profile. appbase=${getdown_app_base}")
+ println("Using a ${CHANNEL} profile.")
}
def JAVA_INTEGER_VERSION
}
from(inputDir) {
include '**/*.gif'
- include '**/*.jpg'
- include '**/*.png'
+ include '**/*.jpg'
+ include '**/*.png'
}
into outputDir
task syncResources(type: Sync) {
from "${jalviewDir}/${resourceDir}"
include "**/*.*"
- exclude "install4j"
into "${classes}"
preserve {
include "**"
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
def eclipseDebug = false
def eclipseVersionSuffix = ""
task jalviewjsEclipsePaths {
- def eclipseRoot
def eclipseProduct
- eclipseRoot = jalviewjs_eclipse_root
- if (eclipseRoot.startsWith("~")) {
+ def eclipseRoot = jalviewjs_eclipse_root
+ if (eclipseRoot.startsWith("~/")) {
eclipseRoot = System.getProperty("user.home") + eclipseRoot.substring(1)
}
if (OperatingSystem.current().isMacOsX()) {
fis.close()
assumedVersion = false
}
+ /*
String[] v = eclipseVersion.split("\\.")
def v0 = Integer.valueOf(v[0])
def v1 = Integer.valueOf(v[1])
} 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"))
}
}
-task jalviewjsEclipseCopyDropins {
+task eclipseSetup {
+ dependsOn eclipseProject
+ dependsOn eclipseClasspath
+ dependsOn eclipseJdt
+}
+
+/* using the Copy task below
+task OLDjalviewjsEclipseCopyDropins {
dependsOn jalviewjsEclipsePaths
+ dependsOn jalviewjsCleanEclipse
def inputFiles = fileTree(dir: utilsDropinsDir, include: "*.jar")
+ inputFiles += file(jalviewjs_j2s_plugin)
def outputDir = eclipseDropinsDir
inputs.files inputFiles
}
}
}
+*/
// this version (type: Copy) will delete anything in the eclipse dropins folder that isn't in fromDropinsDir
-task NEWjalviewjsEclipseCopyDropins(type: Copy) {
+task jalviewjsEclipseCopyDropins(type: Copy) {
dependsOn jalviewjsEclipsePaths
+
from utilsDropinsDir
into eclipseDropinsDir
+
+ doLast {
+ copy {
+ from jalviewjs_j2s_plugin
+ into eclipseDropinsDir
+ }
+ }
}
+// this eclipse -clean doesn't actually work
+task jalviewjsCleanEclipse(type: Exec) {
+ dependsOn eclipseSetup
+ dependsOn jalviewjsEclipsePaths
+ dependsOn jalviewjsEclipseCopyDropins
+
+ executable(eclipseBinary)
+ args(["-nosplash", "--launcher.suppressErrors", "-data", eclipseWorkspace.getPath(), "-clean", "-console", "-consoleLog"])
+ if (eclipseDebug) {
+ args += "-debug"
+ }
+ args += "-l"
+
+ def inputString = """exit
+y
+"""
+ def inputByteStream = new ByteArrayInputStream(inputString.getBytes())
+ standardInput = inputByteStream
+
+ doFirst {
+ println("CLEAN ECLIPSE_DEBUG=${eclipseDebug}")
+ }
+}
+/* not really working yet
+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) {
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
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
outputFiles += "${outputDir}/${filename}"
null
}
+ preserve {
+ include "**"
+ }
outputs.files outputFiles
inputs.files inputFiles
}
task jalviewjsProjectImport(type: Exec) {
- dependsOn eclipseProject
- dependsOn eclipseClasspath
- dependsOn eclipseJdt
+ dependsOn eclipseSetup
dependsOn jalviewjsEclipsePaths
dependsOn jalviewjsEclipseSetup
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}")
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
def logOutFileName = "${jalviewDirAbsolutePath}/${jalviewjsBuildDir}/${jalviewjs_j2s_stdout}"
def logOutFile = file(logOutFileName)
logOutFile.createNewFile()
- def logOutFOS = new FileOutputStream(logOutFile, false)
+ logOutFile.text = """ROOT: ${jalviewjs_eclipse_root}
+BINARY: ${eclipseBinary}
+VERSION: ${eclipseVersion}
+WORKSPACE: ${eclipseWorkspace}
+DEBUG: ${eclipseDebug}
+----
+"""
+ def logOutFOS = new FileOutputStream(logOutFile, true) // true == append
//def logErrFileName = "${jalviewjsBuildDir}/${jalviewjs_j2s_stderr}"
//def logErrFile = file(logFileName)
//logErrFile.createNewFile()
//def logErrFOS = new FileErrputStream(logErrFile, false)
// combine stdout and stderr
def logErrFOS = logOutFOS
+
if (jalviewjs_j2s_to_console.equals("true")) {
standardOutput = new org.apache.tools.ant.util.TeeOutputStream(
new org.apache.tools.ant.util.TeeOutputStream(
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
}
outputs.file(htmlFile)
+ outputs.upToDateWhen({false})
}
task cleanJalviewjsAll {