-import org.apache.tools.ant.filters.ReplaceTokens
import org.gradle.internal.os.OperatingSystem
-import org.gradle.plugins.ide.eclipse.model.*
-import groovy.transform.ExternalizeMethods
-//import org.eclipse.osgi.*
+import org.gradle.plugins.ide.eclipse.model.Output
+import org.gradle.plugins.ide.eclipse.model.Library
+
import com.diffplug.gradle.GoomphCacheLocations
-/*
buildscript {
- repositories {
- repos
- mavenCentral()
- jcenter()
- }
- dependencies {
- //eclipseDeps.each { compile "p2:${it}:+" }
- //classpath 'org.eclipse.platform:org.eclipse.osgi:3.15.0'
- //compile group: 'org.eclipse.platform', name: 'org.eclipse.osgi', version: '3.15.0'
- //classpath 'biz.aQute.bnd:biz.aQute.bnd.gradle:4.4.0'
- }
}
-*/
plugins {
id 'java'
id 'application'
id 'eclipse'
+
id 'com.diffplug.gradle.oomph.ide' version '3.18.1'
id 'com.diffplug.gradle.equinoxlaunch' version '3.18.1'
+ id 'com.diffplug.gradle.eclipse.mavencentral' version '3.18.1'
+ id 'com.diffplug.gradle.p2.asmaven' version '3.18.1'
+}
- //id 'com.diffplug.gradle.p2.asmaven' version '3.18.1'
+def jalviewDirAbsolutePath = file(jalviewDir).getAbsolutePath()
+def useIde = useGoomph.equals("true")
- //id 'org.eclipse.osgi' version '3.15.0'
- //id 'osgi'
+repositories {
+ jcenter()
+ mavenCentral()
+ flatDir {
+ dirs gradlePluginsDir
+ }
+ if (true || useIde) {
+ flatDir {
+ dirs jalviewjs_utils_dir+"/"+jalviewjs_eclipse_dropins_dir
+ }
+ }
}
+configurations {
+ jalviewjsIde
+}
-/*
-def eclipseDeps = [
- // The dependencies we actually use
- 'org.eclipse.jdt.core',
- 'org.eclipse.text',
-
- // Their transitives
- 'org.eclipse.core.contenttype',
- 'org.eclipse.core.jobs',
- 'org.eclipse.core.runtime',
- 'org.eclipse.core.resources',
- 'org.eclipse.equinox.common',
- 'org.eclipse.equinox.preferences',
- //'org.eclipse.osgi'
-]
-*/
-/*
-p2AsMaven {
- group 'p2', {
- repoEclipse goomph_eclipse_version
- eclipseDeps.each { p2.addIU(it) }
- eclipseDeps.each { p2.addIU(it + '.source') }
+if (useIde) {
+
+ p2AsMaven {
+ group 'eclipseDeps', {
+ repoEclipse goomph_eclipse_repo_version
+ //slicingOption 'latestVersionOnly', 'true'
+ iu 'org.eclipse.update.configurator'
+
+
+ iu 'org.eclipse.jdt.apt.core'
+ iu 'org.eclipse.jdt.core'
+ iu 'org.eclipse.jdt.annotation'
+
+ }
+ group 'ecjDeps', {
+ repo 'https://download.eclipse.org/eclipse/updates/4.13/R-4.13-201909161045/'
+ iu 'org.eclipse.debug.core'
+ iu 'org.eclipse.jdt.apt.pluggable.core'
+ iu 'org.eclipse.jdt.apt.ui'
+ iu 'org.eclipse.jdt.compiler.apt'
+ iu 'org.eclipse.jdt.compiler.tool'
+ iu 'org.eclipse.jdt.core.manipulation'
+ iu 'org.eclipse.jdt.debug'
+ iu 'org.eclipse.jdt.debug.ui'
+ iu 'org.eclipse.jdt.doc.user'
+ iu 'org.eclipse.jdt.junit'
+ iu 'org.eclipse.jdt.junit.core'
+ iu 'org.eclipse.jdt.junit4.runtime'
+ iu 'org.eclipse.jdt.junit4.runtime'
+ iu 'org.eclipse.jdt.junit5.runtime'
+ iu 'org.eclipse.jdt.launching'
+ iu 'org.eclipse.jdt.ui'
+
+ iu 'org.eclipse.jdt.launching.macosx'
+ iu 'org.eclipse.jdt.launching.ui.macosx'
+ }
+ group 'eclipseOrbit', {
+ repo goomph_orbit_repo
+ slicingOption 'latestVersionOnly', 'true'
+ iu 'javax.el'
+ iu 'javax.servlet'
+ iu 'javax.servlet.jsp'
+ iu 'org.apache.ant'
+ iu 'org.apache.batik.constants'
+ iu 'org.apache.batik.css'
+ iu 'org.apache.batik.i18n'
+ iu 'org.apache.batik.util'
+ iu 'org.apache.commons.beanutils'
+ iu 'org.apache.commons.collections'
+ iu 'org.apache.commons.jxpath'
+ iu 'org.apache.commons.io'
+ iu 'org.apache.commons.logging'
+ iu 'org.apache.xmlgraphics'
+ iu 'org.jdom'
+ iu 'org.w3c.dom.events'
+ iu 'org.w3c.dom.smil'
+ iu 'org.w3c.dom.svg'
+ }
}
-}
-*/
+} // if (useIde) {}
-/*
dependencies {
- //eclipseDeps.each { compile "p2:${it}:+" }
- //implementation 'org.eclipse.platform:org.eclipse.osgi:3.15.0'
- //compile 'org.eclipse.platform:org.eclipse.osgi:3.15.0'
- //classpath 'biz.aQute.bnd:biz.aQute.bnd.gradle:4.4.0'
-}
+/*
+ source.addMaven('org.eclipse.platform:org.eclipse.osgi:3.14.0')
+ // ...
+ compile 'eclipseOrbit:org.apache.ant:1.10.5.v20190526-1402'
+ // ...
+ compile 'org.osgi:org.osgi.service.component:1.4.0'
+ // ...
*/
+ jalviewjsIde name: 'net.sf.j2s.core-3.2.4'
+ jalviewjsIde name: 'com.seeq.eclipse.importprojects-1.4.0'
+}
-repositories {
- jcenter()
- mavenCentral()
- flatDir {
- dirs gradlePluginsDir
+
+
+
+
+
+if (useIde) {
+
+ eclipseMavenCentral {
+ // TODO: How do I add these to the jalviewjsIde configuration and not the compile configuration?
+ release goomph_eclipse_repo_version, {
+
+ //def platformCode="cocoa.macosx.x86_64"
+ //compile 'org.eclipse.swt.'+platformCode
+ useNativesForRunningPlatform()
+ compile 'org.eclipse.swt'
+
+ compile 'org.eclipse.ant.core'
+ compile 'org.eclipse.compare.core'
+ compile 'org.eclipse.core.commands'
+ compile 'org.eclipse.core.contenttype'
+ compile 'org.eclipse.core.jobs'
+ compile 'org.eclipse.core.expressions'
+ compile 'org.eclipse.core.filesystem'
+ compile 'org.eclipse.core.resources'
+ compile 'org.eclipse.core.runtime'
+ compile 'org.eclipse.core.variables'
+ compile 'org.eclipse.equinox.common'
+ compile 'org.eclipse.equinox.ds'
+ compile 'org.eclipse.equinox.app'
+ compile 'org.eclipse.equinox.registry'
+ compile 'org.eclipse.equinox.preferences'
+ compile 'org.eclipse.jface'
+ compile 'org.eclipse.osgi'
+ compile 'org.eclipse.osgi.services'
+ compile 'org.eclipse.ui'
+ compile 'org.eclipse.ui.workbench'
+ compile 'org.eclipse.team.core'
+ compile 'org.eclipse.text'
+
+ compile 'org.eclipse.e4.core.commands'
+ compile 'org.eclipse.e4.core.contexts'
+ compile 'org.eclipse.e4.core.di'
+ compile 'org.eclipse.e4.core.di.annotations'
+ compile 'org.eclipse.e4.core.di.extensions.supplier'
+ compile 'org.eclipse.e4.core.services'
+ compile 'org.eclipse.e4.ui.bindings'
+ compile 'org.eclipse.e4.ui.model.workbench'
+ compile 'org.eclipse.e4.ui.workbench'
+ compile 'org.eclipse.e4.ui.workbench.swt'
+ compile 'org.eclipse.e4.ui.css.core'
+ compile 'org.eclipse.e4.ui.css.swt'
+ compile 'org.eclipse.e4.ui.css.swt.theme'
+ compile 'org.eclipse.e4.ui.services'
+ compile 'org.eclipse.e4.ui.di'
+
+ //compile 'org.eclipse.e4.core.di.internal.extensions'
+
+ // org.eclipse.update.configurator deliberately kept at 3.3.400 see https://github.com/diffplug/goomph/issues/69
+ // this module downloaded in equinoxLaunch configuration (to specify version)
+ //compile 'org.eclipse.update.configurator'
+
+
+ }
}
-}
+
+} // if (useIde) {}
+
+
+
+
+
+
+
+
+
+
mainClassName = launcherClass
def classes = "$jalviewDir/$classesDir"
// configure classpath/args for j8/j11 compilation
-def jalviewDirAbsolutePath = file(jalviewDir).getAbsolutePath()
def libDir
def libDistDir
def compile_source_compatibility
throw new GradleException("JAVA_VERSION=$JAVA_VERSION not currently supported by Jalview")
}
+
sourceSets {
main {
HashMap<String, Boolean> addedSrcPath = new HashMap<>();
cp.entries.each { entry ->
if (entry.kind == 'src') {
- if (addedSrcPath.getAt(entry.path) || !(entry.path == "src" || entry.path == "test")) {
+ if (addedSrcPath.getAt(entry.path) || !(entry.path == sourceDir || entry.path == "test")) {
removeTheseToo += entry
} else {
addedSrcPath.putAt(entry.path, true)
+def eclipseWorkspace
+task jalviewjsSetEclipseWorkspace {
+ def eclipseWsDir = useIde?goomph_workspace:jalviewjs_eclipse_workspace
+ eclipseWorkspace = file(eclipseWsDir)
+ if (!eclipseWorkspace.exists()) {
+ eclipseWorkspace = file("${buildDir}/tmp/eclipse-workspace")
+ //eclipseWorkspace.deleteOnExit()
+ } else if (useIde) {
+ com.diffplug.gradle.GoomphCacheLocations.override_workspaces = file(eclipseWorkspace.getAbsolutePath())
+ eclipseWorkspace = oomphIde.workspaceRegistry.workspaceDir(project, file(oomphIde.ideDir))
+ }
+ println("ECLIPSE WORKSPACE: "+eclipseWorkspace.getPath())
+}
+if (useIde) {
-GoomphCacheLocations.override_workspaces = file(jalviewDirAbsolutePath+"/"+goomph_workspace)
-oomphIde {
- repoEclipse goomph_eclipse_version
- jdt {
- /*
- installedJre {
+ oomphIde {
+ repoEclipse goomph_eclipse_version
+ jdt {
+ /*
+ installedJre {
//markDefault = true
//executionEnvironments = [ eclipse.jdt.javaRuntimeName ]
+ }
+ */
+ //compilerComplianceLevel( JAVA_INTEGER_VERSION )
}
- */
- //compilerComplianceLevel( JAVA_INTEGER_VERSION )
- }
- //repo 'http://download.eclipse.org/buildship/updates/e45/milestones/3.x/'
- repo goomph_repo_buildship
- feature goomph_feature_buildship
-}
-equinoxLaunch {
- headlessAppSetup {
+ repo "https://download.eclipse.org/releases/${goomph_eclipse_version_name}/"
+ feature goomph_eclipse_jee_feature, goomph_eclipse_jee_version
+
+ thirdParty {
+ buildship {
+ repo goomph_repo_buildship
+ feature goomph_feature_buildship
+ }
- launchTask 'ideJalviewjsBuild', {
- //it.args = ["-nosplash", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-data", tempEclipseWorkspace, "-"+jalviewjs_eclipseBuildArg, eclipse_project_name ]
- it.args = ["-nosplash", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-"+jalviewjs_eclipseBuildArg, eclipse_project_name ]
}
- }
-}
-task ideCopyDropins (type: Copy) {
- dependsOn ideSetupP2
+ workspaceProp '.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs', {
+ it.put('org.eclipse.jdt.launching.PREF_VM_XML', goomph_PREF_VM_XML)
+ }
- def inputFiles = fileTree(jalviewjs_utils_dir+"/"+jalviewjs_eclipse_dropins_dir)
- def outputDir = oomphIde.ideDir + "/" + com.diffplug.gradle.FileMisc.macContentsEclipse() + "/dropins"
- from inputFiles
- into outputDir
- def outputFiles = []
- rename { filename ->
- outputFiles += outputDir+"/"+filename
- println("COPYING ${filename} to ${outputFiles}")
- null
+ // CLI ARGS HERE!
}
- outputs.files outputFiles
- inputs.files inputFiles
-}
+ equinoxLaunch {
+ ideJalviewjsBuildSetup {
+
+ source.addConfiguration(configurations.compile)
+ source.addConfiguration(configurations.jalviewjsIde)
+
+ source.addMaven('eclipseOrbit:org.apache.ant:1.10.5.v20190526-1402')
+ source.addMaven('eclipseOrbit:javax.servlet:3.1.0.v201410161800')
+ source.addMaven('eclipseOrbit:javax.servlet.jsp:2.2.0.v201112011158')
+ source.addMaven('eclipseOrbit:javax.el:2.2.0.v201303151357')
+ source.addMaven('eclipseOrbit:org.apache.batik.constants:1.11.0.v20190515-0436')
+ source.addMaven('eclipseOrbit:org.apache.batik.css:1.11.0.v20190515-0436')
+ source.addMaven('eclipseOrbit:org.apache.batik.i18n:1.11.0.v20190515-0436')
+ source.addMaven('eclipseOrbit:org.apache.batik.util:1.11.0.v20190515-0436')
+ source.addMaven('eclipseOrbit:org.apache.commons.beanutils:1.8.0.v201205091237')
+ source.addMaven('eclipseOrbit:org.apache.commons.collections:3.2.2.v201511171945')
+ source.addMaven('eclipseOrbit:org.apache.xmlgraphics:2.3.0.v20190515-0436')
+ source.addMaven('eclipseOrbit:org.apache.commons.jxpath:1.3.0.v200911051830')
+ source.addMaven('eclipseOrbit:org.apache.commons.io:2.6.0.v20190123-2029')
+ source.addMaven('eclipseOrbit:org.apache.commons.logging:1.2.0.v20180409-1502')
+ source.addMaven('eclipseOrbit:org.jdom:1.1.1.v201101151400')
+ source.addMaven('eclipseOrbit:org.w3c.dom.svg:1.1.0.v201011041433')
+ source.addMaven('eclipseOrbit:org.w3c.dom.smil:1.0.1.v200903091627')
+ source.addMaven('eclipseOrbit:org.w3c.dom.events:3.0.0.draft20060413_v201105210656')
+
+ source.addMaven('org.eclipse.birt.runtime:com.ibm.icu:56.1.0.v201601250100')
+ source.addMaven('javax.inject:com.springsource.javax.inject:1.0.0')
+ source.addMaven('org.apache.felix:org.apache.felix.scr:2.1.16')
+ source.addMaven('org.osgi:org.osgi.framework:1.9.0')
+ source.addMaven('org.osgi:org.osgi.service.component:1.4.0')
+ source.addMaven('org.osgi:org.osgi.service.event:1.4.0')
+ source.addMaven('org.osgi:org.osgi.util.promise:1.1.1')
+ source.addMaven('org.osgi:org.osgi.util.function:1.1.0')
+
+ source.addMaven('ecjDeps:org.eclipse.debug.core:3.14.0.v20190812-1404')
+ source.addMaven('ecjDeps:org.eclipse.jdt.annotation:2.2.300.v20190328-1431')
+ source.addMaven('ecjDeps:org.eclipse.jdt.apt.core:3.6.500.v20190703-0914')
+ source.addMaven('ecjDeps:org.eclipse.jdt.core:3.19.0.v20190903-0936')
+ source.addMaven('ecjDeps:org.eclipse.jdt.apt.pluggable.core:1.2.400.v20190626-1334')
+ //source.addMaven('ecjDeps:org.eclipse.jdt.apt.ui:3.6.300.v20190727-1243')
+ source.addMaven('ecjDeps:org.eclipse.jdt.compiler.apt:1.3.700.v20190704-1731')
+ source.addMaven('ecjDeps:org.eclipse.jdt.compiler.tool:1.2.600.v20190322-0450')
+ //source.addMaven('ecjDeps:org.eclipse.jdt.core.manipulation:1.12.100.v20190904-0645')
+ source.addMaven('ecjDeps:org.eclipse.jdt.debug:3.13.100.v20190902-1050')
+ //source.addMaven('ecjDeps:org.eclipse.jdt.debug.ui:3.10.400.v20190815-2202')
+ source.addMaven('ecjDeps:org.eclipse.jdt.doc.user:3.15.400.v20190904-0724')
+ //source.addMaven('ecjDeps:org.eclipse.jdt.junit:3.11.500.v20190809-1613')
+ //source.addMaven('ecjDeps:org.eclipse.jdt.junit.core:3.10.400.v20190625-1910')
+ //source.addMaven('ecjDeps:org.eclipse.jdt.junit4.runtime:1.1.1000.v20190510-0840')
+ //source.addMaven('ecjDeps:org.eclipse.jdt.junit4.runtime:1.1.1000.v20190510-0840')
+ //source.addMaven('ecjDeps:org.eclipse.jdt.junit5.runtime:1.0.600.v20190610-0439')
+ source.addMaven('ecjDeps:org.eclipse.jdt.launching:3.15.0.v20190826-1639')
+ //source.addMaven('ecjDeps:org.eclipse.jdt.ui:3.19.0.v20190827-1733')
+
+ //source.addMaven('ecjDeps:org.eclipse.jdt.launching.macosx:3.4.300.v20190510-0639')
+ //source.addMaven('ecjDeps:org.eclipse.jdt.launching.ui.macosx:1.2.300.v20190510-0639')
+
+ // org.eclipse.update.configurator deliberately kept at 3.3.400 see https://github.com/diffplug/goomph/issues/69
+ source.addMaven('org.eclipse.platform:org.eclipse.update.configurator:3.3.400')
+
+
+ launchTask 'ideJalviewjsImport', {
+ it.args = ["-consoleLog", "-nosplash", "--launcher.suppressErrors", "-application", "com.seeq.eclipse.importprojects.headlessimport", "-data", eclipseWorkspace.getPath(), "-import", jalviewDirAbsolutePath ]
+ }
-ide.dependsOn eclipseProject
-ide.dependsOn eclipseClasspath
-ide.dependsOn eclipseJdt
-ide.dependsOn ideCopyDropins
-ideJalviewjsBuild.dependsOn ideSetupWorkspace
-ideJalviewjsBuild.dependsOn ideCopyDropins
+ launchTask 'ideJalviewjsBuild', {
+ oomphIde.workspaceProp '.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs', {
+ it.put('org.eclipse.jdt.launching.PREF_VM_XML', goomph_PREF_VM_XML)
+ }
+
+ def args = ["-consoleLog", "-nosplash", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-data", eclipseWorkspace.getPath(), "-"+jalviewjs_eclipseBuildArg, eclipse_project_name ]
+ println("ARGS="+args)
+
+ it.args = args
+ }
+ }
+ }
+
+ ideSetupWorkspace.dependsOn jalviewjsSetEclipseWorkspace
+ ideSetupWorkspace.outputs.upToDateWhen {file(eclipseWorkspace).exists()}
+
+ task ideSetup {
+ dependsOn ideSetupP2
+ dependsOn ideSetupWorkspace
+ }
+
+} // if (useIde) {}
}
}
-def tempEclipseWorkspace
-task jalviewjsSetTempEclipseWorkspace {
- tempEclipseWorkspace = file(jalviewjs_eclipse_workspace)
- if (!tempEclipseWorkspace.exists()) {
- tempEclipseWorkspace = file("${buildDir}/tmp/eclipse-workspace")
- //tempEclipseWorkspace.deleteOnExit()
- }
- println("ECLIPSE WORKSPACE: "+tempEclipseWorkspace.getPath())
-}
task jalviewjsUnzipFiles {
dependsOn jalviewjsSitePath
def eclipseDropinsDir
def eclipseBinary
task jalviewjsEclipsePaths {
- def eclipseRoot = jalviewjs_eclipse_root
- if (eclipseRoot.startsWith("~")) {
- eclipseRoot = System.getProperty("user.home") + eclipseRoot.substring(1)
+ def eclipseRoot
+ if (useIde) {
+ eclipseRoot = oomphIde.ideDir
+ eclipseDropinsDir = eclipseRoot+"/"+com.diffplug.gradle.FileMisc.macContentsEclipse()+"/dropins"
+ eclipseBinary = eclipseRoot+"/"+com.diffplug.common.swt.os.OS.getNative().winMacLinux("", "Contents/MacOS", "")+"/eclipse"
+ } else {
+ eclipseRoot = jalviewjs_eclipse_root
+ if (eclipseRoot.startsWith("~")) {
+ eclipseRoot = System.getProperty("user.home") + eclipseRoot.substring(1)
+ }
+ if (OperatingSystem.current().isMacOsX()) {
+ eclipseRoot += "/Eclipse.app"
+ eclipseDropinsDir = eclipseRoot+"/Contents/Eclipse/dropins"
+ eclipseBinary = eclipseRoot+"/Contents/MacOS/eclipse"
+ } else if (OperatingSystem.current().isWindows()) { // check these paths!!
+ eclipseDropinsDir = eclipseRoot+"/dropins"
+ eclipseBinary = eclipseRoot+"/eclipse"
+ } else { // linux or unix
+ eclipseDropinsDir = eclipseRoot+"/dropins"
+ eclipseBinary = eclipseRoot+"/eclipse"
+ }
}
- if (OperatingSystem.current().isMacOsX()) {
- eclipseRoot += "/Eclipse.app"
- eclipseDropinsDir = eclipseRoot+"/Contents/Eclipse/dropins"
- eclipseBinary = eclipseRoot+"/Contents/MacOS/eclipse"
- } else if (OperatingSystem.current().isWindows()) { // check these paths!!
- eclipseDropinsDir = eclipseRoot+"/dropins"
- eclipseBinary = eclipseRoot+"/eclipse"
- } else { // linux or unix
- eclipseDropinsDir = eclipseRoot+"/dropins"
- eclipseBinary = eclipseRoot+"/eclipse"
- }
}
-task jalviewjsEclipseCopyDropins (type: Copy) {
+task jalviewjsEclipseCopyDropins {
dependsOn jalviewjsEclipsePaths
- def inputFiles = fileTree(jalviewjs_utils_dir+"/"+jalviewjs_eclipse_dropins_dir)
+ def inputFiles = fileTree(dir: jalviewjs_utils_dir+"/"+jalviewjs_eclipse_dropins_dir, include: "*.jar")
def outputDir = eclipseDropinsDir
- from inputFiles
- into outputDir
- def outputFiles = []
- rename { filename ->
- outputFiles += outputDir+"/"+filename
- null
- }
- outputs.files outputFiles
inputs.files inputFiles
+ inputFiles.each { file ->
+ outputs.file(outputDir+"/"+file.name)
+ }
+
+ doLast {
+ def outputFiles = []
+ inputFiles.each { file ->
+ copy {
+ from file
+ into outputDir
+ }
+ }
+ }
}
task jalviewjsEclipseSetup {
dependsOn jalviewjsEclipseCopyDropins
- dependsOn jalviewjsSetTempEclipseWorkspace
+ dependsOn jalviewjsSetEclipseWorkspace
}
task cleanJalviewjs {
dependsOn jalviewjsSitePath
- /*
delete jalviewDir+"/"+jalviewjsSiteDir
- delete jalviewDir+"/"+eclipse_bin_dir
- delete file(tempEclipseWorkspace.getAbsolutePath()+"/.metadata")
- delete jalviewDir+"/"+jalviewjs_j2s_settings
- */
+ //delete jalviewDir+"/"+eclipse_bin_dir
+ //delete file(eclipseWorkspace.getAbsolutePath()+"/.metadata")
+ //delete jalviewDir+"/"+jalviewjs_j2s_settings
}
task jalviewjsProjectImport(type: Exec) {
dependsOn jalviewjsEclipsePaths
dependsOn jalviewjsEclipseSetup
executable(eclipseBinary)
- args(["-nosplash", "--launcher.suppressErrors", "-application", "com.seeq.eclipse.importprojects.headlessimport", "-data", tempEclipseWorkspace.getPath(), "-import", jalviewDirAbsolutePath])
+ args(["-nosplash", "--launcher.suppressErrors", "-application", "com.seeq.eclipse.importprojects.headlessimport", "-data", eclipseWorkspace.getPath(), "-import", jalviewDirAbsolutePath])
- def projdir = tempEclipseWorkspace.getPath()+"/.metadata/.plugins/org.eclipse.core.resources/.projects/jalview/org.eclipse.jdt.core"
+ def projdir = eclipseWorkspace.getPath()+"/.metadata/.plugins/org.eclipse.core.resources/.projects/jalview/org.eclipse.jdt.core"
inputs.file(jalviewDir+"/.project")
outputs.dir(projdir)
outputs.upToDateWhen { file(projdir).exists() }
dependsOn jalviewjsProjectImport
dependsOn jalviewjsEclipsePaths
executable(eclipseBinary)
- args(["-nosplash", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-data", tempEclipseWorkspace, "-"+jalviewjs_eclipseBuildArg, eclipse_project_name ])
+ args(["-nosplash", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-data", eclipseWorkspace, "-"+jalviewjs_eclipseBuildArg, eclipse_project_name ])
def stdout
def stderr
doLast {
if (stdout.toString().contains("Error processing ")) {
// j2s did not complete transpile
- throw new TaskExecutionException("Error during transpilation:\n${stderr}\n")
+ throw new GradleException("Error during transpilation:\n${stderr}\nSee eclipse transpile log files '${jalviewjsBuildDir}/${jalviewjs_j2s_stdout}' and '${jalviewjsBuildDir}/${jalviewjs_j2s_stderr}'\n")
}
}
inputs.dir(sourceDir)
outputs.dir(eclipse_bin_dir+"/main")
- outputs.dir(jalviewjsSiteDir+"/"+jalviewjs_j2s_subdir)
+ outputs.files(
+ fileTree(
+ dir: jalviewjsSiteDir+"/"+jalviewjs_j2s_subdir,
+ includes: [ "**/*.js" ],
+ excludes: [
+ //jalviewjsSiteDir+"/"+jalviewjs_j2s_subdir+"/intervalstore/**",
+ //jalviewjsSiteDir+"/"+jalviewjs_j2s_subdir+"/org/json/**",
+ "intervalstore/**",
+ "org/json/**",
+ ]
+ ).files
+ )
outputs.file(jalviewjsSiteDir+jalviewjs_server_resource)
- outputs.upToDateWhen { file(jalviewjsSiteDir+jalviewjs_server_resource).exists() }
}
+jalviewjsUnzipFiles.mustRunAfter jalviewjsTranspile
+jalviewjsTranspile.mustRunAfter jalviewjsCopyResources
+jalviewjsTranspile.mustRunAfter jalviewjsCopySiteResources
-
-task jalviewjsBuildSite {
+task jalviewjsPrepareSite {
+ group "JalviewJS"
+ description "Prepares the website folder including unzipping files and copying resources"
dependsOn jalviewjsSitePath
dependsOn jalviewjsUnzipFiles
dependsOn jalviewjsCopyResources
dependsOn jalviewjsCopySiteResources
+}
+
+task jalviewjsBuildSite {
+ group "JalviewJS"
+ description "Builds the whole website including transpiled code"
+ dependsOn jalviewjsPrepareSite
dependsOn jalviewjsTranspile
}
task jalviewjsSiteTar(type: Tar) {
+ group "JalviewJS"
+ description "Creates a tar.gz file for the website"
dependsOn jalviewjsBuildSite
- def outputFilename = "site.tar.gz"
+ def outputFilename = "jalviewjs-site-${JALVIEW_VERSION}.tar.gz"
try {
archiveFileName = outputFilename
} catch (Exception e) {
inputs.dir(jalviewjsSiteDir)
}
-task jalviewjs {
- dependsOn jalviewjsBuildSite
-}
-
def jalviewjsServer = null
task jalviewjsServerStart {
+ group "JalviewJS"
+ description "Starts a webserver on localhost to test the website"
dependsOn jalviewjsSitePath
doLast {
def doc_root = new File(jalviewDirAbsolutePath +"/"+ jalviewjsSiteDir)
jalviewjsServer = factory.start(doc_root, port)
running = true
- println("SERVER STARTED with document root ${doc_root}.\nGo to "+jalviewjsServer.getResourceUrl(jalviewjs_server_resource)+" . Run gradle jalviewjsServerStop to stop.")
+ println("SERVER STARTED with document root ${doc_root}.\nGo to "+jalviewjsServer.getResourceUrl(jalviewjs_server_resource)+" . Run gradle --stop to stop (kills all gradle daemons).")
//println("Ctrl-c to stop.");java.lang.Thread.sleep(Integer.valueOf(jalviewjs_server_wait)*1000);
} catch (Exception e) {
port++;
}
*/
-project.afterEvaluate {
- tasks.findByName('ideJalviewjsBuild').dependsOn eclipseProject
- tasks.findByName('ideJalviewjsBuild').dependsOn eclipseClasspath
- tasks.findByName('ideJalviewjsBuild').dependsOn eclipseJdt
+task ideBuildSite {
+ dependsOn jalviewjsSitePath
+ dependsOn jalviewjsUnzipFiles
+ dependsOn jalviewjsCopyResources
+ dependsOn jalviewjsCopySiteResources
+ /* see project.afterEvaluate
+ dependsOn ideJalviewjsBuild
+ */
+}
+
+
+
+
+task jalviewjs {
+ if (useIde) {
+ dependsOn ideBuildSite
+ } else {
+ dependsOn jalviewjsBuildSite
+ }
}
+project.afterEvaluate {
+
+ tasks.findByName('eclipse').dependsOn tasks.findByName('jalviewjsCreateJ2sSettings')
+
+ if (useIde) {
+ tasks.findByName('ideJalviewjsImport').dependsOn eclipseProject
+ tasks.findByName('ideJalviewjsImport').dependsOn eclipseClasspath
+ tasks.findByName('ideJalviewjsImport').dependsOn eclipseJdt
+ tasks.findByName('ideJalviewjsImport').dependsOn jalviewjsSetEclipseWorkspace
+
+ tasks.findByName('ideJalviewjsBuild').dependsOn tasks.findByName('ideJalviewjsImport')
+ tasks.findByName('ideJalviewjsBuild').dependsOn tasks.findByName('jalviewjsCreateJ2sSettings')
+
+ tasks.findByName('ide').dependsOn eclipseProject
+ tasks.findByName('ide').dependsOn eclipseClasspath
+ tasks.findByName('ide').dependsOn eclipseJdt
+
+ ideBuildSite.dependsOn tasks.findByName('ideJalviewjsBuild')
+ }
+
+}