Rectanuglar selection changed to Mouse Button 3 drag
[jalview.git] / build.diff
1 --- build.gradle.orig   2024-05-22 09:14:54.544344630 +0200
2 +++ build.gradle        2024-05-22 09:45:40.809642258 +0200
3 @@ -51,8 +51,8 @@
4    id 'java'
5    id 'application'
6    id 'eclipse'
7 -  id "com.diffplug.gradle.spotless" version "3.28.0"
8 -  id 'com.github.johnrengelman.shadow' version '6.0.0'
9 +  id "com.diffplug.spotless" version "6.18.0"
10 +  id 'com.github.johnrengelman.shadow' version '8.1.1'
11    id 'com.install4j.gradle' version '10.0.3'
12    id 'com.dorongold.task-tree' version '2.1.1' // only needed to display task dependency tree with  gradle task1 [task2 ...] taskTree
13    id 'com.palantir.git-version' version '0.13.0' apply false
14 @@ -193,6 +193,7 @@
15    testDir = string("${jalviewDir}/${bareTestSourceDir}")
16  
17    classesDir = string("${jalviewDir}/${classes_dir}")
18 +  destinationDirectory = file(classesDir)
19  
20    // clover
21    useClover = clover.equals("true")
22 @@ -590,14 +591,14 @@
23    main {
24      java {
25        srcDirs sourceDir
26 -      outputDir = file(classesDir)
27 +      destinationDirectory = file(classesDir)
28      }
29  
30      resources {
31        srcDirs = [ resourcesBuildDir, docBuildDir, helpBuildDir ]
32      }
33  
34 -    compileClasspath = files(sourceSets.main.java.outputDir)
35 +    compileClasspath = files(sourceSets.main.java.destinationDirectory)
36      compileClasspath += fileTree(dir: "${jalviewDir}/${libDir}", include: ["*.jar"])
37  
38      runtimeClasspath = compileClasspath
39 @@ -607,14 +608,14 @@
40    clover {
41      java {
42        srcDirs cloverInstrDir
43 -      outputDir = cloverClassesDir
44 +      destinationDirectory = cloverClassesDir
45      }
46  
47      resources {
48        srcDirs = sourceSets.main.resources.srcDirs
49      }
50  
51 -    compileClasspath = files( sourceSets.clover.java.outputDir )
52 +    compileClasspath = files( sourceSets.clover.java.destinationDirectory )
53      //compileClasspath += files( testClassesDir )
54      compileClasspath += fileTree(dir: "${jalviewDir}/${libDir}", include: ["*.jar"])
55      compileClasspath += fileTree(dir: "${jalviewDir}/${clover_lib_dir}", include: ["*.jar"])
56 @@ -626,14 +627,14 @@
57    test {
58      java {
59        srcDirs testSourceDir
60 -      outputDir = file(testClassesDir)
61 +      destinationDirectory = file(testClassesDir)
62      }
63  
64      resources {
65        srcDirs = useClover ? sourceSets.clover.resources.srcDirs : sourceSets.main.resources.srcDirs
66      }
67  
68 -    compileClasspath = files( sourceSets.test.java.outputDir )
69 +    compileClasspath = files( sourceSets.test.java.destinationDirectory )
70      compileClasspath += useClover ? sourceSets.clover.compileClasspath : sourceSets.main.compileClasspath
71      compileClasspath += fileTree(dir: "${jalviewDir}/${utils_dir}/testnglibs", include: ["**/*.jar"])
72  
73 @@ -658,7 +659,7 @@
74    }
75  
76    classpath {
77 -    //defaultOutputDir = sourceSets.main.java.outputDir
78 +    //defaultOutputDir = sourceSets.main.java.destinationDirectory
79      configurations.each{ c->
80        if (c.isCanBeResolved()) {
81          minusConfigurations += [c]
82 @@ -697,7 +698,7 @@
83          HashMap<String, Boolean> alreadyAddedLibPath = new HashMap<>();
84  
85          sourceSets.main.compileClasspath.findAll { it.name.endsWith(".jar") }.any {
86 -          //don't want to add outputDir as eclipse is using its own output dir in bin/main
87 +          //don't want to add destinationDirectory as eclipse is using its own output dir in bin/main
88            if (it.isDirectory() || ! it.exists()) {
89              // don't add dirs to classpath, especially if they don't exist
90              return false // groovy "continue" in .any closure
91 @@ -717,7 +718,7 @@
92          }
93  
94          sourceSets.test.compileClasspath.findAll { it.name.endsWith(".jar") }.any {
95 -          //no longer want to add outputDir as eclipse is using its own output dir in bin/main
96 +          //no longer want to add destinationDirectory as eclipse is using its own output dir in bin/main
97            if (it.isDirectory() || ! it.exists()) {
98              // don't add dirs to classpath
99              return false // groovy "continue" in .any closure
100 @@ -1094,7 +1095,7 @@
101  
102  clean {
103    doFirst {
104 -    delete sourceSets.main.java.outputDir
105 +    delete sourceSets.main.java.destinationDirectory
106    }
107  }
108  
109 @@ -1102,7 +1103,7 @@
110  cleanTest {
111    dependsOn cleanClover
112    doFirst {
113 -    delete sourceSets.test.java.outputDir
114 +    delete sourceSets.test.java.destinationDirectory
115    }
116  }
117  
118 @@ -1194,7 +1195,7 @@
119  
120  task copyDocs(type: Copy) {
121    def inputDir = "${jalviewDir}/${doc_dir}"
122 -  def outputDir = "${docBuildDir}/${doc_dir}"
123 +  def destinationDirectory = "${docBuildDir}/${doc_dir}"
124    from(inputDir) {
125      include('**/*.txt')
126      include('**/*.md')
127 @@ -1215,10 +1216,10 @@
128      exclude('**/*.html')
129      exclude('**/*.xml')
130    }
131 -  into outputDir
132 +  into destinationDirectory
133  
134    inputs.dir(inputDir)
135 -  outputs.dir(outputDir)
136 +  outputs.dir(destinationDirectory)
137  }
138  
139  
140 @@ -1283,15 +1284,15 @@
141        }
142        if (inFrontMatter) {
143          def m = null
144 -        if (m = line =~ /^date:\s*(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/) {
145 +        if (m == line =~ /^date:\s*(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/) {
146            map["date"] = new Date().parse("yyyy-MM-dd HH:mm:ss", m[0][1])
147 -        } else if (m = line =~ /^date:\s*(\d{4}-\d{2}-\d{2})/) {
148 +        } else if (m == line =~ /^date:\s*(\d{4}-\d{2}-\d{2})/) {
149            map["date"] = new Date().parse("yyyy-MM-dd", m[0][1])
150 -        } else if (m = line =~ /^channel:\s*(\S+)/) {
151 +        } else if (m == line =~ /^channel:\s*(\S+)/) {
152            map["channel"] = m[0][1]
153 -        } else if (m = line =~ /^version:\s*(\S+)/) {
154 +        } else if (m == line =~ /^version:\s*(\S+)/) {
155            map["version"] = m[0][1]
156 -        } else if (m = line =~ /^\s*([^:]+)\s*:\s*(\S.*)/) {
157 +        } else if (m == line =~ /^\s*([^:]+)\s*:\s*(\S.*)/) {
158            map[ m[0][1] ] = m[0][2]
159          }
160          if (dateOnly && map["date"] != null) {
161 @@ -1350,7 +1351,7 @@
162        def inSection = false
163        changes.eachLine { line ->
164          def m = null
165 -        if (m = line =~ /^##([^#].*)$/) {
166 +        if (m == line =~ /^##([^#].*)$/) {
167            if (inSection) {
168              changesHugo += "</div>\n\n"
169            }
170 @@ -1360,7 +1361,7 @@
171            section = section.replaceAll(/[^a-z0-9_\-]/, "")
172            changesHugo += "<div class=\"${section}\">\n\n"
173            inSection = true
174 -        } else if (m = line =~ /^(\s*-\s*)<!--([^>]+)-->(.*?)(<br\/?>)?\s*$/) {
175 +        } else if (m == line =~ /^(\s*-\s*)<!--([^>]+)-->(.*?)(<br\/?>)?\s*$/) {
176            def comment = m[0][2].trim()
177            if (comment != "") {
178              comment = comment.replaceAll('"', "&quot;")
179 @@ -1430,7 +1431,7 @@
180    def sectionName = null
181    content.eachLine { line ->
182      def m = null
183 -    if (m = line =~ /^##([^#].*)$/) {
184 +    if (m == line =~ /^##([^#].*)$/) {
185        if (sectionName != null) {
186          sections[sectionName] = sectionContent
187          sectionName = null
188 @@ -1453,7 +1454,7 @@
189  
190  task copyHelp(type: Copy) {
191    def inputDir = helpSourceDir
192 -  def outputDir = "${helpBuildDir}/${help_dir}"
193 +  def destinationDirectory = "${helpBuildDir}/${help_dir}"
194    from(inputDir) {
195      include('**/*.txt')
196      include('**/*.md')
197 @@ -1478,14 +1479,15 @@
198      exclude('**/*.xml')
199      exclude('**/*.jhm')
200    }
201 -  into outputDir
202 +  into destinationDirectory
203  
204    inputs.dir(inputDir)
205    outputs.files(helpFile)
206 -  outputs.dir(outputDir)
207 +  outputs.dir(destinationDirectory)
208  }
209  
210  
211 +/*
212  task releasesTemplates {
213    group "help"
214    description "Recreate whatsNew.html and releases.html from markdown files and templates in help"
215 @@ -1562,9 +1564,9 @@
216        def lm = null
217        def rContentProcessed = ""
218        rContent.eachLine { line ->
219 -        if (lm = line =~ /^(\s*-)(\s*<!--[^>]*?-->)(.*)$/) {
220 +        if (lm == line =~ /^(\s*-)(\s*<!--[^>]*?-->)(.*)$/) {
221            line = "${lm[0][1]}${lm[0][3]}${lm[0][2]}"
222 -      } else if (lm = line =~ /^###([^#]+.*)$/) {
223 +      } else if (lm == line =~ /^###([^#]+.*)$/) {
224            line = "_${lm[0][1].trim()}_"
225          }
226          rContentProcessed += line + "\n"
227 @@ -1622,13 +1624,14 @@
228    outputs.file(whatsnewHtmlFile)
229  }
230  
231 +*/
232  
233  task copyResources(type: Copy) {
234    group = "build"
235    description = "Copy (and make text substitutions in) the resources dir to the build area"
236  
237    def inputDir = resourceDir
238 -  def outputDir = resourcesBuildDir
239 +  def destinationDirectory = resourcesBuildDir
240    from(inputDir) {
241      include('**/*.txt')
242      include('**/*.md')
243 @@ -1649,10 +1652,10 @@
244      exclude('**/*.html')
245      exclude('**/*.xml')
246    }
247 -  into outputDir
248 +  into destinationDirectory
249  
250    inputs.dir(inputDir)
251 -  outputs.dir(outputDir)
252 +  outputs.dir(destinationDirectory)
253  }
254  
255  task copyChannelResources(type: Copy) {
256 @@ -1683,6 +1686,7 @@
257  
258  task createBuildProperties(type: WriteProperties) {
259    dependsOn copyResources
260 +  dependsOn copyChannelResources
261    group = "build"
262    description = "Create the ${buildProperties} file"
263    
264 @@ -1706,6 +1710,7 @@
265  
266  task buildIndices(type: JavaExec) {
267    dependsOn copyHelp
268 +  //dependsOn releasesTemplates
269    classpath = sourceSets.main.compileClasspath
270    main = "com.sun.java.help.search.Indexer"
271    workingDir = "${helpBuildDir}/${help_dir}"
272 @@ -1733,7 +1738,7 @@
273    dependsOn buildResources
274    dependsOn copyDocs
275    dependsOn copyHelp
276 -  dependsOn releasesTemplates
277 +  //dependsOn releasesTemplates
278    dependsOn convertMdFiles
279    dependsOn buildIndices
280  }
281 @@ -1742,6 +1747,14 @@
282  compileJava.dependsOn prepare
283  run.dependsOn compileJava
284  compileTestJava.dependsOn compileJava
285 +compileTestJava.dependsOn buildIndices
286 +processResources.dependsOn copyChannelResources
287 +processResources.dependsOn copyResources
288 +processResources.dependsOn createBuildProperties
289 +processResources.dependsOn copyDocs
290 +processResources.dependsOn convertMdFiles
291 +processResources.dependsOn copyHelp
292 +processResources.dependsOn buildIndices
293  
294  
295  
296 @@ -2037,6 +2050,7 @@
297  /* END of test tasks results summary */
298  
299  
300 +/*
301  task compileLinkCheck(type: JavaCompile) {
302    options.fork = true
303    classpath = files("${jalviewDir}/${utils_dir}")
304 @@ -2071,6 +2085,7 @@
305    inputs.dir(helpBuildDir)
306    outputs.file(helpLinksCheckerOutFile)
307  }
308 +*/
309  
310  
311  // import the pubhtmlhelp target
312 @@ -2085,10 +2100,14 @@
313    }
314  }
315  
316 +// block of dependencies
317 +//compileTestJava.dependsOn compileLinkCheck //
318 +//copyChannelResources.dependsOn compileLinkCheck //
319 +//convertMdFiles.dependsOn compileLinkCheck //
320  
321  jar {
322    dependsOn prepare
323 -  dependsOn linkCheck
324 +  dependsOn //linkCheck
325  
326    manifest {
327      attributes "Main-Class": main_class,
328 @@ -2098,8 +2117,8 @@
329      "Implementation-Version": JALVIEW_VERSION
330    }
331  
332 -  def outputDir = "${jalviewDir}/${package_dir}"
333 -  destinationDirectory = file(outputDir)
334 +  def destinationDirectory = "${jalviewDir}/${package_dir}"
335 +  destinationDirectory = file(destinationDirectory)
336    archiveFileName = rootProject.name+".jar"
337    duplicatesStrategy "EXCLUDE"
338  
339 @@ -2110,11 +2129,11 @@
340    exclude "**/*.jar"
341    exclude "**/*.jar.*"
342  
343 -  inputs.dir(sourceSets.main.java.outputDir)
344 +  inputs.dir(sourceSets.main.java.destinationDirectory)
345    sourceSets.main.resources.srcDirs.each{ dir ->
346      inputs.dir(dir)
347    }
348 -  outputs.file("${outputDir}/${archiveFileName}")
349 +  outputs.file("${destinationDirectory}/${archiveFileName}")
350  }
351  
352  
353 @@ -2207,7 +2226,7 @@
354    // this mainClassName is mandatory but gets ignored due to manifest created in doFirst{}. Set the Main-Class as an attribute in launcherJar instead
355    mainClassName = shadow_jar_main_class
356    mergeServiceFiles()
357 -  classifier = "all-"+JALVIEW_VERSION+"-j"+JAVA_VERSION
358 +  archiveClassifier = "all-"+JALVIEW_VERSION+"-j"+JAVA_VERSION
359    minimize()
360  }
361  
362 @@ -3388,10 +3407,10 @@
363  
364    def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjs_eclipse_dropins_dir}", include: "*.jar")
365    inputFiles += file("${jalviewDir}/${jalviewjsJ2sPlugin}")
366 -  def outputDir = "${jalviewDir}/${jalviewjsBuildDir}/${jalviewjs_eclipse_tmp_dropins_dir}"
367 +  def destinationDirectory = "${jalviewDir}/${jalviewjsBuildDir}/${jalviewjs_eclipse_tmp_dropins_dir}"
368  
369    from inputFiles
370 -  into outputDir
371 +  into destinationDirectory
372  }
373  
374  
375 @@ -3499,13 +3518,13 @@
376    dependsOn jalviewjsTransferUnzipAllLibs
377    def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteLibDir}")
378    inputFiles += fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}")
379 -  def outputDir = "${jalviewDir}/${jalviewjsSiteDir}"
380 +  def destinationDirectory = "${jalviewDir}/${jalviewjsSiteDir}"
381  
382    from inputFiles
383 -  into outputDir
384 +  into destinationDirectory
385    def outputFiles = []
386    rename { filename ->
387 -    outputFiles += "${outputDir}/${filename}"
388 +    outputFiles += "${destinationDirectory}/${filename}"
389      null
390    }
391    preserve {
392 @@ -3524,13 +3543,13 @@
393    dependsOn buildResources
394  
395    def inputFiles = fileTree(dir: resourcesBuildDir)
396 -  def outputDir = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}"
397 +  def destinationDirectory = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}"
398  
399    from inputFiles
400 -  into outputDir
401 +  into destinationDirectory
402    def outputFiles = []
403    rename { filename ->
404 -    outputFiles += "${outputDir}/${filename}"
405 +    outputFiles += "${destinationDirectory}/${filename}"
406      null
407    }
408    preserve {
409 @@ -3543,13 +3562,13 @@
410  
411  task jalviewjsSyncSiteResources (type: Sync) {
412    def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjs_site_resource_dir}")
413 -  def outputDir = "${jalviewDir}/${jalviewjsSiteDir}"
414 +  def destinationDirectory = "${jalviewDir}/${jalviewjsSiteDir}"
415  
416    from inputFiles
417 -  into outputDir
418 +  into destinationDirectory
419    def outputFiles = []
420    rename { filename ->
421 -    outputFiles += "${outputDir}/${filename}"
422 +    outputFiles += "${destinationDirectory}/${filename}"
423      null
424    }
425    preserve {
426 @@ -3563,13 +3582,13 @@
427  task jalviewjsSyncBuildProperties (type: Sync) {
428    dependsOn createBuildProperties
429    def inputFiles = [file(buildProperties)]
430 -  def outputDir = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}"
431 +  def destinationDirectory = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}"
432  
433    from inputFiles
434 -  into outputDir
435 +  into destinationDirectory
436    def outputFiles = []
437    rename { filename ->
438 -    outputFiles += "${outputDir}/${filename}"
439 +    outputFiles += "${destinationDirectory}/${filename}"
440      null
441    }
442    preserve {
443 @@ -3788,7 +3807,7 @@
444    def swingJ2sDir = "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}/${jalviewjs_j2s_subdir}"
445    def libJ2sDir = "${jalviewDir}/${jalviewjsTransferSiteLibDir}/${jalviewjs_j2s_subdir}"
446    def jsDir = "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}/${jalviewjs_js_subdir}"
447 -  def outputDir = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}/${jalviewjs_j2s_subdir}/core"
448 +  def destinationDirectory = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}/${jalviewjs_j2s_subdir}/core"
449    def prefixFile = "${jsDir}/core/coretop2.js"
450    def suffixFile = "${jsDir}/core/corebottom2.js"
451  
452 @@ -3832,8 +3851,8 @@
453      }
454      def list = fileTree(dir: j2sDir, includes: filelist)
455  
456 -    def jsfile = "${outputDir}/core${name}.js"
457 -    def zjsfile = "${outputDir}/core${name}.z.js"
458 +    def jsfile = "${destinationDirectory}/core${name}.js"
459 +    def zjsfile = "${destinationDirectory}/core${name}.z.js"
460  
461      jalviewjsCoreClasslists += [
462        'jsfile': jsfile,
463 @@ -3851,8 +3870,8 @@
464    // _stevesoft core. add any cores without a classlist here (and the inputs and outputs)
465    def stevesoftClasslistName = "_stevesoft"
466    def stevesoftClasslist = [
467 -    'jsfile': "${outputDir}/core${stevesoftClasslistName}.js",
468 -    'zjsfile': "${outputDir}/core${stevesoftClasslistName}.z.js",
469 +    'jsfile': "${destinationDirectory}/core${stevesoftClasslistName}.js",
470 +    'zjsfile': "${destinationDirectory}/core${stevesoftClasslistName}.z.js",
471      'list': fileTree(dir: j2sDir, include: "com/stevesoft/pat/**/*.js"),
472      'name': stevesoftClasslistName
473    ]
474 @@ -3885,8 +3904,8 @@
475      ]
476    )
477    def allClasslist = [
478 -    'jsfile': "${outputDir}/core${allClasslistName}.js",
479 -    'zjsfile': "${outputDir}/core${allClasslistName}.z.js",
480 +    'jsfile': "${destinationDirectory}/core${allClasslistName}.js",
481 +    'zjsfile': "${destinationDirectory}/core${allClasslistName}.z.js",
482      'list': allJsFiles,
483      'name': allClasslistName
484    ]
485 @@ -3939,11 +3958,11 @@
486    dependsOn jalviewjsBuildAllCores
487    def inputFileName = "${jalviewDir}/${j2s_coretemplate_html}"
488    def inputFile = file(inputFileName)
489 -  def outputDir = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}"
490 +  def destinationDirectory = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}"
491  
492    def outputFiles = []
493    jalviewjsCoreClasslists.each { cl ->
494 -    def outputFile = "${outputDir}/${jalviewjsJalviewTemplateName}_${cl.name}.html"
495 +    def outputFile = "${destinationDirectory}/${jalviewjsJalviewTemplateName}_${cl.name}.html"
496      cl['outputfile'] = outputFile
497      outputFiles += outputFile
498    }
499 @@ -3962,13 +3981,13 @@
500    dependsOn jalviewjsBuildAllCores
501    dependsOn jalviewjsPublishCoreTemplates
502    def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteCoreDir}")
503 -  def outputDir = "${jalviewDir}/${jalviewjsSiteDir}"
504 +  def destinationDirectory = "${jalviewDir}/${jalviewjsSiteDir}"
505  
506    from inputFiles
507 -  into outputDir
508 +  into destinationDirectory
509    def outputFiles = []
510    rename { filename ->
511 -    outputFiles += "${outputDir}/${filename}"
512 +    outputFiles += "${destinationDirectory}/${filename}"
513      null
514    }
515    preserve {