Commit | Line | Data |
---|---|---|
fdc9170b JL |
1 | ;;; GNU Guix --- Functional package management for GNU |
2 | ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu> | |
3 | ;;; | |
4 | ;;; This file is part of GNU Guix. | |
5 | ;;; | |
6 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
7 | ;;; under the terms of the GNU General Public License as published by | |
8 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
9 | ;;; your option) any later version. | |
10 | ;;; | |
11 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
12 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | ;;; GNU General Public License for more details. | |
15 | ;;; | |
16 | ;;; You should have received a copy of the GNU General Public License | |
17 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
18 | ||
19 | (define-module (gnu packages groovy) | |
20 | #:use-module ((guix licenses) #:prefix license:) | |
21 | #:use-module (guix packages) | |
22 | #:use-module (guix download) | |
23 | #:use-module (guix utils) | |
24 | #:use-module (guix build-system ant) | |
25 | #:use-module (gnu packages) | |
26 | #:use-module (gnu packages java) | |
27 | #:use-module (gnu packages xml)) | |
28 | ||
29 | (define java-groovy-bootstrap | |
30 | (package | |
b0192c85 | 31 | (name "java-groovy-bootstrap") |
fdc9170b JL |
32 | (version "2.4.15") |
33 | (source (origin | |
34 | (method url-fetch) | |
35 | (uri (string-append "https://github.com/apache/groovy/archive/GROOVY_" | |
36 | (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version) | |
37 | ".tar.gz")) | |
38 | (file-name (string-append name "-" version ".tar.gz")) | |
39 | (sha256 | |
40 | (base32 | |
41 | "19f3yd2z6jmz1xhwi5kkg1wmgbqkfs7qvd3rzb43xr3nffz8cisv")) | |
42 | (patches | |
43 | (search-patches | |
44 | "groovy-add-exceptionutilsgenerator.patch")))) | |
45 | (build-system ant-build-system) | |
46 | (arguments | |
47 | `(#:jar-name "groovy.jar" | |
48 | #:source-dir "src/main:subprojects/groovy-test/src/main/java" | |
49 | #:test-dir "src/test" | |
50 | #:tests? #f | |
51 | #:jdk ,icedtea-8 | |
52 | #:main-class "groovy.ui.GroovyMain" | |
53 | #:phases | |
54 | (modify-phases %standard-phases | |
55 | (add-before 'build 'fix-java8 | |
56 | ;; Fix "Reference to plus is ambiguous" | |
57 | (lambda _ | |
58 | (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java" | |
59 | (("toList\\(left\\)") | |
60 | "(List<T>)toList(left)")) | |
61 | #t)) | |
62 | (add-before 'build 'generate-parsers | |
63 | (lambda _ | |
64 | (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java" | |
65 | (invoke "antlr" "java.g")) | |
66 | (with-directory-excursion "src/main/org/codehaus/groovy/antlr" | |
67 | (mkdir "parser") | |
68 | (with-directory-excursion "parser" | |
69 | (invoke "antlr" "../groovy.g"))) | |
70 | #t)) | |
71 | (add-before 'build 'generate-exception-utils | |
72 | (lambda _ | |
73 | (invoke "javac" "-cp" (getenv "CLASSPATH") | |
74 | "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java") | |
75 | (invoke "java" "-cp" (string-append (getenv "CLASSPATH") | |
76 | ":config/ant/src") | |
77 | "org.codehaus.groovy.ExceptionUtilsGenerator" | |
78 | "build/classes/org/codehaus/groovy/runtime/ExceptionUtils.class") | |
79 | #t))))) | |
80 | (native-inputs | |
81 | `(("java-junit" ,java-junit) | |
82 | ("java-hamcrest-core" ,java-hamcrest-core) | |
83 | ("antlr2" ,antlr2) | |
84 | ("java-jmock-1" ,java-jmock-1) | |
85 | ("java-xmlunit-legacy" ,java-xmlunit-legacy))) | |
86 | (inputs | |
87 | `(("java-commons-cli" ,java-commons-cli) | |
88 | ("java-asm" ,java-asm) | |
89 | ("java-classpathx-servletapi" ,java-classpathx-servletapi) | |
90 | ("java-xstream" ,java-xstream) | |
91 | ("java-jansi" ,java-jansi) | |
92 | ("java-jline-2" ,java-jline-2))) | |
93 | (home-page "http://groovy-lang.org/") | |
94 | (synopsis "Groovy's java bootstrap") | |
95 | (description "This package contains the java bootstrap that is used to build | |
96 | groovy submodules.") | |
97 | (license license:asl2.0))) | |
b0192c85 JL |
98 | |
99 | (define groovy-bootstrap | |
100 | (package | |
101 | (inherit java-groovy-bootstrap) | |
102 | (name "groovy-bootstrap") | |
103 | (arguments | |
104 | `(#:jar-name "groovy.jar" | |
105 | #:jdk ,icedtea-8 | |
106 | ;Requires groovy-xml and logback-classic which are circular dependencies | |
107 | #:tests? #f | |
108 | #:phases | |
109 | (modify-phases %standard-phases | |
110 | (add-before 'build 'fix-java8 | |
111 | ;; Fix "Reference to plus is ambiguous" | |
112 | (lambda _ | |
113 | (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java" | |
114 | (("toList\\(left\\)") | |
115 | "(List<T>)toList(left)")) | |
116 | #t)) | |
117 | (add-before 'build 'generate-parser | |
118 | (lambda _ | |
119 | (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java" | |
120 | (invoke "antlr" "java.g")) | |
121 | (with-directory-excursion "src/main/org/codehaus/groovy/antlr" | |
122 | (mkdir "parser") | |
123 | (with-directory-excursion "parser" | |
124 | (invoke "antlr" "../groovy.g"))) | |
125 | #t)) | |
126 | (add-before 'build 'generate-exception-utils | |
127 | (lambda _ | |
128 | (invoke "javac" "-cp" (getenv "CLASSPATH") | |
129 | "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java") | |
130 | (invoke "java" "-cp" (string-append (getenv "CLASSPATH") | |
131 | ":config/ant/src") | |
132 | "org.codehaus.groovy.ExceptionUtilsGenerator" | |
133 | "target/classes/org/codehaus/groovy/runtime/ExceptionUtils.class") | |
134 | #t)) | |
135 | (add-before 'build 'generate-dgminfo | |
136 | (lambda _ | |
137 | (mkdir-p "target/classes/org/codehaus/groovy/runtime") | |
138 | (mkdir-p "target/classes/META-INF") | |
139 | (invoke "javac" "-cp" (getenv "CLASSPATH") | |
140 | "src/main/org/codehaus/groovy/tools/DgmConverter.java") | |
141 | (invoke "java" "-cp" (string-append (getenv "CLASSPATH") | |
142 | ":src/main") | |
143 | "org.codehaus.groovy.tools.DgmConverter") | |
144 | #t)) | |
145 | (add-before 'build 'copy-resources | |
146 | (lambda _ | |
147 | (with-directory-excursion "src/main" | |
148 | (for-each (lambda (file) | |
149 | (mkdir-p (string-append "../../target/classes/" | |
150 | (dirname file))) | |
151 | (copy-file file | |
152 | (string-append "../../target/classes/" | |
153 | file))) | |
154 | (find-files "." ".*.(txt|properties|xml|html)"))) | |
155 | #t)) | |
156 | (replace 'build | |
157 | (lambda _ | |
158 | (mkdir-p "build/jar") | |
159 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
160 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
161 | "-d" "target/classes" | |
162 | "-j"; joint compilation | |
163 | (find-files "src/main" | |
164 | ".*\\.(groovy|java)$")) | |
165 | (invoke "jar" "-cf" "build/jar/groovy.jar" | |
166 | "-C" "target/classes" ".") | |
167 | #t))))) | |
168 | (inputs | |
169 | `(("java-apache-ivy" ,java-apache-ivy) | |
170 | ,@(package-inputs java-groovy-bootstrap))) | |
171 | (native-inputs | |
172 | `(("java-groovy-bootstrap" ,java-groovy-bootstrap) | |
173 | ,@(package-native-inputs java-groovy-bootstrap))) | |
174 | (synopsis "Groovy compiler") | |
175 | (description "This package contains the first version of the Groovy compiler. | |
176 | Although already usable, it doesn't contain the groovy library yet. This package | |
177 | is used to build the groovy submodules written in groovy."))) | |
a3f253a4 JL |
178 | |
179 | (define groovy-tests-bootstrap | |
180 | (package | |
181 | (inherit groovy-bootstrap) | |
182 | (name "groovy-tests-bootstrap") | |
183 | (arguments | |
184 | `(#:jar-name "groovy-tests-bootstrap.jar" | |
185 | #:jdk ,icedtea-8 | |
186 | #:tests? #f; no tests | |
187 | #:phases | |
188 | (modify-phases %standard-phases | |
189 | (replace 'build | |
190 | (lambda _ | |
191 | (mkdir-p "build/classes") | |
192 | (mkdir-p "build/jar") | |
193 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
194 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
195 | "-d" "build/classes" | |
196 | "-j"; joint compilation | |
197 | (append | |
198 | (find-files "src/test" "TestSupport.java") | |
199 | (find-files "src/test" "HeadlessTestSupport.java") | |
200 | (find-files "src/test" "XmlAssert.java"))) | |
201 | (invoke "jar" "-cf" "build/jar/groovy-tests-bootstrap.jar" | |
202 | "-C" "build/classes" ".") | |
203 | #t))))) | |
204 | (inputs | |
205 | `(("groovy-test" ,groovy-test) | |
206 | ,@(package-inputs groovy-bootstrap))) | |
207 | (native-inputs | |
208 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
209 | ,@(package-native-inputs java-groovy-bootstrap))) | |
210 | (synopsis "Groovy test classes") | |
211 | (description "This package contains three classes required for testing | |
212 | other groovy submodules."))) | |
6f077852 JL |
213 | |
214 | (define groovy-test | |
215 | (package | |
216 | (inherit groovy-bootstrap) | |
217 | (name "groovy-test") | |
218 | (arguments | |
219 | `(#:jar-name "groovy-test.jar" | |
220 | #:jdk ,icedtea-8 | |
221 | #:test-dir "subprojects/groovy-test/src/test" | |
222 | #:phases | |
223 | (modify-phases %standard-phases | |
224 | (replace 'build | |
225 | (lambda _ | |
226 | (mkdir-p "build/classes") | |
227 | (mkdir-p "build/jar") | |
228 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
229 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
230 | "-d" "build/classes" "-j"; joint compilation | |
231 | (find-files "subprojects/groovy-test/src/main" | |
232 | ".*\\.(groovy|java)$")) | |
233 | (invoke "jar" "-cf" "build/jar/groovy-test.jar" | |
234 | "-C" "build/classes" ".") | |
235 | #t)) | |
236 | (replace 'check | |
237 | (lambda _ | |
238 | (mkdir-p "build/test-classes") | |
239 | (substitute* "build.xml" | |
240 | (("depends=\"compile-tests\"") "depends=\"\"") | |
241 | (("}/java") "}/groovy")) | |
242 | (apply invoke "java" "-cp" | |
243 | (string-append (getenv "CLASSPATH") ":build/classes") | |
244 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
245 | "-d" "build/test-classes" "-j" | |
246 | (append (find-files "subprojects/groovy-test/src/test" | |
247 | ".*\\.(groovy|java)$"))) | |
248 | (invoke "ant" "check") | |
249 | #t))))) | |
250 | (native-inputs | |
251 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
252 | ,@(package-native-inputs java-groovy-bootstrap))) | |
253 | (synopsis "Groovy test submodule") | |
254 | (description "This package contains the test submodules used to test | |
255 | other groovy submodules."))) | |
e0e4bae2 JL |
256 | |
257 | (define groovy-xml | |
258 | (package | |
259 | (inherit groovy-bootstrap) | |
260 | (name "groovy-xml") | |
261 | (arguments | |
262 | `(#:jar-name "groovy-xml.jar" | |
263 | #:jdk ,icedtea-8 | |
264 | #:test-dir "src/test" | |
265 | #:phases | |
266 | (modify-phases %standard-phases | |
267 | (add-before 'configure 'chdir | |
268 | (lambda _ | |
269 | (chdir "subprojects/groovy-xml") | |
270 | #t)) | |
271 | (replace 'build | |
272 | (lambda _ | |
273 | (mkdir-p "build/classes") | |
274 | (mkdir-p "build/jar") | |
275 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
276 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
277 | "-d" "build/classes" "-j"; joint compilation | |
278 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
279 | (invoke "jar" "-cf" "build/jar/groovy-xml.jar" | |
280 | "-C" "build/classes" ".") | |
281 | #t)) | |
282 | (replace 'check | |
283 | (lambda _ | |
284 | (mkdir-p "build/test-classes") | |
285 | (substitute* "build.xml" | |
286 | (("depends=\"compile-tests\"") "depends=\"\"") | |
287 | (("}/java") "}/groovy")) | |
288 | (apply invoke "java" "-cp" | |
289 | (string-append (getenv "CLASSPATH") ":build/classes") | |
290 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
291 | "-d" "build/test-classes" "-j" | |
292 | (append (find-files "src/test" ".*\\.(groovy|java)$"))) | |
293 | (invoke "ant" "check") | |
294 | #t))))) | |
295 | (native-inputs | |
296 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
297 | ("groovy-test" ,groovy-test) | |
298 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
299 | ,@(package-native-inputs java-groovy-bootstrap))) | |
300 | (synopsis "Groovy XML") | |
301 | (description "This package contains XML-related utilities for groovy."))) | |
19ff61f4 JL |
302 | |
303 | (define groovy-templates | |
304 | (package | |
305 | (inherit groovy-bootstrap) | |
306 | (name "groovy-templates") | |
307 | (arguments | |
308 | `(#:jar-name "groovy-templates.jar" | |
309 | #:jdk ,icedtea-8 | |
310 | #:test-dir "subprojects/groovy-templates/src/test" | |
311 | #:tests? #f;Requires spock-framework which is a circular dependency | |
312 | #:phases | |
313 | (modify-phases %standard-phases | |
314 | (replace 'build | |
315 | (lambda _ | |
316 | (mkdir-p "build/classes") | |
317 | (mkdir-p "build/jar") | |
318 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
319 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
320 | "-d" "build/classes" "-j"; joint compilation | |
321 | (find-files "subprojects/groovy-templates/src/main" | |
322 | ".*\\.(groovy|java)$")) | |
323 | (invoke "jar" "-cf" "build/jar/groovy-templates.jar" | |
324 | "-C" "build/classes" ".") | |
325 | #t))))) | |
326 | (inputs | |
327 | `(("groovy-xml" ,groovy-xml) | |
328 | ,@(package-inputs groovy-bootstrap))) | |
329 | (native-inputs | |
330 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
331 | ("groovy-test" ,groovy-test) | |
332 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
333 | ,@(package-native-inputs java-groovy-bootstrap))) | |
334 | (synopsis "Groovy template engine") | |
335 | (description "This package contains a template framework which is | |
336 | well-suited to applications where the text to be generated follows the form of | |
337 | a static template."))) | |
f14a1978 JL |
338 | |
339 | (define groovy-groovydoc | |
340 | (package | |
341 | (inherit groovy-bootstrap) | |
342 | (name "groovy-groovydoc") | |
343 | (arguments | |
344 | `(#:jar-name "groovy-groovydoc.jar" | |
345 | #:jdk ,icedtea-8 | |
346 | #:test-dir "subprojects/groovy-groovydoc/src/test" | |
347 | #:tests? #f; Requires groovy-ant which is a circular dependency | |
348 | #:phases | |
349 | (modify-phases %standard-phases | |
350 | (add-before 'build 'copy-resources | |
351 | (lambda _ | |
352 | (copy-recursively "subprojects/groovy-groovydoc/src/main/resources" | |
353 | "build/classes") | |
354 | #t)) | |
355 | (replace 'build | |
356 | (lambda _ | |
357 | (mkdir-p "build/classes") | |
358 | (mkdir-p "build/jar") | |
359 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
360 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
361 | "-d" "build/classes" | |
362 | "-j"; joint compilation | |
363 | (find-files "subprojects/groovy-groovydoc/src/main" | |
364 | ".*\\.(groovy|java)$")) | |
365 | (invoke "jar" "-cf" "build/jar/groovy-groovydoc.jar" | |
366 | "-C" "build/classes" ".") | |
367 | #t))))) | |
368 | (inputs | |
369 | `(("groovy-templates" ,groovy-templates) | |
370 | ,@(package-inputs groovy-bootstrap))) | |
371 | (native-inputs | |
372 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
373 | ("groovy-test" ,groovy-test) | |
374 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
375 | ,@(package-native-inputs java-groovy-bootstrap))) | |
376 | (synopsis "Groovy documentation generation") | |
377 | (description "This package contains the groovy documentation generator, | |
378 | similar to javadoc."))) | |
b869c5ce JL |
379 | |
380 | (define groovy-ant | |
381 | (package | |
382 | (inherit groovy-bootstrap) | |
383 | (name "groovy-ant") | |
384 | (arguments | |
385 | `(#:jar-name "groovy-ant.jar" | |
386 | #:jdk ,icedtea-8 | |
387 | #:test-dir "src/test" | |
388 | ;; FIXME: Excluding all tests because they fail | |
389 | #:test-exclude (list | |
390 | "**/GroovyTest.java" | |
391 | "**/GroovycTest.java") | |
392 | #:phases | |
393 | (modify-phases %standard-phases | |
394 | (add-before 'configure 'chdir | |
395 | (lambda _ | |
396 | (chdir "subprojects/groovy-ant") | |
397 | #t)) | |
398 | (add-before 'build 'copy-resources | |
399 | (lambda _ | |
400 | (copy-recursively "src/main/resources" "build/classes") | |
401 | #t)) | |
402 | (replace 'build | |
403 | (lambda _ | |
404 | (mkdir-p "build/classes") | |
405 | (mkdir-p "build/jar") | |
406 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
407 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
408 | "-d" "build/classes" "-j"; joint compilation | |
409 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
410 | (invoke "jar" "-cf" "build/jar/groovy-ant.jar" | |
411 | "-C" "build/classes" ".") | |
412 | #t)) | |
413 | (replace 'check | |
414 | (lambda _ | |
415 | (mkdir-p "build/test-classes") | |
416 | (substitute* "build.xml" | |
417 | (("depends=\"compile-tests\"") "depends=\"\"") | |
418 | (("}/java") "}/groovy")) | |
419 | (apply invoke "java" "-cp" | |
420 | (string-append (getenv "CLASSPATH") ":build/classes") | |
421 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
422 | "-d" "build/test-classes" "-j" | |
423 | (find-files "src/test" ".*\\.(groovy|java)$")) | |
424 | (invoke "ant" "check") | |
425 | #t))))) | |
426 | (inputs | |
427 | `(("groovy-groovydoc" ,groovy-groovydoc) | |
428 | ,@(package-inputs groovy-bootstrap))) | |
429 | (native-inputs | |
430 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
431 | ("groovy-xml" ,groovy-xml) | |
432 | ("groovy-test" ,groovy-test) | |
433 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
434 | ,@(package-native-inputs java-groovy-bootstrap))) | |
435 | (synopsis "Groovy ant tasks") | |
436 | (description "This package contains groovy-related ant tasks definitions."))) | |
5b46d3f6 JL |
437 | |
438 | (define groovy-bsf | |
439 | (package | |
440 | (inherit groovy-bootstrap) | |
441 | (name "groovy-bsf") | |
442 | (arguments | |
443 | `(#:jar-name "groovy-bsf.jar" | |
444 | #:jdk ,icedtea-8 | |
445 | #:test-dir "src/test" | |
446 | #:test-exclude (list | |
447 | ;; exception from Groovy: org.codehaus.groovy.runtime.InvokerInvocationException: | |
448 | ;; groovy.lang.MissingMethodException: No signature of method: | |
449 | ;; java.util.ArrayList.each() is applicable for argument types: | |
450 | ;; (groovy.script.MapFromList$_doit_closure1) values: | |
451 | ;; [groovy.script.MapFromList$_doit_closure1@17e554d5] | |
452 | "**/BSFTest.java") | |
453 | #:phases | |
454 | (modify-phases %standard-phases | |
455 | (add-before 'configure 'chdir | |
456 | (lambda _ | |
457 | (chdir "subprojects/groovy-bsf") | |
458 | #t)) | |
459 | (replace 'build | |
460 | (lambda _ | |
461 | (mkdir-p "build/classes") | |
462 | (mkdir-p "build/jar") | |
463 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
464 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
465 | "-d" "build/classes" "-j"; joint compilation | |
466 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
467 | (invoke "jar" "-cf" "build/jar/groovy-bsf.jar" | |
468 | "-C" "build/classes" ".") | |
469 | #t)) | |
470 | (replace 'check | |
471 | (lambda _ | |
472 | (mkdir-p "build/test-classes") | |
473 | (substitute* "build.xml" | |
474 | (("depends=\"compile-tests\"") "depends=\"\"")) | |
475 | (apply invoke "java" "-cp" | |
476 | (string-append (getenv "CLASSPATH") ":build/classes") | |
477 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
478 | "-d" "build/test-classes" "-j" | |
479 | (find-files "src/test" ".*\\.(groovy|java)$")) | |
480 | (invoke "ant" "check") | |
481 | #t))))) | |
482 | (inputs | |
483 | `(("java-commons-bsf" ,java-commons-bsf) | |
484 | ,@(package-inputs groovy-bootstrap))) | |
485 | (native-inputs | |
486 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
487 | ("groovy-test" ,groovy-test) | |
488 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
489 | ("java-commons-logging-minimal" ,java-commons-logging-minimal) | |
490 | ,@(package-native-inputs java-groovy-bootstrap))) | |
491 | (synopsis "Groovy BSF engine") | |
492 | (description "This package defines the BSF engine for using Groovy inside | |
493 | any @dfn{Bean Scripting Framework} (BSF) application."))) | |
b221e8e2 JL |
494 | |
495 | (define groovy-swing | |
496 | (package | |
497 | (inherit groovy-bootstrap) | |
498 | (name "groovy-swing") | |
499 | (arguments | |
500 | `(#:jar-name "groovy-swing.jar" | |
501 | #:jdk ,icedtea-8 | |
502 | ;; FIXME: tests are not run | |
503 | #:test-dir "src/test" | |
504 | #:phases | |
505 | (modify-phases %standard-phases | |
506 | (add-before 'configure 'chdir | |
507 | (lambda _ | |
508 | (chdir "subprojects/groovy-swing") | |
509 | #t)) | |
510 | (replace 'build | |
511 | (lambda _ | |
512 | (mkdir-p "build/classes") | |
513 | (mkdir-p "build/jar") | |
514 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
515 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
516 | "-d" "build/classes" "-j"; joint compilation | |
517 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
518 | (invoke "jar" "-cf" "build/jar/groovy-swing.jar" | |
519 | "-C" "build/classes" ".") | |
520 | #t)) | |
521 | (replace 'check | |
522 | (lambda _ | |
523 | (mkdir-p "build/test-classes") | |
524 | (substitute* "src/test/groovy/groovy/util/GroovySwingTestCase.groovy" | |
525 | (("HeadlessTestSupport.headless") "isHeadless()")) | |
526 | (substitute* "build.xml" | |
527 | (("depends=\"compile-tests\"") "depends=\"\"") | |
528 | (("}/java") "}/groovy")) | |
529 | (apply invoke "java" "-cp" | |
530 | (string-append (getenv "CLASSPATH") ":build/classes") | |
531 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
532 | "-d" "build/test-classes" "-j" | |
533 | (find-files "src/test" ".*\\.(groovy|java)$")) | |
534 | (invoke "ant" "check") | |
535 | #t))))) | |
536 | (native-inputs | |
537 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
538 | ("groovy-test" ,groovy-test) | |
539 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
540 | ("java-commons-logging-minimal" ,java-commons-logging-minimal) | |
541 | ,@(package-native-inputs java-groovy-bootstrap))) | |
542 | (synopsis "Groovy graphical library") | |
543 | (description "This package contains the groovy bindings to Java Swing, a | |
544 | library used to build graphical interfaces."))) | |
136987cf JL |
545 | |
546 | (define groovy-console | |
547 | (package | |
548 | (inherit groovy-bootstrap) | |
549 | (name "groovy-console") | |
550 | (arguments | |
551 | `(#:jar-name "groovy-console.jar" | |
552 | #:jdk ,icedtea-8 | |
553 | ;; FIXME: tests are not run | |
554 | #:test-dir "src/test" | |
555 | #:phases | |
556 | (modify-phases %standard-phases | |
557 | (add-before 'configure 'chdir | |
558 | (lambda _ | |
559 | (chdir "subprojects/groovy-console") | |
560 | #t)) | |
561 | (add-before 'build 'copy-resources | |
562 | (lambda _ | |
563 | (copy-recursively "src/main/resources" "build/classes") | |
564 | #t)) | |
565 | (replace 'build | |
566 | (lambda _ | |
567 | (mkdir-p "build/classes") | |
568 | (mkdir-p "build/jar") | |
569 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
570 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
571 | "-d" "build/classes" "-j"; joint compilation | |
572 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
573 | (invoke "jar" "-cf" "build/jar/groovy-console.jar" | |
574 | "-C" "build/classes" ".") | |
575 | #t)) | |
576 | (replace 'check | |
577 | (lambda _ | |
578 | (mkdir-p "build/test-classes") | |
579 | (substitute* "build.xml" | |
580 | (("depends=\"compile-tests\"") "depends=\"\"") | |
581 | (("}/java") "}/groovy")) | |
582 | (substitute* | |
583 | "../groovy-swing/src/test/groovy/groovy/util/GroovySwingTestCase.groovy" | |
584 | (("HeadlessTestSupport.headless") "isHeadless()")) | |
585 | (apply invoke "java" "-cp" | |
586 | (string-append (getenv "CLASSPATH") ":build/classes") | |
587 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
588 | "-d" "build/test-classes" "-j" | |
589 | (append | |
590 | (find-files "../groovy-swing/src/test" ".*\\.(groovy|java)$") | |
591 | (find-files "src/test" ".*\\.(groovy|java)$"))) | |
592 | (invoke "ant" "check") | |
593 | #t))))) | |
594 | (inputs | |
595 | `(("groovy-swing" ,groovy-swing) | |
596 | ("groovy-templates" ,groovy-templates) | |
597 | ,@(package-inputs groovy-bootstrap))) | |
598 | (native-inputs | |
599 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
600 | ("groovy-test" ,groovy-test) | |
601 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
602 | ("java-commons-logging-minimal" ,java-commons-logging-minimal) | |
603 | ,@(package-native-inputs java-groovy-bootstrap))) | |
604 | (synopsis "Groovy graphical interface") | |
605 | (description "This package contains a graphical interface to run groovy."))) | |
a6494dcf JL |
606 | |
607 | (define groovy-docgenerator | |
608 | (package | |
609 | (inherit groovy-bootstrap) | |
610 | (name "groovy-docgenerator") | |
611 | (arguments | |
612 | `(#:jar-name "groovy-docgenerator.jar" | |
613 | #:jdk ,icedtea-8 | |
614 | #:tests? #f; No tests | |
615 | #:phases | |
616 | (modify-phases %standard-phases | |
617 | (add-before 'configure 'chdir | |
618 | (lambda _ | |
619 | (chdir "subprojects/groovy-docgenerator") | |
620 | #t)) | |
621 | (add-before 'build 'copy-resources | |
622 | (lambda _ | |
623 | (copy-recursively "src/main/resources" "build/classes") | |
624 | #t)) | |
625 | (replace 'build | |
626 | (lambda _ | |
627 | (mkdir-p "build/classes") | |
628 | (mkdir-p "build/jar") | |
629 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
630 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
631 | "-d" "build/classes" "-j"; joint compilation | |
632 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
633 | (invoke "jar" "-cf" "build/jar/groovy-docgenerator.jar" | |
634 | "-C" "build/classes" ".") | |
635 | #t))))) | |
636 | (inputs | |
637 | `(("groovy-templates" ,groovy-templates) | |
638 | ("groovy-swing" ,groovy-swing) | |
639 | ("java-qdox-1.12" ,java-qdox-1.12) | |
640 | ,@(package-inputs groovy-bootstrap))) | |
641 | (native-inputs | |
642 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
643 | ("groovy-test" ,groovy-test) | |
644 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
645 | ,@(package-native-inputs java-groovy-bootstrap))) | |
646 | (synopsis "Groovy documentation generation") | |
647 | (description "This package contains a command line tool to generate | |
648 | documentation for groovy applications."))) | |
dabce250 JL |
649 | |
650 | (define groovy-groovysh | |
651 | (package | |
652 | (inherit groovy-bootstrap) | |
653 | (name "groovy-groovysh") | |
654 | (arguments | |
655 | `(#:jar-name "groovy-groovysh.jar" | |
656 | #:test-dir "src/test" | |
657 | #:jdk ,icedtea-8 | |
658 | #:phases | |
659 | (modify-phases %standard-phases | |
660 | (add-before 'configure 'chdir | |
661 | (lambda _ | |
662 | (chdir "subprojects/groovy-groovysh") | |
663 | #t)) | |
664 | (add-before 'build 'copy-resources | |
665 | (lambda _ | |
666 | (copy-recursively "src/main/resources" "build/classes") | |
667 | #t)) | |
668 | (replace 'build | |
669 | (lambda _ | |
670 | (mkdir-p "build/classes") | |
671 | (mkdir-p "build/jar") | |
672 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
673 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
674 | "-d" "build/classes" "-j"; joint compilation | |
675 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
676 | (invoke "jar" "-cf" "build/jar/groovy-groovysh.jar" | |
677 | "-C" "build/classes" ".") | |
678 | #t)) | |
679 | (replace 'check | |
680 | (lambda _ | |
681 | (mkdir-p "build/test-classes") | |
682 | (substitute* "build.xml" | |
683 | (("depends=\"compile-tests\"") "depends=\"\"") | |
684 | (("}/java") "}/groovy")) | |
685 | (apply invoke "java" "-cp" | |
686 | (string-append (getenv "CLASSPATH") ":build/classes") | |
687 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
688 | "-d" "build/test-classes" "-j" | |
689 | (append (find-files "src/test" ".*\\.(groovy|java)$"))) | |
690 | (invoke "ant" "check") | |
691 | #t))))) | |
692 | (inputs | |
693 | `(("groovy-xml" ,groovy-xml) | |
694 | ("groovy-console" ,groovy-console) | |
695 | ,@(package-inputs groovy-bootstrap))) | |
696 | (native-inputs | |
697 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
698 | ("groovy-test" ,groovy-test) | |
699 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
700 | ,@(package-native-inputs java-groovy-bootstrap))) | |
701 | (synopsis "Groovy REPL") | |
702 | (description "This package contains the Groovy REPL."))) | |
0280865c JL |
703 | |
704 | (define groovy-jmx | |
705 | (package | |
706 | (inherit groovy-bootstrap) | |
707 | (name "groovy-jmx") | |
708 | (arguments | |
709 | `(#:jar-name "groovy-jmx.jar" | |
710 | #:test-dir "src/test" | |
711 | #:jdk ,icedtea-8 | |
712 | #:phases | |
713 | (modify-phases %standard-phases | |
714 | (add-before 'configure 'chdir | |
715 | (lambda _ | |
716 | (chdir "subprojects/groovy-jmx") | |
717 | #t)) | |
718 | (replace 'build | |
719 | (lambda _ | |
720 | (mkdir-p "build/classes") | |
721 | (mkdir-p "build/jar") | |
722 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
723 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
724 | "-d" "build/classes" "-j"; joint compilation | |
725 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
726 | (invoke "jar" "-cf" "build/jar/groovy-jmx.jar" | |
727 | "-C" "build/classes" ".") | |
728 | #t)) | |
729 | (replace 'check | |
730 | (lambda _ | |
731 | (mkdir-p "build/test-classes") | |
732 | (substitute* "build.xml" | |
733 | (("depends=\"compile-tests\"") "depends=\"\"") | |
734 | (("}/java") "}/groovy")) | |
735 | (apply invoke "java" "-cp" | |
736 | (string-append (getenv "CLASSPATH") ":build/classes") | |
737 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
738 | "-d" "build/test-classes" "-j" | |
739 | (append (find-files "src/test" ".*\\.(groovy|java)$"))) | |
740 | (invoke "ant" "check") | |
741 | #t))))) | |
742 | (native-inputs | |
743 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
744 | ("groovy-test" ,groovy-test) | |
745 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
746 | ,@(package-native-inputs java-groovy-bootstrap))) | |
747 | (synopsis "Groovy JMX extension") | |
748 | (description "This package contains the JMX extension of Groovy, for | |
749 | management and monitoring of JVM-based solutions."))) | |
dae9335c JL |
750 | |
751 | (define groovy-json | |
752 | (package | |
753 | (inherit groovy-bootstrap) | |
754 | (name "groovy-json") | |
755 | (arguments | |
756 | `(#:jar-name "groovy-json.jar" | |
757 | #:test-dir "src/test" | |
758 | #:jdk ,icedtea-8 | |
759 | #:phases | |
760 | (modify-phases %standard-phases | |
761 | (add-before 'configure 'chdir | |
762 | (lambda _ | |
763 | (chdir "subprojects/groovy-json") | |
764 | #t)) | |
765 | (replace 'build | |
766 | (lambda _ | |
767 | (mkdir-p "build/classes") | |
768 | (mkdir-p "build/jar") | |
769 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
770 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
771 | "-d" "build/classes" "-j"; joint compilation | |
772 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
773 | (invoke "jar" "-cf" "build/jar/groovy-json.jar" | |
774 | "-C" "build/classes" ".") | |
775 | #t)) | |
776 | (replace 'check | |
777 | (lambda _ | |
778 | (mkdir-p "build/test-classes") | |
779 | (substitute* "build.xml" | |
780 | (("depends=\"compile-tests\"") "depends=\"\"") | |
781 | (("}/java") "}/groovy")) | |
782 | (apply invoke "java" "-cp" | |
783 | (string-append (getenv "CLASSPATH") ":build/classes") | |
784 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
785 | "-d" "build/test-classes" "-j" | |
786 | (append (find-files "src/test" ".*\\.(groovy|java)$"))) | |
787 | (invoke "ant" "check") | |
788 | #t))))) | |
789 | (native-inputs | |
790 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
791 | ("groovy-test" ,groovy-test) | |
792 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
793 | ,@(package-native-inputs java-groovy-bootstrap))) | |
794 | (synopsis "Groovy JSON") | |
795 | (description "This package contains JSON-related utilities for groovy."))) | |
3537fb61 JL |
796 | |
797 | (define groovy-jsr223 | |
798 | (package | |
799 | (inherit groovy-bootstrap) | |
800 | (name "groovy-jsr223") | |
801 | (arguments | |
802 | `(#:jar-name "groovy-jsr223.jar" | |
803 | #:test-dir "src/test" | |
804 | #:jdk ,icedtea-8 | |
805 | #:phases | |
806 | (modify-phases %standard-phases | |
807 | (add-before 'configure 'chdir | |
808 | (lambda _ | |
809 | (chdir "subprojects/groovy-jsr223") | |
810 | #t)) | |
811 | (add-before 'build 'copy-resources | |
812 | (lambda _ | |
813 | (copy-recursively "src/main/resources" "build/classes") | |
814 | #t)) | |
815 | (replace 'build | |
816 | (lambda _ | |
817 | (mkdir-p "build/classes") | |
818 | (mkdir-p "build/jar") | |
819 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
820 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
821 | "-d" "build/classes" "-j"; joint compilation | |
822 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
823 | (invoke "jar" "-cf" "build/jar/groovy-jsr223.jar" | |
824 | "-C" "build/classes" ".") | |
825 | #t)) | |
826 | (replace 'check | |
827 | (lambda _ | |
828 | (mkdir-p "build/test-classes") | |
829 | (substitute* "build.xml" | |
830 | (("depends=\"compile-tests\"") "depends=\"\"") | |
831 | (("}/java") "}/groovy")) | |
832 | (apply invoke "java" "-cp" | |
833 | (string-append (getenv "CLASSPATH") ":build/classes") | |
834 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
835 | "-d" "build/test-classes" "-j" | |
836 | (append (find-files "src/test" ".*\\.(groovy|java)$"))) | |
837 | (invoke "ant" "check") | |
838 | #t))))) | |
839 | (native-inputs | |
840 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
841 | ("groovy-test" ,groovy-test) | |
842 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
843 | ,@(package-native-inputs java-groovy-bootstrap))) | |
844 | (synopsis "Groovy's own JSR223 implementation") | |
845 | (description "This package contains Groovy's own JSR223 implementation. This | |
846 | module is used for interaction between Groovy and Java code."))) |