X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=build.gradle;h=6137539a7192b168dd893c2a7543ff741f89233b;hb=8881839853584ea4181e4f1600d5cb7b4da89bec;hp=03cf6b22e34453a5599e5852c87c3126f7fe9164;hpb=85415d08c787f2515af87cc9bd8b3ae9ddd19473;p=jalview.git diff --git a/build.gradle b/build.gradle index 03cf6b2..6137539 100644 --- a/build.gradle +++ b/build.gradle @@ -563,6 +563,7 @@ ext { } jalviewjsTransferSiteLibDir = string("${jalviewjsBuildDir}/tmp/${jalviewjs_site_dir}_lib") jalviewjsTransferSiteSwingJsDir = string("${jalviewjsBuildDir}/tmp/${jalviewjs_site_dir}_swingjs") + jalviewjsTransferSiteMergeDir = string("${jalviewjsBuildDir}/tmp/${jalviewjs_site_dir}_merge") jalviewjsTransferSiteCoreDir = string("${jalviewjsBuildDir}/tmp/${jalviewjs_site_dir}_core") jalviewjsJalviewCoreHtmlFile = string("") jalviewjsJalviewCoreName = string(jalviewjs_core_name) @@ -2240,9 +2241,9 @@ task getdownImages() { dependsOn getdownImagesProcess } -task getdownWebsite() { +task getdownWebsiteBuild() { group = "distribution" - description = "Create the getdown minimal app folder, and website folder for this version of jalview. Website folder also used for offline app installer" + description = "Create the getdown minimal app folder, and website folder for this version of jalview. Website folder also used for offline app installer. No digest is created." dependsOn getdownImages if (buildDist) { @@ -2354,7 +2355,7 @@ task getdownWebsite() { from s into "${getdownAppBaseDir}/${getdown_wrapper_script_dir}" } - getdownTextLines += "resource = ${getdown_wrapper_script_dir}/${script}" + getdownTextLines += "xresource = ${getdown_wrapper_script_dir}/${script}" } } @@ -2496,7 +2497,9 @@ task getdownDigestDir(type: JavaExec) { task getdownDigest(type: JavaExec) { group = "distribution" description = "Digest the getdown website folder" - dependsOn getdownWebsite + + dependsOn getdownWebsiteBuild + doFirst { classpath = files(getdownLauncher) } @@ -2529,12 +2532,19 @@ task getdown() { } } +task getdownWebsite { + group = "distribution" + description = "A task to create the whole getdown channel website dir including digest file" + + dependsOn getdownWebsiteBuild + dependsOn getdownDigest +} task getdownArchiveBuild() { group = "distribution" description = "Put files in the archive dir to go on the website" - dependsOn getdownWebsite + dependsOn getdownWebsiteBuild def v = "v${JALVIEW_VERSION_UNDERSCORES}" def vDir = "${getdownArchiveDir}/${v}" @@ -3044,6 +3054,7 @@ task sourceDist(type: Tar) { into project.name def EXCLUDE_FILES=[ + "dist/*", "build/*", "bin/*", "test-output/", @@ -3408,13 +3419,40 @@ task jalviewjsTransferUnzipSwingJs { task jalviewjsTransferUnzipLib { - def zipFiles = fileTree(dir: "${jalviewDir}/${jalviewjs_libjs_dir}", include: "*.zip") + def zipFiles = fileTree(dir: "${jalviewDir}/${jalviewjs_libjs_dir}", include: "*.zip").sort() doLast { zipFiles.each { file_zip -> copy { from zipTree(file_zip) into "${jalviewDir}/${jalviewjsTransferSiteLibDir}" + + // rename files in jsmol/j2s/... to swingjs/j2s/... + if (file_zip.getName().startsWith("Jmol-j2s-site")) { + eachFile { fcd -> + // jsmol/... -> swingjs/... + def relPathSegments = fcd.relativePath.getSegments() + if (relPathSegments[0] == "jsmol") { + def newRelPathSegments = relPathSegments + newRelPathSegments[0] = "swingjs" + fcd.relativePath = new RelativePath(true, newRelPathSegments) + } + } + } + + // The following replace() is needed due to a mismatch in Jmol calls to + // colorPtToFFRGB$javajs_util_T3d when only colorPtToFFRGB$javajs_util_T3 is defined + // in the SwingJS.zip (github or the one distributed with JSmol) + if (file_zip.getName().startsWith("Jmol-SwingJS")) { + filter { line -> + def l = "" + while(!line.equals(l)) { + line = line.replace('colorPtToFFRGB$javajs_util_T3d', 'colorPtToFFRGB$javajs_util_T3') + l = line + } + return line + } + } } } } @@ -3425,8 +3463,8 @@ task jalviewjsTransferUnzipLib { task jalviewjsTransferUnzipAllLibs { - dependsOn jalviewjsTransferUnzipSwingJs dependsOn jalviewjsTransferUnzipLib + dependsOn jalviewjsTransferUnzipSwingJs } @@ -3469,7 +3507,8 @@ task jalviewjsEclipseSetup { task jalviewjsSyncAllLibs (type: Sync) { dependsOn jalviewjsTransferUnzipAllLibs - def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteLibDir}") + def inputFiles = [] + inputFiles += fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteLibDir}") inputFiles += fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}") def outputDir = "${jalviewDir}/${jalviewjsSiteDir}" @@ -3484,7 +3523,7 @@ task jalviewjsSyncAllLibs (type: Sync) { include "**" } - // should this be exclude really ? + // should this be exclude really ? No, swingjs dir should be transferred last (and overwrite) duplicatesStrategy "INCLUDE" outputs.files outputFiles @@ -3676,6 +3715,71 @@ DEBUG: ${eclipseDebug} } +task jalviewjsTranserSiteMergeLibDirs (type: Sync) { + dependsOn jalviewjsTransferUnzipAllLibs + dependsOn jalviewjsTransferUnzipSwingJs + dependsOn jalviewjsTranspile + + def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteLibDir}") + // merge swingjs lib last + inputFiles += fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}") + + def outputDir = "${jalviewDir}/${jalviewjsTransferSiteMergeDir}" + + from inputFiles + into outputDir + def outputFiles = [] + rename { filename -> + outputFiles += "${outputDir}/${filename}" + null + } + + exclude "**/*.html" + exclude "**/*.htm" + + // should this be exclude really ? No, swingjs dir should be transferred last (and overwrite) + duplicatesStrategy "INCLUDE" + + outputs.files outputFiles + inputs.files inputFiles +} + + +task jalviewjsTranserSiteMergeSwingDir (type: Sync) { + dependsOn jalviewjsTransferUnzipAllLibs + dependsOn jalviewjsTransferUnzipSwingJs + dependsOn jalviewjsTranspile + + // merge jalview files very last + def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteJsDir}") + + def outputDir = "${jalviewDir}/${jalviewjsTransferSiteMergeDir}" + + from inputFiles + into outputDir + def outputFiles = [] + rename { filename -> + outputFiles += "${outputDir}/${filename}" + null + } + preserve { + include "**" + } + + // should this be exclude really ? No, jalview dir should be transferred last (and overwrite) + duplicatesStrategy "INCLUDE" + + outputs.files outputFiles + inputs.files inputFiles +} + + +task jalviewjsTranserSiteMergeDirs { + dependsOn jalviewjsTranserSiteMergeLibDirs + dependsOn jalviewjsTranserSiteMergeSwingDir +} + + def jalviewjsCallCore(String name, FileCollection list, String prefixFile, String suffixFile, String jsfile, String zjsfile, File logOutFile, Boolean logOutConsole) { def stdout = new ByteArrayOutputStream() @@ -3690,6 +3794,7 @@ def jalviewjsCallCore(String name, FileCollection list, String prefixFile, Strin def coreTop = file(prefixFile) def coreBottom = file(suffixFile) + def missingFiles = [] coreFile.getParentFile().mkdirs() coreFile.createNewFile() coreFile.write( coreTop.getText("UTF-8") ) @@ -3703,6 +3808,7 @@ def jalviewjsCallCore(String name, FileCollection list, String prefixFile, Strin msg = "...file '"+f.getPath()+"' does not exist, skipping" println(msg) logOutFile.append(msg+"\n") + missingFiles += f } } coreFile.append( coreBottom.getText("UTF-8") ) @@ -3717,7 +3823,7 @@ def jalviewjsCallCore(String name, FileCollection list, String prefixFile, Strin classpath = files(["${jalviewDir}/${jalviewjs_closure_compiler}"]) main = "com.google.javascript.jscomp.CommandLineRunner" jvmArgs = [ "-Dfile.encoding=UTF-8" ] - args = [ "--compilation_level", "SIMPLE_OPTIMIZATIONS", "--warning_level", "QUIET", "--charset", "UTF-8", "--js", jsfile, "--js_output_file", zjsfile ] + args = [ "--compilation_level", jalviewjs_closure_compiler_optimization_level, "--warning_level", "QUIET", "--charset", "UTF-8", "--js", jsfile, "--js_output_file", zjsfile ] maxHeapSize = "2g" msg = "\nRunning '"+commandLine.join(' ')+"'\n" @@ -3745,6 +3851,11 @@ def jalviewjsCallCore(String name, FileCollection list, String prefixFile, Strin } } msg = "--" + if (missingFiles.size() > 0) { + msg += "\n!!! These files were listed but missing:\n" + missingFiles.each { file -> msg += "!!! " + file.getPath() + "\n" } + msg = "--" + } println(msg) logOutFile.append(msg+"\n") } @@ -3753,13 +3864,12 @@ def jalviewjsCallCore(String name, FileCollection list, String prefixFile, Strin task jalviewjsBuildAllCores { group "JalviewJS" description "Build the core js lib closures listed in the classlists dir" - dependsOn jalviewjsTranspile - dependsOn jalviewjsTransferUnzipSwingJs + dependsOn jalviewjsTranserSiteMergeDirs - def j2sDir = "${jalviewDir}/${jalviewjsTransferSiteJsDir}/${jalviewjs_j2s_subdir}" - def swingJ2sDir = "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}/${jalviewjs_j2s_subdir}" - def libJ2sDir = "${jalviewDir}/${jalviewjsTransferSiteLibDir}/${jalviewjs_j2s_subdir}" - def jsDir = "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}/${jalviewjs_js_subdir}" + def j2sDir = "${jalviewDir}/${jalviewjsTransferSiteMergeDir}/${jalviewjs_j2s_subdir}" + def swingJ2sDir = "${jalviewDir}/${jalviewjsTransferSiteMergeDir}/${jalviewjs_j2s_subdir}" + def libJ2sDir = "${jalviewDir}/${jalviewjsTransferSiteMergeDir}/${jalviewjs_j2s_subdir}" + def jsDir = "${jalviewDir}/${jalviewjsTransferSiteMergeDir}/${jalviewjs_js_subdir}" def outputDir = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}/${jalviewjs_j2s_subdir}/core" def prefixFile = "${jsDir}/core/coretop2.js" def suffixFile = "${jsDir}/core/corebottom2.js" @@ -3820,19 +3930,6 @@ task jalviewjsBuildAllCores { outputs.file(zjsfile) } - // _stevesoft core. add any cores without a classlist here (and the inputs and outputs) - def stevesoftClasslistName = "_stevesoft" - def stevesoftClasslist = [ - 'jsfile': "${outputDir}/core${stevesoftClasslistName}.js", - 'zjsfile': "${outputDir}/core${stevesoftClasslistName}.z.js", - 'list': fileTree(dir: j2sDir, include: "com/stevesoft/pat/**/*.js"), - 'name': stevesoftClasslistName - ] - jalviewjsCoreClasslists += stevesoftClasslist - inputs.files(stevesoftClasslist['list']) - outputs.file(stevesoftClasslist['jsfile']) - outputs.file(stevesoftClasslist['zjsfile']) - // _all core def allClasslistName = "_all" def allJsFiles = fileTree(dir: j2sDir, include: "**/*.js") @@ -3909,6 +4006,7 @@ def jalviewjsPublishCoreTemplate(String coreName, String templateName, File inpu task jalviewjsPublishCoreTemplates { dependsOn jalviewjsBuildAllCores + def inputFileName = "${jalviewDir}/${j2s_coretemplate_html}" def inputFile = file(inputFileName) def outputDir = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}" @@ -3933,6 +4031,7 @@ task jalviewjsPublishCoreTemplates { task jalviewjsSyncCore (type: Sync) { dependsOn jalviewjsBuildAllCores dependsOn jalviewjsPublishCoreTemplates + def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteCoreDir}") def outputDir = "${jalviewDir}/${jalviewjsSiteDir}" @@ -3952,8 +4051,18 @@ task jalviewjsSyncCore (type: Sync) { // this Copy version of TransferSiteJs will delete anything else in the target dir +task jalviewjsCopyTransferSiteMergeDir(type: Copy) { + dependsOn jalviewjsTranserSiteMergeDirs + + from "${jalviewDir}/${jalviewjsTransferSiteMergeDir}" + into "${jalviewDir}/${jalviewjsSiteDir}" +} + + +// this Copy version of TransferSiteJs will delete anything else in the target dir task jalviewjsCopyTransferSiteJs(type: Copy) { dependsOn jalviewjsTranspile + from "${jalviewDir}/${jalviewjsTransferSiteJsDir}" into "${jalviewDir}/${jalviewjsSiteDir}" } @@ -3984,7 +4093,7 @@ jalviewjsSyncBuildProperties.mustRunAfter jalviewjsSyncTransferSiteJs task jalviewjsPrepareSite { group "JalviewJS" description "Prepares the website folder including unzipping files and copying resources" - dependsOn jalviewjsSyncAllLibs + //dependsOn jalviewjsSyncAllLibs // now using jalviewjsCopyTransferSiteMergeDir dependsOn jalviewjsSyncResources dependsOn jalviewjsSyncSiteResources dependsOn jalviewjsSyncBuildProperties @@ -3995,7 +4104,7 @@ task jalviewjsPrepareSite { task jalviewjsBuildSite { group "JalviewJS" description "Builds the whole website including transpiled code" - dependsOn jalviewjsCopyTransferSiteJs + dependsOn jalviewjsCopyTransferSiteMergeDir dependsOn jalviewjsPrepareSite } @@ -4325,12 +4434,14 @@ task jalviewjsLaunchTest { execStdout = stdout execStderr = stderr } - def execArgs = [ + // macOS not running properly with timeout arguments + def execArgs = macOS ? [] : [ + "--virtual-time-budget=${timeoutms}", + ] + execArgs += [ "--no-sandbox", // --no-sandbox IS USED BY THE THORIUM APPIMAGE ON THE BUILDSERVER "--headless=new", "--disable-gpu", - "--timeout=${timeoutms}", - "--virtual-time-budget=${timeoutms}", "--user-data-dir=${jalviewDirAbsolutePath}/${jalviewjsBuildDir}/${jalviewjs_chromium_user_dir}", "--profile-directory=${jalviewjs_chromium_profile_name}", "--allow-file-access-from-files",