import org.gradle.plugins.ide.eclipse.model.*
import groovy.transform.ExternalizeMethods
+
plugins {
id 'java'
id 'application'
}
cp.entries.removeAll(removeTheseToo)
- cp.entries += new Output("bin/main")
+ cp.entries += new Output(eclipse_bin_dir+"/main")
cp.entries += new Library(fileReference(helpParentDir))
cp.entries += new Library(fileReference(resourceDir))
//autoBuildTasks eclipseClasspath
} // eclipse
+/*
compileJava {
doFirst {
clean {
delete sourceSets.main.java.outputDir
}
+*/
-
-task jalviewjs_unzipFiles {
+task jalviewjsUnzipFiles {
def zipFiles = fileTree(dir: jalviewjs_utils_dir+"/"+jalviewjs_libjs_dir).include("*.zip")
zipFiles += jalviewjs_utils_dir+"/"+jalviewjs_swingjs_zip
def eclipseBinary
def eclipseDropinsDir
def eclipsePluginsDir
-task jalviewjs_eclipsePaths {
+task jalviewjsEclipsePaths {
+ def eclipseRoot = jalviewjs_eclipse_root
+ if (eclipseRoot.startsWith("~")) {
+ eclipseRoot = System.getProperty("user.home") + eclipseRoot.substring(1)
+ }
if (OperatingSystem.current().isMacOsX()) {
- eclipseDropinsDir = jalviewjs_eclipse_root+"/Contents/Eclipse/dropins"
- eclipsePluginsDir = jalviewjs_eclipse_root+"/Contents/Eclipse/plugins"
- eclipseBinary = jalviewjs_eclipse_root+"/Contents/MacOS/eclipse"
- } else if (OperatingSystem.current().isWindows()) { // check this!
- eclipseDropinsDir = jalviewjs_eclipse_root+"/dropins"
- eclipsePluginsDir = jalviewjs_eclipse_root+"/plugins"
- eclipseBinary = jalviewjs_eclipse_root+"/eclipse"
+ eclipseRoot += "/Eclipse.app"
+ eclipseDropinsDir = eclipseRoot+"/Contents/Eclipse/dropins"
+ eclipsePluginsDir = eclipseRoot+"/Contents/Eclipse/plugins"
+ eclipseBinary = eclipseRoot+"/Contents/MacOS/eclipse"
+ } else if (OperatingSystem.current().isWindows()) { // check these paths!!
+ eclipseDropinsDir = eclipseRoot+"/dropins"
+ eclipsePluginsDir = eclipseRoot+"/plugins"
+ eclipseBinary = eclipseRoot+"/eclipse"
} else { // linux or unix
- eclipseDropinsDir = jalviewjs_eclipse_root+"/dropins"
- eclipsePluginsDir = jalviewjs_eclipse_root+"/plugins"
- eclipseBinary = jalviewjs_eclipse_root+"/eclipse"
+ eclipseDropinsDir = eclipseRoot+"/dropins"
+ eclipsePluginsDir = eclipseRoot+"/plugins"
+ eclipseBinary = eclipseRoot+"/eclipse"
}
+ println("ECLIPSE ROOT: "+eclipseRoot)
}
-task jalviewjs_eclipse_copy_dropins (type: Copy) {
- dependsOn jalviewjs_eclipsePaths
+task jalviewjsEclipseCopyDropins (type: Copy) {
+ dependsOn jalviewjsEclipsePaths
def inputFiles = fileTree(jalviewjs_utils_dir+"/"+jalviewjs_eclipse_dropins_dir)
def outputDir = eclipseDropinsDir
+
from inputFiles
into outputDir
+ def outputFiles = []
+ rename { filename ->
+ outputFiles += outputDir+"/"+filename
+ null
+ }
+ outputs.files outputFiles
inputs.files inputFiles
- //outputs.dir outputDir
}
-task jalviewjs_eclipse_copy_plugins (type: Copy) {
- dependsOn jalviewjs_eclipsePaths
+task jalviewjsEclipseCopyPlugins (type: Copy) {
+ dependsOn jalviewjsEclipsePaths
def inputFiles = fileTree(jalviewjs_utils_dir+"/"+jalviewjs_eclipse_plugins_dir)
def outputDir = eclipsePluginsDir
+
from inputFiles
into outputDir
- //inputs.files inputFiles
- //outputs.dir outputDir
+ def outputFiles = []
+ rename { filename ->
+ outputFiles += outputDir+"/"+filename
+ null
+ }
+ outputs.files outputFiles
+ inputs.files inputFiles
}
def tempEclipseWorkspace = ""
-task jalviewjs_setTempEclipseWorkspace {
+task jalviewjsSetTempEclipseWorkspace {
tempEclipseWorkspace = file(jalviewjs_eclipse_workspace)
if (!tempEclipseWorkspace.exists()) {
tempEclipseWorkspace = File.createTempDir()
- //tempEclipseWorkspace.deleteOnExit()
+ tempEclipseWorkspace.deleteOnExit()
}
+ println("ECLIPSE WORKSPACE: "+tempEclipseWorkspace.getPath())
}
-task jalviewjs_eclipse_setup {
- dependsOn jalviewjs_eclipse_copy_dropins
- dependsOn jalviewjs_eclipse_copy_plugins
- dependsOn jalviewjs_setTempEclipseWorkspace
+task jalviewjsEclipseSetup {
+ dependsOn jalviewjsEclipseCopyDropins
+ dependsOn jalviewjsEclipseCopyPlugins
+ dependsOn jalviewjsSetTempEclipseWorkspace
}
-task jalviewjs_createJ2sSettings(type: WriteProperties) {
+
+task jalviewjsCreateJ2sSettings(type: WriteProperties) {
outputFile (jalviewDir+"/"+jalviewjs_j2s_settings)
def props = project.properties.sort { it.key }
props.each { prop, val ->
- if (prop.startsWith("j2s.") && val != null) {
- property(prop,val)
- }
+ if (prop.startsWith("j2s.") && val != null) {
+ property(prop,val)
+ }
}
outputs.file(outputFile)
}
-task jalviewjs_copyResources (type: Copy) {
- from fileTree(dir: jalviewjs_resource_dir)
- into jalviewjs_site_dir+"/"+jalviewjs_j2s_subdir
+task jalviewjsCopyResources (type: Copy) {
+ def inputFiles = fileTree(dir: jalviewjs_resource_dir)
+ def outputDir = jalviewjs_site_dir+"/"+jalviewjs_j2s_subdir
+
+ from inputFiles
+ into outputDir
+ def outputFiles = []
+ rename { filename ->
+ outputFiles += outputDir+"/"+filename
+ null
+ }
+ outputs.files outputFiles
+ inputs.files inputFiles
}
-task jalviewjs_copySiteResources (type: Copy) {
- from fileTree(dir: jalviewjs_utils_dir+"/"+jalviewjs_site_resource_dir)
- into jalviewjs_site_dir
+task jalviewjsCopySiteResources (type: Copy) {
+ def inputFiles = fileTree(dir: jalviewjs_utils_dir+"/"+jalviewjs_site_resource_dir)
+ def outputDir = jalviewjs_site_dir
+
+ from inputFiles
+ into outputDir
+ def outputFiles = []
+ rename { filename ->
+ outputFiles += outputDir+"/"+filename
+ null
+ }
+ outputs.files outputFiles
+ inputs.files inputFiles
}
-task cleanJalviewjsSite {
- //delete jalviewjs_site_dir
+task cleanJalviewjs {
+ /*
+ delete jalviewDir+"/"+jalviewjs_site_dir
+ delete jalviewDir+"/"+eclipse_bin_dir
+ delete file(tempEclipseWorkspace.getAbsolutePath()+"/.metadata")
+ delete jalviewDir+"/"+jalviewjs_j2s_settings
+ */
}
task jalviewjsProjectImport(type: Exec) {
// work out how to do this!
- //dependsOn eclipse
- dependsOn jalviewjs_eclipsePaths
- dependsOn jalviewjs_eclipse_setup
+ dependsOn eclipseProject
+ dependsOn eclipseClasspath
+ dependsOn eclipseJdt
+ dependsOn jalviewjsEclipsePaths
+ dependsOn jalviewjsEclipseSetup
executable(eclipseBinary)
args(["-nosplash", "--launcher.suppressErrors", "-application", "com.seeq.eclipse.importprojects.headlessimport", "-data", tempEclipseWorkspace.getPath(), "-import", jalviewDirAbsolutePath])
- def tempdir = tempEclipseWorkspace.getPath()+"/.metadata/.plugins/org.eclipse.core.resources/.projects/jalview"
- outputs.dir(tempdir)
+ def projdir = tempEclipseWorkspace.getPath()+"/.metadata/.plugins/org.eclipse.core.resources/.projects/jalview/org.eclipse.jdt.core/"
+ inputs.file(jalviewDir+"/.project")
+ outputs.dir(projdir)
}
task jalviewjsTranspile(type: Exec) {
+ dependsOn jalviewjsCreateJ2sSettings
dependsOn jalviewjsProjectImport
- dependsOn jalviewjs_eclipsePaths
+ dependsOn jalviewjsEclipsePaths
executable(eclipseBinary)
args(["-nosplash", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-data", tempEclipseWorkspace, "-"+jalviewjs_eclipseBuildArg, eclipse_project_name ])
+ inputs.dir(sourceDir)
+ outputs.dir(eclipse_bin_dir+"/main")
+ outputs.file(eclipse_bin_dir+"/main/jalview/bin/Jalview.class")
+ outputs.dir(jalviewjs_site_dir+"/"+jalviewjs_j2s_subdir)
}
task jalviewjsBuildSite {
- dependsOn jalviewjs_unzipFiles
- dependsOn jalviewjs_copyResources
- dependsOn jalviewjs_copySiteResources
+ dependsOn jalviewjsUnzipFiles
+ dependsOn jalviewjsCopyResources
+ dependsOn jalviewjsCopySiteResources
dependsOn jalviewjsTranspile
}
+task jalviewjsSiteTar(type: Tar) {
+ dependsOn jalviewjsBuildSite
+ def outputFilename = "site.tar.gz"
+ try {
+ archiveFileName = outputFilename
+ } catch (Exception e) {
+ archiveName = outputFilename
+ }
+
+ compression Compression.GZIP
+
+ from jalviewjs_site_dir
+ into jalviewjs_site_dir // this is inside the tar file
+
+ inputs.dir(jalviewjs_site_dir)
+}
+
task jalviewjs {
- dependsOn jalviewjs_createJ2sSettings
dependsOn jalviewjsBuildSite
}
+
+task jalviewjsServer {
+ //dependsOn jalviewjsBuildSite
+
+ doLast {
+ SimpleHttpFileServerFactory factory = new SimpleHttpFileServerFactory()
+ def port = Integer.valueOf(jalviewjs_server_port)
+ def start = port
+ def running = false
+ HttpFileServer server
+println "server wait = ${jalviewjs_server_wait}"
+ while(port < start+100 && !running) {
+ try {
+ server = factory.start(new File(jalviewDirAbsolutePath+"/"+jalviewjs_site_dir), port)
+ running = true
+ println("SERVER STARTED on "+server.getResourceUrl(jalviewjs_server_resource)+" for ${jalviewjs_server_wait} seconds. Ctrc+C to kill it.")
+ java.lang.Thread.sleep(Integer.valueOf(jalviewjs_server_wait)*1000);
+ } catch (Exception e) {
+ port++;
+ }
+ }
+ }
+}