X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=build.gradle;h=a88c42f711f01f789d6ff1414373b1be005c31df;hb=db3936d2efd977012b614888cf5b186725a662af;hp=51f95ac4b269732094707102589ff1d850301384;hpb=0c67684aaee6951336e64a6afb564aed03790fda;p=jalview.git diff --git a/build.gradle b/build.gradle index 51f95ac..a88c42f 100644 --- a/build.gradle +++ b/build.gradle @@ -36,6 +36,7 @@ if (file(localProps).exists()) { } } } catch (Exception e) { + System.out.println("Exception reading local.properties") } } @@ -77,7 +78,7 @@ ext { getdownDir = "" reportRsyncCmd = false buildDist = true - buildProperties = buildPropertiesFile + buildProperties = build_properties_file getdownLauncher = "${jalviewDir}/${getdown_lib_dir}/${getdown_launcher}" switch (CHANNEL) { @@ -87,7 +88,7 @@ ext { getdown_channel_name = "${bamboo_planKey}/${JAVA_VERSION}" getdown_app_base = "${bamboo_channelbase}/${bamboo_planKey}${bamboo_getdown_channel_suffix}/${JAVA_VERSION}" getdown_app_dir = getdown_app_dir_alt - buildProperties = "${jalviewDir}/${classesDir}/${buildPropertiesFile}" + buildProperties = "${jalviewDir}/${classesDir}/${build_properties_file}" break case "RELEASE": @@ -95,7 +96,7 @@ ext { getdownDir = "${getdown_channel_name}/${JAVA_VERSION}" getdown_app_base = "${getdown_channel_base}/${getdownDir}" getdown_app_dir = getdown_app_dir_release - buildProperties = "${jalviewDir}/${classesDir}/${buildPropertiesFile}" + buildProperties = "${jalviewDir}/${classesDir}/${build_properties_file}" reportRsyncCommand = true break @@ -109,7 +110,7 @@ ext { exit } else { packageDir = "${ARCHIVEDIR}/${packageDir}" - buildProperties = "${ARCHIVEDIR}/${classesDir}/${buildPropertiesFile}" + buildProperties = "${ARCHIVEDIR}/${classesDir}/${build_properties_file}" buildDist = false } reportRsyncCommand = true @@ -125,7 +126,7 @@ ext { exit } else { packageDir = "${ARCHIVEDIR}/${packageDir}" - buildProperties = "${ARCHIVEDIR}/${classesDir}/${buildPropertiesFile}" + buildProperties = "${ARCHIVEDIR}/${classesDir}/${build_properties_file}" buildDist = false } reportRsyncCommand = true @@ -137,7 +138,7 @@ ext { getdownDir = "${getdown_channel_name}/${JAVA_VERSION}" getdown_app_base = "${getdown_channel_base}/${getdownDir}" getdown_app_dir = getdown_app_dir_alt - buildProperties = "${jalviewDir}/${classesDir}/${buildPropertiesFile}" + buildProperties = "${jalviewDir}/${classesDir}/${build_properties_file}" reportRsyncCommand = true break @@ -146,7 +147,7 @@ ext { getdownDir = "${getdown_channel_name}/${JAVA_VERSION}" getdown_app_base = "${getdown_channel_base}/${getdownDir}" getdown_app_dir = getdown_app_dir_alt - buildProperties = "${jalviewDir}/${classesDir}/${buildPropertiesFile}" + buildProperties = "${jalviewDir}/${classesDir}/${build_properties_file}" reportRsyncCommand = true break @@ -155,14 +156,14 @@ ext { getdownDir = "${getdown_channel_name}/${JAVA_VERSION}" getdown_app_base = "${getdown_channel_base}/${getdownDir}" getdown_app_dir = getdown_app_dir_alt - buildProperties = "${jalviewDir}/${classesDir}/${buildPropertiesFile}" + buildProperties = "${jalviewDir}/${classesDir}/${build_properties_file}" reportRsyncCommand = true break case "LOCAL": getdown_app_base = file(getdownWebsiteDir).toURI().toString() getdown_app_dir = getdown_app_dir_alt - buildProperties = "${jalviewDir}/${classesDir}/${buildPropertiesFile}" + buildProperties = "${jalviewDir}/${classesDir}/${build_properties_file}" getdownLauncher = "${jalviewDir}/${getdown_lib_dir}/${getdown_launcher_local}" break @@ -444,6 +445,9 @@ eclipse { } } // jdt + + synchronizationTasks "eclipseSynchronizationTask" + autoBuildTasks "eclipseAutoBuildTask" } @@ -571,8 +575,8 @@ task setGitVals { task createBuildProperties(type: WriteProperties) { dependsOn setGitVals inputs.dir("${jalviewDir}/${sourceDir}") - inputs.dir("${classes}") inputs.dir("${jalviewDir}/${resourceDir}") + file(buildProperties).getParentFile().mkdirs() outputFile (buildProperties) // taking time specific comment out to allow better incremental builds comment "--Jalview Build Details--\n"+getDate("yyyy-MM-dd HH:mm:ss") @@ -869,7 +873,7 @@ task getdownWebsite() { copy { from buildProperties - rename(buildPropertiesFile, getdown_build_properties) + rename(build_properties_file, getdown_build_properties) into project.ext.getdownAppDir } getdownWebsiteResourceFilenames += "${getdown_app_dir}/${getdown_build_properties}" @@ -1270,12 +1274,16 @@ task helppages { def jalviewjsBuildDir def jalviewjsSiteDir -def jalviewjsTransferSiteDir +def jalviewjsTransferSiteJsDir +def jalviewjsTransferSiteLibDir +def jalviewjsTransferSiteCoreDir task jalviewjsSitePath { def relativeBuildDir = file(jalviewDirAbsolutePath).toPath().relativize(buildDir.toPath()) jalviewjsBuildDir = "${relativeBuildDir}/jalviewjs" jalviewjsSiteDir = "${jalviewjsBuildDir}/${jalviewjs_site_dir}" - jalviewjsTransferSiteDir = "${jalviewjsBuildDir}/tmp/site" + jalviewjsTransferSiteJsDir = "${jalviewjsBuildDir}/tmp/${jalviewjs_site_dir}_js" + jalviewjsTransferSiteLibDir = "${jalviewjsBuildDir}/tmp/${jalviewjs_site_dir}_lib" + jalviewjsTransferSiteCoreDir = "${jalviewjsBuildDir}/tmp/${jalviewjs_site_dir}_core" } def eclipseWorkspace @@ -1454,7 +1462,8 @@ y jalviewjsEclipseCopyDropins.finalizedBy jalviewjsCleanEclipse */ -task jalviewjsUnzipFiles { +def jalviewjsTransferSiteUnzipDir +task jalviewjsTransferUnzipLib { dependsOn jalviewjsSitePath def zipFiles = fileTree(dir: "${jalviewDir}/${jalviewjs_libjs_dir}", include: "*.zip") @@ -1464,13 +1473,13 @@ task jalviewjsUnzipFiles { zipFiles.each { file_zip -> copy { from zipTree(file_zip) - into "${jalviewDir}/${jalviewjsSiteDir}" + into "${jalviewDir}/${jalviewjsTransferSiteLibDir}" } } } inputs.files zipFiles - outputs.dir "${jalviewDir}/${jalviewjsSiteDir}" + outputs.dir "${jalviewDir}/${jalviewjsTransferSiteLibDir}" } task jalviewjsCreateJ2sSettings(type: WriteProperties) { @@ -1487,14 +1496,14 @@ task jalviewjsCreateJ2sSettings(type: WriteProperties) { if (val != null) { if (prop == siteDirProperty) { if (!(val.startsWith('/') || val.startsWith("file://") )) { - val = "${jalviewDir}/${jalviewjsTransferSiteDir}/${val}" + val = "${jalviewDir}/${jalviewjsTransferSiteJsDir}/${val}" } setSiteDir = true } property(prop,val) } if (!setSiteDir) { // default site location, don't override specifically set property - property(siteDirProperty,"${jalviewDir}/${jalviewjsTransferSiteDir}") + property(siteDirProperty,"${jalviewDir}/${jalviewjsTransferSiteJsDir}") } } inputs.properties(j2s_props) @@ -1507,7 +1516,47 @@ task jalviewjsEclipseSetup { dependsOn jalviewjsCreateJ2sSettings } -task jalviewjsCopyResources (type: Sync) { +task jalviewjsSyncLib (type: Sync) { + dependsOn jalviewjsSitePath + dependsOn jalviewjsTransferUnzipLib + def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteLibDir}") + def outputDir = "${jalviewDir}/${jalviewjsSiteDir}" + + from inputFiles + into outputDir + def outputFiles = [] + rename { filename -> + outputFiles += "${outputDir}/${filename}" + null + } + preserve { + include "**" + } + outputs.files outputFiles + inputs.files inputFiles +} + +task jalviewjsSyncCore (type: Sync) { + dependsOn jalviewjsSitePath + dependsOn "jalviewjsBuildAllCores" + def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteCoreDir}") + def outputDir = "${jalviewDir}/${jalviewjsSiteDir}" + + from inputFiles + into outputDir + def outputFiles = [] + rename { filename -> + outputFiles += "${outputDir}/${filename}" + null + } + preserve { + include "**" + } + outputs.files outputFiles + inputs.files inputFiles +} + +task jalviewjsSyncResources (type: Sync) { dependsOn jalviewjsSitePath def inputFiles = fileTree(dir: "${jalviewDir}/${resourceDir}") def outputDir = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}" @@ -1526,7 +1575,7 @@ task jalviewjsCopyResources (type: Sync) { inputs.files inputFiles } -task jalviewjsCopySiteResources (type: Sync) { +task jalviewjsSyncSiteResources (type: Sync) { dependsOn jalviewjsSitePath def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjs_site_resource_dir}") def outputDir = "${jalviewDir}/${jalviewjsSiteDir}" @@ -1545,6 +1594,26 @@ task jalviewjsCopySiteResources (type: Sync) { inputs.files inputFiles } +task jalviewjsSyncBuildProperties (type: Sync) { + dependsOn jalviewjsSitePath + dependsOn createBuildProperties + def inputFiles = [file(buildProperties)] + def outputDir = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}" + + from inputFiles + into outputDir + def outputFiles = [] + rename { filename -> + outputFiles += "${outputDir}/${filename}" + null + } + preserve { + include "**" + } + outputs.files outputFiles + inputs.files inputFiles +} + task jalviewjsProjectImport(type: Exec) { dependsOn eclipseSetup dependsOn jalviewjsEclipsePaths @@ -1627,27 +1696,44 @@ DEBUG: ${eclipseDebug} } inputs.dir("${jalviewDir}/${sourceDir}") - outputs.dir("${jalviewDir}/${jalviewjsTransferSiteDir}") - outputs.upToDateWhen( { file("${jalviewDir}/${jalviewjsTransferSiteDir}${jalviewjs_server_resource}").exists() } ) + outputs.dir("${jalviewDir}/${jalviewjsTransferSiteJsDir}") + outputs.upToDateWhen( { file("${jalviewDir}/${jalviewjsTransferSiteJsDir}${jalviewjs_server_resource}").exists() } ) } +// this Copy version of TransferSite will delete anything else in the target dir task jalviewjsCopyTransferSite(type: Copy) { dependsOn jalviewjsTranspile - from "${jalviewDir}/${jalviewjsTransferSiteDir}" + from "${jalviewDir}/${jalviewjsTransferSiteJsDir}" into "${jalviewDir}/${jalviewjsSiteDir}" } -jalviewjsUnzipFiles.mustRunAfter jalviewjsCopyTransferSite -jalviewjsCopyResources.mustRunAfter jalviewjsCopyTransferSite -jalviewjsCopySiteResources.mustRunAfter jalviewjsCopyTransferSite +// this Sync version of TransferSite is used by buildship to keep the website automatically up to date when a file changes +task jalviewjsSyncTransferSite(type: Sync) { + from "${jalviewDir}/${jalviewjsTransferSiteJsDir}" + include "**/*.*" + into "${jalviewDir}/${jalviewjsSiteDir}" + preserve { + include "**" + } +} + +jalviewjsSyncLib.mustRunAfter jalviewjsCopyTransferSite +jalviewjsSyncResources.mustRunAfter jalviewjsCopyTransferSite +jalviewjsSyncSiteResources.mustRunAfter jalviewjsCopyTransferSite +jalviewjsSyncBuildProperties.mustRunAfter jalviewjsCopyTransferSite + +jalviewjsSyncLib.mustRunAfter jalviewjsSyncTransferSite +jalviewjsSyncResources.mustRunAfter jalviewjsSyncTransferSite +jalviewjsSyncSiteResources.mustRunAfter jalviewjsSyncTransferSite +jalviewjsSyncBuildProperties.mustRunAfter jalviewjsSyncTransferSite task jalviewjsPrepareSite { group "JalviewJS" description "Prepares the website folder including unzipping files and copying resources" - dependsOn jalviewjsSitePath - dependsOn jalviewjsUnzipFiles - dependsOn jalviewjsCopyResources - dependsOn jalviewjsCopySiteResources + dependsOn jalviewjsSyncLib + dependsOn jalviewjsSyncResources + dependsOn jalviewjsSyncSiteResources + dependsOn jalviewjsSyncBuildProperties } task jalviewjsBuildSite { @@ -1659,7 +1745,7 @@ task jalviewjsBuildSite { task cleanJalviewjsSite { doFirst { - delete "${jalviewDir}/${jalviewjsTransferSiteDir}" + delete "${jalviewDir}/${jalviewjsTransferSiteJsDir}" delete "${jalviewDir}/${jalviewjsSiteDir}" } } @@ -1685,9 +1771,10 @@ task jalviewjsSiteTar(type: Tar) { task jalviewjsServer { group "JalviewJS" - description "Starts a webserver on localhost to test the website" + def filename = "jalviewjsTest.html" + description "Starts a webserver on localhost to test the website. See ${filename} to access local site on most recently used port." dependsOn jalviewjsSitePath - def htmlFile = "${jalviewDirAbsolutePath}/jalviewjsTest.html" + def htmlFile = "${jalviewDirAbsolutePath}/${filename}" doLast { SimpleHttpFileServerFactory factory = new SimpleHttpFileServerFactory() @@ -1746,33 +1833,125 @@ task jalviewjs { } -task jalviewjsIDECopyTransferSite(type: Copy) { - from "${jalviewDir}/${jalviewjsTransferSiteDir}" +task jalviewjsIDE_CopyTransferSite(type: Copy) { + from "${jalviewDir}/${jalviewjsTransferSiteJsDir}" into "${jalviewDir}/${jalviewjsSiteDir}" } -task jalviewjsIDEj2s { - group "JalviewJS in Eclipse" +task jalviewjsIDE_j2s { + group "00 JalviewJS in Eclipse" description "Creates the .j2s file" dependsOn jalviewjsCreateJ2sSettings } -task jalviewjsIDEBuildSite { - group "JalviewJS in Eclipse" - description "Copies the Eclipse transpiled site and unzips supporting zipfiles" - dependsOn jalviewjsIDECopyTransferSite +task jalviewjsIDE_AssembleSite { + group "00 JalviewJS in Eclipse" + description "Assembles the Eclipse transpiled site and unzips supporting zipfiles" + dependsOn jalviewjsIDE_CopyTransferSite dependsOn jalviewjsPrepareSite } -task jalviewjsIDESiteClean { - group "JalviewJS in Eclipse" +task jalviewjsIDE_SiteClean { + group "00 JalviewJS in Eclipse" description "Deletes the Eclipse transpiled site" dependsOn cleanJalviewjsSite } -task jalviewjsIDEServer { - group "JalviewJS in Eclipse" +task jalviewjsIDE_Server { + group "00 JalviewJS in Eclipse" description "Starts a webserver on localhost to test the website" dependsOn jalviewjsServer } +// buildship runs this at import +task eclipseSynchronizationTask { + dependsOn eclipseSetup + dependsOn jalviewjsIDE_j2s +} + +// buildship runs this at build time +task eclipseAutoBuildTask { + dependsOn jalviewjsSyncTransferSite + dependsOn jalviewjsPrepareSite +} + + + + + + + + +// closure +def jalviewjsCallCore(String name, FileCollection list, String jsDir, String outputDir) { + def coreFileName = "core${name}.js" + def coreFilePath = "${outputDir}/${coreFileName}" + def coreFile = file(coreFilePath) + println("...Generating ${coreFilePath}") + + def coreTop = file("${jsDir}/core/coretop2.js") + def coreBottom = file("${jsDir}/core/corebottom2.js") + coreFile.getParentFile().mkdirs() + coreFile.createNewFile() + coreFile.write( coreTop.text ) + list.each { + f -> + if (f.exists()) { + def t = f.text + t.replaceAll("Clazz\\.","Clazz_") + t.replaceAll("Class__","Clazz._") + coreFile.append( t ) + } else { + println("...file ${line} does not exist, skipping") + } + } + coreFile.append( coreBottom.text ) + + def coreZFileName = "core${name}.z.js" + def coreZFilePath = "${outputDir}/${coreZFileName}" + def coreZFile = file(coreZFilePath) + println("...Generating ${coreZFilePath}") + + javaexec { + classpath = files(["${jalviewDir}/tools/closure_compiler.jar"]) + args = [ "--js", coreFileName, "--js_output_file", coreZFileName ] + workingDir = outputDir + } + + return [ coreFile, coreZFile ] +} + +def jalviewjsToJs(String name, String classlist, String jsDir, String j2sDir, String outputDir) { + def filelist = [] + file(classlist).eachLine { + line -> + filelist += line + } + def list = fileTree(dir: j2sDir, includes: filelist) + /* + def list = files() + file(classlist).eachLine { + line -> + list += file("${j2sDir}/${line}") + } + */ + + return jalviewjsCallCore(name, list, jsDir, outputDir) +// publish-core-template ... here? +} + +task jalviewjsBuildAllCores { + group "JalviewJS" + description "Build the core js lib closures" + + dependsOn jalviewjsSitePath + dependsOn jalviewjsTransferUnzipLib + dependsOn jalviewjsTranspile + + fileTree(dir: "${jalviewDir}/${jalviewjs_classlists_dir}", include: "*.txt").each { + file -> + def name = file.getName() - ".txt" + + jalviewjsToJs(name, file.getAbsolutePath(), "${jalviewDir}/${jalviewjsTransferSiteLibDir}/${jalviewjs_js_subdir}", "${jalviewDir}/${jalviewjsTransferSiteJsDir}/${jalviewjs_j2s_subdir}", "${jalviewDir}/${jalviewjsTransferSiteCoreDir}/${jalviewjs_j2s_subdir}/core") + } +}