X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=build.gradle;h=0c2448ced91f3ed75807dddb831f1f81634b0725;hb=720a1172658723912a4b09b7c4c9eeafac096439;hp=c42b7bd25f85356a7d528daff46b8d8631d121a0;hpb=a2471f9a2d164c04e9863702195924b4d95d41c8;p=jalview.git diff --git a/build.gradle b/build.gradle index c42b7bd..0c2448c 100644 --- a/build.gradle +++ b/build.gradle @@ -305,7 +305,7 @@ configurations { eclipse { project { - name = "Jalview with gradle build" + name = eclipse_project_name natures 'org.eclipse.jdt.core.javanature', 'org.eclipse.jdt.groovy.core.groovyNature', @@ -389,11 +389,7 @@ eclipse { // don't duplicate } else { def lib = new Library(fileReference(itPath)) - /* this doesn't work... yet. Adding test=true attribute using withXml below - def attrs = new Node(null, 'attributes') - attrs.appendNode('attribute', ["name":"test","value":"true"]) - lib.appendNode(attrs) - /**/ + lib.entryAttributes["test"] = "true" cp.entries += lib alreadyAddedLibPath.put(itPath, true) } @@ -401,38 +397,6 @@ eclipse { } // whenMerged - // withXml changes ignored by buildship, these add the "test=true" attribute - withXml { - def node = it.asNode() - - def srcTestAttributes - node.children().each{ cpe -> - def attributes = cpe.attributes() - if (attributes.get("kind") == "src" && attributes.get("path") == "test") { - srcTestAttributes = cpe.find { a -> a.name() == "attributes" } - return - } - } - def addTestAttribute = true - srcTestAttributes.each{a -> - if (a.name() == "attribute" && a.attributes().getAt("name") == "test") { - addTestAttribute = false - } - } - if (addTestAttribute) { - srcTestAttributes.append(new Node(null, "attribute", [name:"test", value:"true"])) - } - - node.children().each{ cpe -> - def attributes = cpe.attributes() - if (attributes.get("kind") == "lib" && attributes.get("path").startsWith("utils/")) { - cpe.appendNode('attributes') - .appendNode('attribute', [name:"test", value:"true"]) - } - } - } // withXML - - } // file containers 'org.eclipse.buildship.core.gradleclasspathcontainer' @@ -1266,11 +1230,11 @@ def jalviewjsBuildDir def jalviewjsSiteDir def jalviewjsTransferSiteDir task jalviewjsSitePath { + def relativeBuildDir = file(jalviewDirAbsolutePath).toPath().relativize(buildDir.toPath()) + jalviewjsBuildDir = "${relativeBuildDir}/jalviewjs" if (jalviewjs_site_dir.startsWith("/")) { jalviewjsSiteDir = jalviewjs_site_dir } else { - def relativeBuildDir = file(jalviewDirAbsolutePath).toPath().relativize(buildDir.toPath()) - jalviewjsBuildDir = "${relativeBuildDir}/jalviewjs" jalviewjsSiteDir = jalviewjsBuildDir + "/" + jalviewjs_site_dir } jalviewjsTransferSiteDir = jalviewjsBuildDir + "/tmp/site" @@ -1279,7 +1243,7 @@ task jalviewjsSitePath { def eclipseWorkspace task jalviewjsSetEclipseWorkspace { def propKey = "jalviewjs_eclipse_workspace" - def propsFile = "${jalviewjsBuildDir}/${jalviewjs_eclipse_workspace_location_file}" + def propsFileName = "${jalviewjsBuildDir}/${jalviewjs_eclipse_workspace_location_file}" def props = new Properties() def eclipseWsDir def propVal = null @@ -1287,17 +1251,23 @@ task jalviewjsSetEclipseWorkspace { propVal = project.getProperty(propKey) eclipseWsDir = propVal } - if ((eclipseWsDir == null || !file(eclipseWsDir).exists()) && file(propsFile).exists()) { - def ins = new FileInputStream(propsFile) + if (( eclipseWsDir == null || !file(eclipseWsDir).exists() ) && file(propsFileName).exists()) { + def ins = new FileInputStream("${jalviewDirAbsolutePath}/${propsFileName}") props.load(ins) ins.close() - eclipseWsDir = props.getProperty(propKey) + if (props.getProperty(propKey, null) != null) { + eclipseWsDir = props.getProperty(propKey) + } } + if (eclipseWsDir == null || !file(eclipseWsDir).exists()) { def tempDir = File.createTempDir() eclipseWsDir = tempDir.getAbsolutePath() props.setProperty(propKey, eclipseWsDir) - def outs = new FileOutputStream(propsFile) + def propsFile = file(propsFileName) + propsFile.parentFile.mkdirs() + propsFile.createNewFile() // doesn't affect existing file + def outs = new FileOutputStream(propsFile, false) props.store(outs, null) outs.close() } @@ -1307,7 +1277,7 @@ task jalviewjsSetEclipseWorkspace { println("ECLIPSE WORKSPACE: "+eclipseWorkspace.getPath()) inputs.property(propKey, propVal) - outputs.file(propsFile) + outputs.file(propsFileName) } @@ -1347,10 +1317,16 @@ task jalviewjsEclipsePaths { eclipseBinary = eclipseRoot+"/Contents/MacOS/eclipse" eclipseProduct = eclipseRoot+"/Contents/Eclipse/.eclipseproduct" } else if (OperatingSystem.current().isWindows()) { // check these paths!! + if (file(eclipseRoot+"/eclipse").isDirectory() && file(eclipseRoot+"/eclipse/.eclipseproduct").exists()) { + eclipseRoot += "/eclipse" + } eclipseDropinsDir = eclipseRoot+"/dropins" eclipseBinary = eclipseRoot+"/eclipse" eclipseProduct = eclipseRoot+"/.eclipseproduct" } else { // linux or unix + if (file(eclipseRoot+"/eclipse").isDirectory() && file(eclipseRoot+"/eclipse/.eclipseproduct").exists()) { + eclipseRoot += "/eclipse" + } eclipseDropinsDir = eclipseRoot+"/dropins" eclipseBinary = eclipseRoot+"/eclipse" eclipseProduct = eclipseRoot+"/.eclipseproduct" @@ -1490,30 +1466,40 @@ task jalviewjsTranspile(type: Exec) { stdout = new ByteArrayOutputStream() stderr = new ByteArrayOutputStream() + def logOutFileName = "${jalviewDirAbsolutePath}/${jalviewjsBuildDir}/${jalviewjs_j2s_stdout}" + def logOutFile = file(logOutFileName) + logOutFile.createNewFile() + def logOutFOS = new FileOutputStream(logOutFile, false) + //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( - new FileOutputStream("${jalviewjsBuildDir}/${jalviewjs_j2s_stdout}"), + logOutFOS, stdout), standardOutput) errorOutput = new org.apache.tools.ant.util.TeeOutputStream( new org.apache.tools.ant.util.TeeOutputStream( - new FileOutputStream("${jalviewjsBuildDir}/${jalviewjs_j2s_stderr}"), + logErrFOS, stderr), errorOutput) } else { standardOutput = new org.apache.tools.ant.util.TeeOutputStream( - new FileOutputStream("${jalviewjsBuildDir}/${jalviewjs_j2s_stdout}"), + logOutFOS, stdout) errorOutput = new org.apache.tools.ant.util.TeeOutputStream( - new FileOutputStream("${jalviewjsBuildDir}/${jalviewjs_j2s_stderr}"), + logErrFOS, stderr) } } doLast { if (stdout.toString().contains("Error processing ")) { // j2s did not complete transpile - throw new GradleException("Error during transpilation:\n${stderr}\nSee eclipse transpile log files '${jalviewjsBuildDir}/${jalviewjs_j2s_stdout}' and '${jalviewjsBuildDir}/${jalviewjs_j2s_stderr}'\n") + throw new GradleException("Error during transpilation:\n${stderr}\nSee eclipse transpile log file '${jalviewjsBuildDir}/${jalviewjs_j2s_stdout}'") } } @@ -1549,6 +1535,11 @@ task jalviewjsBuildSite { dependsOn jalviewjsPrepareSite } +task cleanJalviewjsSite { + delete jalviewjsTransferSiteDir + delete jalviewjsSiteDir +} + task jalviewjsSiteTar(type: Tar) { group "JalviewJS" description "Creates a tar.gz file for the website" @@ -1572,20 +1563,29 @@ task jalviewjsServer { group "JalviewJS" description "Starts a webserver on localhost to test the website" dependsOn jalviewjsSitePath + def htmlFile = "${jalviewDirAbsolutePath}/jalviewjsTest.html" doLast { SimpleHttpFileServerFactory factory = new SimpleHttpFileServerFactory() def port = Integer.valueOf(jalviewjs_server_port) def start = port def running = false + def url while(port < start+1000 && !running) { try { def doc_root = new File(jalviewDirAbsolutePath +"/"+ jalviewjsSiteDir) jalviewjsServer = factory.start(doc_root, port) running = true + url = jalviewjsServer.getResourceUrl(jalviewjs_server_resource) println("SERVER STARTED with document root ${doc_root}.") - println("Go to "+jalviewjsServer.getResourceUrl(jalviewjs_server_resource)+" . Run gradle --stop to stop (kills all gradle daemons).") - println("For debug: "+jalviewjsServer.getResourceUrl(jalviewjs_server_resource)+"?j2sdebug") + println("Go to "+url+" . Run gradle --stop to stop (kills all gradle daemons).") + println("For debug: "+url+"?j2sdebug") + + file(htmlFile).text = """ +

Jalview JS Test. <${url}>

+

Jalview JS Test with debug. <${url}?j2sdebug<

+ """ + } catch (Exception e) { port++; } @@ -1593,6 +1593,7 @@ task jalviewjsServer { } + outputs.file(htmlFile) } task jalviewjs { @@ -1602,3 +1603,27 @@ task jalviewjs { } +task jalviewjsIDECopyTransferSite(type: Copy) { + from jalviewjsTransferSiteDir + into jalviewjsSiteDir +} + +task jalviewjsIDEBuildSite { + group "JalviewJS in Eclipse" + description "Copies the Eclipse transpiled site and unzips supporting zipfiles" + dependsOn jalviewjsIDECopyTransferSite + dependsOn jalviewjsPrepareSite +} + +task cleanJalviewjsIDESite { + group "JalviewJS in Eclipse" + description "Deletes the Eclipse transpiled site" + dependsOn cleanJalviewjsSite +} + +task jalviewjsIDEServer { + group "JalviewJS in Eclipse" + description "Starts a webserver on localhost to test the website" + dependsOn jalviewjsServer +} +