From e41cdfd54ec09b75d7e26634c80215f8c7218a4f Mon Sep 17 00:00:00 2001 From: Ben Soares Date: Tue, 16 Apr 2024 13:09:14 +0100 Subject: [PATCH] JAL-4059 Big improvements to jalviewjsProjectImport dependencies avoiding more unnecessary jalviewjsTranspiles --- build.gradle | 54 +++++++++++++++++++++++++----------------------------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/build.gradle b/build.gradle index 2ddf4db..e5d9584 100644 --- a/build.gradle +++ b/build.gradle @@ -560,7 +560,7 @@ ext { if (IN_ECLIPSE) { jalviewjsTransferSiteJsDir = string(jalviewjsSiteDir) } else { - jalviewjsTransferSiteJsDir = string("${jalviewjsBuildDir}/tmp/${jalviewjs_site_dir}/js") + jalviewjsTransferSiteJsDir = string("${jalviewjsBuildDir}/tmp/${jalviewjs_site_dir}/sitejs") } jalviewjsTransferSiteLibDir = string("${jalviewjsBuildDir}/tmp/${jalviewjs_site_dir}/lib") jalviewjsTransferSiteSwingJsDir = string("${jalviewjsBuildDir}/tmp/${jalviewjs_site_dir}/swingjs") @@ -3249,12 +3249,14 @@ task jalviewjsEnableAltFileProperty(type: WriteProperties) { task jalviewjsSetEclipseWorkspace { def propKey = "jalviewjs_eclipse_workspace" def propVal = null + // see if jalviewjs_eclipse_workspace is set by a property if (project.hasProperty(propKey)) { propVal = project.getProperty(propKey) if (propVal.startsWith("~/")) { propVal = System.getProperty("user.home") + propVal.substring(1) } } + // else look for an existing build/jalviewjs/eclipse_workspace_location file def propsFileName = "${jalviewDirAbsolutePath}/${jalviewjsBuildDir}/${jalviewjs_eclipse_workspace_location_file}" def propsFile = file(propsFileName) def eclipseWsDir = propVal @@ -3303,8 +3305,8 @@ task jalviewjsSetEclipseWorkspace { } //inputs.property(propKey, eclipseWsDir) // eclipseWsDir only gets set once this task runs, so will be out-of-date - outputs.file(propsFileName) - outputs.upToDateWhen { eclipseWorkspace.exists() && propsFile.exists() } + //outputs.file(propsFileName) // don't want this to be deleted because of falsely "stale" task + outputs.upToDateWhen { eclipseWorkspace.exists() && (propsFile.exists() || !writeProps) } } @@ -3498,7 +3500,6 @@ task jalviewjsCreateJ2sSettings(type: WriteProperties) { if (! IN_ECLIPSE) { inputs.properties(jalviewjsJ2sProps) - outputs.file(jalviewjsJ2sAltSettingsFileName) } } @@ -3668,16 +3669,16 @@ task jalviewjsProjectImport(type: Exec) { inputs.file("${jalviewjsJ2sAltSettingsFileName}") } - outputs.upToDateWhen({ + outputs.upToDateWhen( { if (IN_ECLIPSE) { return true } def projDirExists = file(projdir).exists() return projDirExists - }) + } ) } - +// jalviewjs_eclipse_workspace_location_file task jalviewjsTranspile(type: Exec) { dependsOn jalviewjsProjectImport @@ -3836,7 +3837,6 @@ ECLIPSE DEBUG: ${eclipseDebug} task jalviewjsTransferSiteMergeSiteJsDir (type: Copy) { dependsOn jalviewjsTranspile - def inputDir = file("${jalviewDir}/${jalviewjsTransferSiteJsDir}") def outputDir = "${jalviewDir}/${jalviewjsTransferSiteMergeDir}" into outputDir @@ -3876,58 +3876,54 @@ task jalviewjsTransferSiteMergeSiteJsDir (type: Copy) { inputs.files jalviewjsTranspile } -task jalviewjsTransferSiteMergeSwingJsDir (type: Copy) { - dependsOn jalviewjsTransferUnzipSwingJs - - mustRunAfter jalviewjsTransferSiteMergeSiteJsDir +task jalviewjsTransferSiteMergeLibDir (type: Copy) { + dependsOn jalviewjsTransferUnzipLib def outputDir = "${jalviewDir}/${jalviewjsTransferSiteMergeDir}" - // This takes the outputs of jalviewjsTransferUnzipSwingJs - from jalviewjsTransferUnzipSwingJs + // This takes the outputs of jalviewjsTransferUnzipLib + from jalviewjsTransferUnzipLib into outputDir includeEmptyDirs = false exclude "**/*.html" exclude "**/*.htm" + // don't overwrite files in the destination + // Note, this closure gets run at run stage not config stage eachFile { if (it.getRelativePath().getFile(file(outputDir)).exists()) { it.exclude() } } - // should this be exclude really ? No, swingjs dir should be transferred last (and overwrite) duplicatesStrategy "INCLUDE" } -task jalviewjsTransferSiteMergeLibDir (type: Copy) { - dependsOn jalviewjsTransferUnzipLib - - mustRunAfter jalviewjsTransferSiteMergeSiteJsDir - mustRunAfter jalviewjsTransferSiteMergeSwingJsDir +task jalviewjsTransferSiteMergeSwingJsDir (type: Copy) { + dependsOn jalviewjsTransferUnzipSwingJs def outputDir = "${jalviewDir}/${jalviewjsTransferSiteMergeDir}" - // This takes the outputs of jalviewjsTransferUnzipLib - from jalviewjsTransferUnzipLib + // This takes the outputs of jalviewjsTransferUnzipSwingJs + from jalviewjsTransferUnzipSwingJs into outputDir includeEmptyDirs = false exclude "**/*.html" exclude "**/*.htm" - // don't overwrite files in the destination - eachFile { - if (it.getRelativePath().getFile(file(outputDir)).exists()) { - it.exclude() - } - } - + // DO overwrite files in the destination + // should this be exclude really ? No, swingjs dir should be transferred last (and overwrite) duplicatesStrategy "INCLUDE" } +// we run after SiteJs and exclude overwriting files +jalviewjsTransferSiteMergeLibDir.mustRunAfter jalviewjsTransferSiteMergeSiteJsDir +jalviewjsTransferSiteMergeLibDir.mustRunAfter jalviewjsTransferSiteMergeSwingJsDir +// we run this last, overwriting files from sitejs and lib, to ensure a consistent SwingJS +jalviewjsTransferSiteMergeSwingJsDir.mustRunAfter jalviewjsTransferSiteMergeSiteJsDir task jalviewjsTransferSiteMergeDirs { dependsOn jalviewjsTransferSiteMergeLibDir -- 1.7.10.2