JAL-4159 recover 2.11.3 series gradle/build.properties so we can build the spike
[jalview.git] / build.diff
1 --- build.gradle        2023-07-02 09:21:09.216542293 +0200
2 +++ ../jalview_new/build.gradle 2023-05-15 19:20:46.892861180 +0200
3 @@ -45,8 +45,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 '4.0.3'
9 +  id "com.diffplug.spotless" version "6.18.0" //.gradle.spotless" "3.28.0"
10 +  id 'com.github.johnrengelman.shadow' version '8.1.1' // was 4.0.3
11    id 'com.install4j.gradle' version '9.0.6'
12    id 'com.dorongold.task-tree' version '2.1.0' // 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 @@ -183,6 +183,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 @@ -547,14 +548,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 @@ -564,14 +565,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 @@ -583,14 +584,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 @@ -615,7 +616,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 @@ -654,7 +655,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 @@ -674,7 +675,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 @@ -1051,7 +1052,7 @@
101  
102  clean {
103    doFirst {
104 -    delete sourceSets.main.java.outputDir
105 +    delete sourceSets.main.java.destinationDirectory
106    }
107  }
108  
109 @@ -1059,7 +1060,7 @@
110  cleanTest {
111    dependsOn cleanClover
112    doFirst {
113 -    delete sourceSets.test.java.outputDir
114 +    delete sourceSets.test.java.destinationDirectory
115    }
116  }
117  
118 @@ -1151,7 +1152,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 @@ -1172,10 +1173,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 @@ -1240,15 +1241,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 @@ -1307,7 +1308,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 @@ -1317,7 +1318,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 @@ -1387,7 +1388,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 @@ -1410,7 +1411,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 @@ -1435,14 +1436,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 @@ -1519,9 +1521,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 @@ -1579,13 +1581,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 @@ -1606,10 +1609,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 @@ -1618,16 +1621,17 @@
257    description = "Copy the channel resources dir to the build resources area"
258  
259    def inputDir = "${channelDir}/${resource_dir}"
260 -  def outputDir = resourcesBuildDir
261 +  def destinationDirectory = resourcesBuildDir
262    from inputDir
263 -  into outputDir
264 +  into destinationDirectory
265  
266    inputs.dir(inputDir)
267 -  outputs.dir(outputDir)
268 +  outputs.dir(destinationDirectory)
269  }
270  
271  task createBuildProperties(type: WriteProperties) {
272    dependsOn copyResources
273 +  dependsOn copyChannelResources
274    group = "build"
275    description = "Create the ${buildProperties} file"
276    
277 @@ -1651,6 +1655,7 @@
278  
279  task buildIndices(type: JavaExec) {
280    dependsOn copyHelp
281 +  //dependsOn releasesTemplates
282    classpath = sourceSets.main.compileClasspath
283    main = "com.sun.java.help.search.Indexer"
284    workingDir = "${helpBuildDir}/${help_dir}"
285 @@ -1678,15 +1683,25 @@
286    dependsOn buildResources
287    dependsOn copyDocs
288    dependsOn copyHelp
289 -  dependsOn releasesTemplates
290 +  //dependsOn releasesTemplates
291    dependsOn convertMdFiles
292    dependsOn buildIndices
293  }
294  
295  
296 +// random block of dependencies
297  compileJava.dependsOn prepare
298  run.dependsOn compileJava
299  //run.dependsOn prepare
300 +compileTestJava.dependsOn compileJava //
301 +compileTestJava.dependsOn buildIndices //
302 +processResources.dependsOn copyChannelResources //
303 +processResources.dependsOn copyResources //
304 +processResources.dependsOn createBuildProperties //
305 +processResources.dependsOn copyDocs //
306 +processResources.dependsOn convertMdFiles //
307 +processResources.dependsOn copyHelp //
308 +processResources.dependsOn buildIndices //
309  
310  
311  //testReportDirName = "test-reports" // note that test workingDir will be $jalviewDir
312 @@ -1731,6 +1746,7 @@
313  }
314  
315  
316 +/*
317  task compileLinkCheck(type: JavaCompile) {
318    options.fork = true
319    classpath = files("${jalviewDir}/${utils_dir}")
320 @@ -1765,6 +1781,7 @@
321    inputs.dir(helpBuildDir)
322    outputs.file(helpLinksCheckerOutFile)
323  }
324 +*/
325  
326  
327  // import the pubhtmlhelp target
328 @@ -1779,10 +1796,14 @@
329    }
330  }
331  
332 +// block of dependencies
333 +//compileTestJava.dependsOn compileLinkCheck //
334 +//copyChannelResources.dependsOn compileLinkCheck //
335 +//convertMdFiles.dependsOn compileLinkCheck //
336  
337  jar {
338    dependsOn prepare
339 -  dependsOn linkCheck
340 +  dependsOn //linkCheck
341  
342    manifest {
343      attributes "Main-Class": main_class,
344 @@ -1792,8 +1813,8 @@
345      "Implementation-Version": JALVIEW_VERSION
346    }
347  
348 -  def outputDir = "${jalviewDir}/${package_dir}"
349 -  destinationDirectory = file(outputDir)
350 +  def destinationDirectory = "${jalviewDir}/${package_dir}"
351 +  destinationDirectory = file(destinationDirectory)
352    archiveFileName = rootProject.name+".jar"
353    duplicatesStrategy "EXCLUDE"
354  
355 @@ -1804,11 +1825,11 @@
356    exclude "**/*.jar"
357    exclude "**/*.jar.*"
358  
359 -  inputs.dir(sourceSets.main.java.outputDir)
360 +  inputs.dir(sourceSets.main.java.destinationDirectory)
361    sourceSets.main.resources.srcDirs.each{ dir ->
362      inputs.dir(dir)
363    }
364 -  outputs.file("${outputDir}/${archiveFileName}")
365 +  outputs.file("${destinationDirectory}/${archiveFileName}")
366  }
367  
368  
369 @@ -1867,7 +1888,7 @@
370  
371    mainClassName = shadow_jar_main_class
372    mergeServiceFiles()
373 -  classifier = "all-"+JALVIEW_VERSION+"-j"+JAVA_VERSION
374 +  archiveClassifier = "all-"+JALVIEW_VERSION+"-j"+JAVA_VERSION
375    minimize()
376  }
377  
378 @@ -2922,10 +2943,10 @@
379  
380    def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjs_eclipse_dropins_dir}", include: "*.jar")
381    inputFiles += file("${jalviewDir}/${jalviewjsJ2sPlugin}")
382 -  def outputDir = "${jalviewDir}/${jalviewjsBuildDir}/${jalviewjs_eclipse_tmp_dropins_dir}"
383 +  def destinationDirectory = "${jalviewDir}/${jalviewjsBuildDir}/${jalviewjs_eclipse_tmp_dropins_dir}"
384  
385    from inputFiles
386 -  into outputDir
387 +  into destinationDirectory
388  }
389  
390  
391 @@ -3033,13 +3054,13 @@
392    dependsOn jalviewjsTransferUnzipAllLibs
393    def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteLibDir}")
394    inputFiles += fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}")
395 -  def outputDir = "${jalviewDir}/${jalviewjsSiteDir}"
396 +  def destinationDirectory = "${jalviewDir}/${jalviewjsSiteDir}"
397  
398    from inputFiles
399 -  into outputDir
400 +  into destinationDirectory
401    def outputFiles = []
402    rename { filename ->
403 -    outputFiles += "${outputDir}/${filename}"
404 +    outputFiles += "${destinationDirectory}/${filename}"
405      null
406    }
407    preserve {
408 @@ -3058,13 +3079,13 @@
409    dependsOn buildResources
410  
411    def inputFiles = fileTree(dir: resourcesBuildDir)
412 -  def outputDir = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}"
413 +  def destinationDirectory = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}"
414  
415    from inputFiles
416 -  into outputDir
417 +  into destinationDirectory
418    def outputFiles = []
419    rename { filename ->
420 -    outputFiles += "${outputDir}/${filename}"
421 +    outputFiles += "${destinationDirectory}/${filename}"
422      null
423    }
424    preserve {
425 @@ -3077,13 +3098,13 @@
426  
427  task jalviewjsSyncSiteResources (type: Sync) {
428    def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjs_site_resource_dir}")
429 -  def outputDir = "${jalviewDir}/${jalviewjsSiteDir}"
430 +  def destinationDirectory = "${jalviewDir}/${jalviewjsSiteDir}"
431  
432    from inputFiles
433 -  into outputDir
434 +  into destinationDirectory
435    def outputFiles = []
436    rename { filename ->
437 -    outputFiles += "${outputDir}/${filename}"
438 +    outputFiles += "${destinationDirectory}/${filename}"
439      null
440    }
441    preserve {
442 @@ -3097,13 +3118,13 @@
443  task jalviewjsSyncBuildProperties (type: Sync) {
444    dependsOn createBuildProperties
445    def inputFiles = [file(buildProperties)]
446 -  def outputDir = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}"
447 +  def destinationDirectory = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}"
448  
449    from inputFiles
450 -  into outputDir
451 +  into destinationDirectory
452    def outputFiles = []
453    rename { filename ->
454 -    outputFiles += "${outputDir}/${filename}"
455 +    outputFiles += "${destinationDirectory}/${filename}"
456      null
457    }
458    preserve {
459 @@ -3322,7 +3343,7 @@
460    def swingJ2sDir = "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}/${jalviewjs_j2s_subdir}"
461    def libJ2sDir = "${jalviewDir}/${jalviewjsTransferSiteLibDir}/${jalviewjs_j2s_subdir}"
462    def jsDir = "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}/${jalviewjs_js_subdir}"
463 -  def outputDir = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}/${jalviewjs_j2s_subdir}/core"
464 +  def destinationDirectory = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}/${jalviewjs_j2s_subdir}/core"
465    def prefixFile = "${jsDir}/core/coretop2.js"
466    def suffixFile = "${jsDir}/core/corebottom2.js"
467  
468 @@ -3366,8 +3387,8 @@
469      }
470      def list = fileTree(dir: j2sDir, includes: filelist)
471  
472 -    def jsfile = "${outputDir}/core${name}.js"
473 -    def zjsfile = "${outputDir}/core${name}.z.js"
474 +    def jsfile = "${destinationDirectory}/core${name}.js"
475 +    def zjsfile = "${destinationDirectory}/core${name}.z.js"
476  
477      jalviewjsCoreClasslists += [
478        'jsfile': jsfile,
479 @@ -3385,8 +3406,8 @@
480    // _stevesoft core. add any cores without a classlist here (and the inputs and outputs)
481    def stevesoftClasslistName = "_stevesoft"
482    def stevesoftClasslist = [
483 -    'jsfile': "${outputDir}/core${stevesoftClasslistName}.js",
484 -    'zjsfile': "${outputDir}/core${stevesoftClasslistName}.z.js",
485 +    'jsfile': "${destinationDirectory}/core${stevesoftClasslistName}.js",
486 +    'zjsfile': "${destinationDirectory}/core${stevesoftClasslistName}.z.js",
487      'list': fileTree(dir: j2sDir, include: "com/stevesoft/pat/**/*.js"),
488      'name': stevesoftClasslistName
489    ]
490 @@ -3419,8 +3440,8 @@
491      ]
492    )
493    def allClasslist = [
494 -    'jsfile': "${outputDir}/core${allClasslistName}.js",
495 -    'zjsfile': "${outputDir}/core${allClasslistName}.z.js",
496 +    'jsfile': "${destinationDirectory}/core${allClasslistName}.js",
497 +    'zjsfile': "${destinationDirectory}/core${allClasslistName}.z.js",
498      'list': allJsFiles,
499      'name': allClasslistName
500    ]
501 @@ -3473,11 +3494,11 @@
502    dependsOn jalviewjsBuildAllCores
503    def inputFileName = "${jalviewDir}/${j2s_coretemplate_html}"
504    def inputFile = file(inputFileName)
505 -  def outputDir = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}"
506 +  def destinationDirectory = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}"
507  
508    def outputFiles = []
509    jalviewjsCoreClasslists.each { cl ->
510 -    def outputFile = "${outputDir}/${jalviewjsJalviewTemplateName}_${cl.name}.html"
511 +    def outputFile = "${destinationDirectory}/${jalviewjsJalviewTemplateName}_${cl.name}.html"
512      cl['outputfile'] = outputFile
513      outputFiles += outputFile
514    }
515 @@ -3496,13 +3517,13 @@
516    dependsOn jalviewjsBuildAllCores
517    dependsOn jalviewjsPublishCoreTemplates
518    def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteCoreDir}")
519 -  def outputDir = "${jalviewDir}/${jalviewjsSiteDir}"
520 +  def destinationDirectory = "${jalviewDir}/${jalviewjsSiteDir}"
521  
522    from inputFiles
523 -  into outputDir
524 +  into destinationDirectory
525    def outputFiles = []
526    rename { filename ->
527 -    outputFiles += "${outputDir}/${filename}"
528 +    outputFiles += "${destinationDirectory}/${filename}"
529      null
530    }
531    preserve {