X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=build.gradle;h=62fa4727538545d5fd50c0952cf10f2734234a5a;hb=refs%2Fheads%2FJalview-JS%2Fgradle-minimal;hp=fc183a56f882870e6ffb7823d5151fe45ccb0b65;hpb=1c0a609bc903f31315f3d40e2c43ee7851501ca2;p=jalview.git diff --git a/build.gradle b/build.gradle index fc183a5..62fa472 100644 --- a/build.gradle +++ b/build.gradle @@ -3,6 +3,7 @@ import org.gradle.internal.os.OperatingSystem import org.gradle.plugins.ide.eclipse.model.* import groovy.transform.ExternalizeMethods + plugins { id 'java' id 'application' @@ -34,6 +35,8 @@ ext { gitHash = "" gitBranch = "" + + jalviewjsServer = "" } def JAVA_INTEGER_VERSION @@ -135,7 +138,7 @@ eclipse { } 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)) @@ -233,19 +236,25 @@ def eclipseBinary def eclipseDropinsDir def eclipsePluginsDir 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 jalviewjsEclipseCopyDropins (type: Copy) { @@ -286,9 +295,9 @@ task jalviewjsSetTempEclipseWorkspace { tempEclipseWorkspace = file(jalviewjs_eclipse_workspace) if (!tempEclipseWorkspace.exists()) { tempEclipseWorkspace = File.createTempDir() - print("ECLIPSE WORKSPACE: "+tempEclipseWorkspace.getPath()) - //tempEclipseWorkspace.deleteOnExit() + tempEclipseWorkspace.deleteOnExit() } + println("ECLIPSE WORKSPACE: "+tempEclipseWorkspace.getPath()) } task jalviewjsEclipseSetup { @@ -339,8 +348,13 @@ task jalviewjsCopySiteResources (type: Copy) { 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) { @@ -353,15 +367,21 @@ task jalviewjsProjectImport(type: Exec) { 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 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 { @@ -371,7 +391,69 @@ task jalviewjsBuildSite { 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 jalviewjsCreateJ2sSettings dependsOn jalviewjsBuildSite } + +def jalviewjsServer = null +task jalviewjsServerStart { + doLast { + + if (jalviewjsServer != null) { + println("SERVER ALREADY RUNNING. Go to "+jalviewjsServer.getResourceUrl(jalviewjs_server_resource)+" . Run gradle jalviewjsServerStop to stop.") + } else { + + SimpleHttpFileServerFactory factory = new SimpleHttpFileServerFactory() + def port = Integer.valueOf(jalviewjs_server_port) + def start = port + def running = false + while(port < start+1000 && !running) { + try { + jalviewjsServer = factory.start(new File(jalviewDirAbsolutePath+"/"+jalviewjs_site_dir), port) + running = true + println("SERVER STARTED. Go to "+jalviewjsServer.getResourceUrl(jalviewjs_server_resource)+" . Run gradle jalviewjsServerStop to stop.") + //println("Ctrl-c to stop.");java.lang.Thread.sleep(Integer.valueOf(jalviewjs_server_wait)*1000); + } catch (Exception e) { + port++; + } + } + + } + + } + +} + +/* server persists in gradle daemon but reference is not accessible across builds +task jalviewjsServerStop { + doLast { + + if (jalviewjsServer != null) { + + println("SERVER ON PORT "+jalviewjsServer.getPort()+" STOPPING. Run gradle jalviewjsServerStart to start again.") + jalviewjsServer.stop() + + } else { + println("SERVER NOT RUNNING. Run gradle jalviewjsServerStart to start.") + } + + } +} +*/