Commit | Line | Data |
---|---|---|
fdc9170b JL |
1 | ;;; GNU Guix --- Functional package management for GNU |
2 | ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu> | |
ef6a5fcc | 3 | ;;; Copyright © 2019 Tobias Geerinck-Rice <me@tobias.gr> |
fdc9170b JL |
4 | ;;; |
5 | ;;; This file is part of GNU Guix. | |
6 | ;;; | |
7 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
8 | ;;; under the terms of the GNU General Public License as published by | |
9 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
10 | ;;; your option) any later version. | |
11 | ;;; | |
12 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
13 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | ;;; GNU General Public License for more details. | |
16 | ;;; | |
17 | ;;; You should have received a copy of the GNU General Public License | |
18 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
19 | ||
20 | (define-module (gnu packages groovy) | |
21 | #:use-module ((guix licenses) #:prefix license:) | |
22 | #:use-module (guix packages) | |
23 | #:use-module (guix download) | |
ef6a5fcc | 24 | #:use-module (guix git-download) |
fdc9170b JL |
25 | #:use-module (guix utils) |
26 | #:use-module (guix build-system ant) | |
27 | #:use-module (gnu packages) | |
28 | #:use-module (gnu packages java) | |
29 | #:use-module (gnu packages xml)) | |
30 | ||
31 | (define java-groovy-bootstrap | |
32 | (package | |
b0192c85 | 33 | (name "java-groovy-bootstrap") |
fdc9170b | 34 | (version "2.4.15") |
ef6a5fcc TGR |
35 | (source |
36 | (origin | |
37 | (method git-fetch) | |
38 | (uri (git-reference | |
39 | (url "https://github.com/apache/groovy.git") | |
40 | (commit (string-append | |
41 | "GROOVY_" | |
42 | (string-map (lambda (x) (if (eq? x #\.) #\_ x)) | |
43 | version))))) | |
44 | (file-name (git-file-name name version)) | |
45 | (sha256 | |
46 | (base32 "1q4cplimr18j93zz92kgq8b6wdv0p9svr7cdr47q8b2mbjpd0x3j")) | |
47 | (patches | |
48 | (search-patches "groovy-add-exceptionutilsgenerator.patch")))) | |
fdc9170b JL |
49 | (build-system ant-build-system) |
50 | (arguments | |
51 | `(#:jar-name "groovy.jar" | |
52 | #:source-dir "src/main:subprojects/groovy-test/src/main/java" | |
53 | #:test-dir "src/test" | |
54 | #:tests? #f | |
55 | #:jdk ,icedtea-8 | |
56 | #:main-class "groovy.ui.GroovyMain" | |
57 | #:phases | |
58 | (modify-phases %standard-phases | |
59 | (add-before 'build 'fix-java8 | |
60 | ;; Fix "Reference to plus is ambiguous" | |
61 | (lambda _ | |
62 | (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java" | |
63 | (("toList\\(left\\)") | |
64 | "(List<T>)toList(left)")) | |
65 | #t)) | |
66 | (add-before 'build 'generate-parsers | |
67 | (lambda _ | |
68 | (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java" | |
69 | (invoke "antlr" "java.g")) | |
70 | (with-directory-excursion "src/main/org/codehaus/groovy/antlr" | |
71 | (mkdir "parser") | |
72 | (with-directory-excursion "parser" | |
73 | (invoke "antlr" "../groovy.g"))) | |
74 | #t)) | |
75 | (add-before 'build 'generate-exception-utils | |
76 | (lambda _ | |
77 | (invoke "javac" "-cp" (getenv "CLASSPATH") | |
78 | "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java") | |
79 | (invoke "java" "-cp" (string-append (getenv "CLASSPATH") | |
80 | ":config/ant/src") | |
81 | "org.codehaus.groovy.ExceptionUtilsGenerator" | |
82 | "build/classes/org/codehaus/groovy/runtime/ExceptionUtils.class") | |
83 | #t))))) | |
84 | (native-inputs | |
85 | `(("java-junit" ,java-junit) | |
86 | ("java-hamcrest-core" ,java-hamcrest-core) | |
87 | ("antlr2" ,antlr2) | |
88 | ("java-jmock-1" ,java-jmock-1) | |
89 | ("java-xmlunit-legacy" ,java-xmlunit-legacy))) | |
90 | (inputs | |
91 | `(("java-commons-cli" ,java-commons-cli) | |
92 | ("java-asm" ,java-asm) | |
93 | ("java-classpathx-servletapi" ,java-classpathx-servletapi) | |
94 | ("java-xstream" ,java-xstream) | |
95 | ("java-jansi" ,java-jansi) | |
96 | ("java-jline-2" ,java-jline-2))) | |
97 | (home-page "http://groovy-lang.org/") | |
98 | (synopsis "Groovy's java bootstrap") | |
99 | (description "This package contains the java bootstrap that is used to build | |
100 | groovy submodules.") | |
101 | (license license:asl2.0))) | |
b0192c85 JL |
102 | |
103 | (define groovy-bootstrap | |
104 | (package | |
105 | (inherit java-groovy-bootstrap) | |
106 | (name "groovy-bootstrap") | |
107 | (arguments | |
108 | `(#:jar-name "groovy.jar" | |
109 | #:jdk ,icedtea-8 | |
110 | ;Requires groovy-xml and logback-classic which are circular dependencies | |
111 | #:tests? #f | |
112 | #:phases | |
113 | (modify-phases %standard-phases | |
114 | (add-before 'build 'fix-java8 | |
115 | ;; Fix "Reference to plus is ambiguous" | |
116 | (lambda _ | |
117 | (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java" | |
118 | (("toList\\(left\\)") | |
119 | "(List<T>)toList(left)")) | |
120 | #t)) | |
121 | (add-before 'build 'generate-parser | |
122 | (lambda _ | |
123 | (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java" | |
124 | (invoke "antlr" "java.g")) | |
125 | (with-directory-excursion "src/main/org/codehaus/groovy/antlr" | |
126 | (mkdir "parser") | |
127 | (with-directory-excursion "parser" | |
128 | (invoke "antlr" "../groovy.g"))) | |
129 | #t)) | |
130 | (add-before 'build 'generate-exception-utils | |
131 | (lambda _ | |
132 | (invoke "javac" "-cp" (getenv "CLASSPATH") | |
133 | "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java") | |
134 | (invoke "java" "-cp" (string-append (getenv "CLASSPATH") | |
135 | ":config/ant/src") | |
136 | "org.codehaus.groovy.ExceptionUtilsGenerator" | |
137 | "target/classes/org/codehaus/groovy/runtime/ExceptionUtils.class") | |
138 | #t)) | |
139 | (add-before 'build 'generate-dgminfo | |
140 | (lambda _ | |
141 | (mkdir-p "target/classes/org/codehaus/groovy/runtime") | |
142 | (mkdir-p "target/classes/META-INF") | |
143 | (invoke "javac" "-cp" (getenv "CLASSPATH") | |
144 | "src/main/org/codehaus/groovy/tools/DgmConverter.java") | |
145 | (invoke "java" "-cp" (string-append (getenv "CLASSPATH") | |
146 | ":src/main") | |
147 | "org.codehaus.groovy.tools.DgmConverter") | |
148 | #t)) | |
149 | (add-before 'build 'copy-resources | |
150 | (lambda _ | |
151 | (with-directory-excursion "src/main" | |
152 | (for-each (lambda (file) | |
153 | (mkdir-p (string-append "../../target/classes/" | |
154 | (dirname file))) | |
155 | (copy-file file | |
156 | (string-append "../../target/classes/" | |
157 | file))) | |
158 | (find-files "." ".*.(txt|properties|xml|html)"))) | |
159 | #t)) | |
160 | (replace 'build | |
161 | (lambda _ | |
162 | (mkdir-p "build/jar") | |
163 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
164 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
165 | "-d" "target/classes" | |
166 | "-j"; joint compilation | |
167 | (find-files "src/main" | |
168 | ".*\\.(groovy|java)$")) | |
169 | (invoke "jar" "-cf" "build/jar/groovy.jar" | |
170 | "-C" "target/classes" ".") | |
171 | #t))))) | |
172 | (inputs | |
173 | `(("java-apache-ivy" ,java-apache-ivy) | |
174 | ,@(package-inputs java-groovy-bootstrap))) | |
175 | (native-inputs | |
176 | `(("java-groovy-bootstrap" ,java-groovy-bootstrap) | |
177 | ,@(package-native-inputs java-groovy-bootstrap))) | |
178 | (synopsis "Groovy compiler") | |
179 | (description "This package contains the first version of the Groovy compiler. | |
180 | Although already usable, it doesn't contain the groovy library yet. This package | |
181 | is used to build the groovy submodules written in groovy."))) | |
a3f253a4 JL |
182 | |
183 | (define groovy-tests-bootstrap | |
184 | (package | |
185 | (inherit groovy-bootstrap) | |
186 | (name "groovy-tests-bootstrap") | |
187 | (arguments | |
188 | `(#:jar-name "groovy-tests-bootstrap.jar" | |
189 | #:jdk ,icedtea-8 | |
190 | #:tests? #f; no tests | |
191 | #:phases | |
192 | (modify-phases %standard-phases | |
193 | (replace 'build | |
194 | (lambda _ | |
195 | (mkdir-p "build/classes") | |
196 | (mkdir-p "build/jar") | |
197 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
198 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
199 | "-d" "build/classes" | |
200 | "-j"; joint compilation | |
201 | (append | |
202 | (find-files "src/test" "TestSupport.java") | |
203 | (find-files "src/test" "HeadlessTestSupport.java") | |
204 | (find-files "src/test" "XmlAssert.java"))) | |
205 | (invoke "jar" "-cf" "build/jar/groovy-tests-bootstrap.jar" | |
206 | "-C" "build/classes" ".") | |
207 | #t))))) | |
208 | (inputs | |
209 | `(("groovy-test" ,groovy-test) | |
210 | ,@(package-inputs groovy-bootstrap))) | |
211 | (native-inputs | |
212 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
213 | ,@(package-native-inputs java-groovy-bootstrap))) | |
214 | (synopsis "Groovy test classes") | |
215 | (description "This package contains three classes required for testing | |
216 | other groovy submodules."))) | |
6f077852 JL |
217 | |
218 | (define groovy-test | |
219 | (package | |
220 | (inherit groovy-bootstrap) | |
221 | (name "groovy-test") | |
222 | (arguments | |
223 | `(#:jar-name "groovy-test.jar" | |
224 | #:jdk ,icedtea-8 | |
225 | #:test-dir "subprojects/groovy-test/src/test" | |
226 | #:phases | |
227 | (modify-phases %standard-phases | |
228 | (replace 'build | |
229 | (lambda _ | |
230 | (mkdir-p "build/classes") | |
231 | (mkdir-p "build/jar") | |
232 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
233 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
234 | "-d" "build/classes" "-j"; joint compilation | |
235 | (find-files "subprojects/groovy-test/src/main" | |
236 | ".*\\.(groovy|java)$")) | |
237 | (invoke "jar" "-cf" "build/jar/groovy-test.jar" | |
238 | "-C" "build/classes" ".") | |
239 | #t)) | |
240 | (replace 'check | |
241 | (lambda _ | |
242 | (mkdir-p "build/test-classes") | |
243 | (substitute* "build.xml" | |
244 | (("depends=\"compile-tests\"") "depends=\"\"") | |
245 | (("}/java") "}/groovy")) | |
246 | (apply invoke "java" "-cp" | |
247 | (string-append (getenv "CLASSPATH") ":build/classes") | |
248 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
249 | "-d" "build/test-classes" "-j" | |
250 | (append (find-files "subprojects/groovy-test/src/test" | |
251 | ".*\\.(groovy|java)$"))) | |
252 | (invoke "ant" "check") | |
253 | #t))))) | |
254 | (native-inputs | |
255 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
256 | ,@(package-native-inputs java-groovy-bootstrap))) | |
257 | (synopsis "Groovy test submodule") | |
258 | (description "This package contains the test submodules used to test | |
259 | other groovy submodules."))) | |
e0e4bae2 JL |
260 | |
261 | (define groovy-xml | |
262 | (package | |
263 | (inherit groovy-bootstrap) | |
264 | (name "groovy-xml") | |
265 | (arguments | |
266 | `(#:jar-name "groovy-xml.jar" | |
267 | #:jdk ,icedtea-8 | |
268 | #:test-dir "src/test" | |
269 | #:phases | |
270 | (modify-phases %standard-phases | |
271 | (add-before 'configure 'chdir | |
272 | (lambda _ | |
273 | (chdir "subprojects/groovy-xml") | |
274 | #t)) | |
275 | (replace 'build | |
276 | (lambda _ | |
277 | (mkdir-p "build/classes") | |
278 | (mkdir-p "build/jar") | |
279 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
280 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
281 | "-d" "build/classes" "-j"; joint compilation | |
282 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
283 | (invoke "jar" "-cf" "build/jar/groovy-xml.jar" | |
284 | "-C" "build/classes" ".") | |
285 | #t)) | |
286 | (replace 'check | |
287 | (lambda _ | |
288 | (mkdir-p "build/test-classes") | |
289 | (substitute* "build.xml" | |
290 | (("depends=\"compile-tests\"") "depends=\"\"") | |
291 | (("}/java") "}/groovy")) | |
292 | (apply invoke "java" "-cp" | |
293 | (string-append (getenv "CLASSPATH") ":build/classes") | |
294 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
295 | "-d" "build/test-classes" "-j" | |
296 | (append (find-files "src/test" ".*\\.(groovy|java)$"))) | |
297 | (invoke "ant" "check") | |
298 | #t))))) | |
299 | (native-inputs | |
300 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
301 | ("groovy-test" ,groovy-test) | |
302 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
303 | ,@(package-native-inputs java-groovy-bootstrap))) | |
304 | (synopsis "Groovy XML") | |
305 | (description "This package contains XML-related utilities for groovy."))) | |
19ff61f4 JL |
306 | |
307 | (define groovy-templates | |
308 | (package | |
309 | (inherit groovy-bootstrap) | |
310 | (name "groovy-templates") | |
311 | (arguments | |
312 | `(#:jar-name "groovy-templates.jar" | |
313 | #:jdk ,icedtea-8 | |
314 | #:test-dir "subprojects/groovy-templates/src/test" | |
315 | #:tests? #f;Requires spock-framework which is a circular dependency | |
316 | #:phases | |
317 | (modify-phases %standard-phases | |
318 | (replace 'build | |
319 | (lambda _ | |
320 | (mkdir-p "build/classes") | |
321 | (mkdir-p "build/jar") | |
322 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
323 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
324 | "-d" "build/classes" "-j"; joint compilation | |
325 | (find-files "subprojects/groovy-templates/src/main" | |
326 | ".*\\.(groovy|java)$")) | |
327 | (invoke "jar" "-cf" "build/jar/groovy-templates.jar" | |
328 | "-C" "build/classes" ".") | |
329 | #t))))) | |
330 | (inputs | |
331 | `(("groovy-xml" ,groovy-xml) | |
332 | ,@(package-inputs groovy-bootstrap))) | |
333 | (native-inputs | |
334 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
335 | ("groovy-test" ,groovy-test) | |
336 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
337 | ,@(package-native-inputs java-groovy-bootstrap))) | |
338 | (synopsis "Groovy template engine") | |
339 | (description "This package contains a template framework which is | |
340 | well-suited to applications where the text to be generated follows the form of | |
341 | a static template."))) | |
f14a1978 JL |
342 | |
343 | (define groovy-groovydoc | |
344 | (package | |
345 | (inherit groovy-bootstrap) | |
346 | (name "groovy-groovydoc") | |
347 | (arguments | |
348 | `(#:jar-name "groovy-groovydoc.jar" | |
349 | #:jdk ,icedtea-8 | |
350 | #:test-dir "subprojects/groovy-groovydoc/src/test" | |
351 | #:tests? #f; Requires groovy-ant which is a circular dependency | |
352 | #:phases | |
353 | (modify-phases %standard-phases | |
354 | (add-before 'build 'copy-resources | |
355 | (lambda _ | |
356 | (copy-recursively "subprojects/groovy-groovydoc/src/main/resources" | |
357 | "build/classes") | |
358 | #t)) | |
359 | (replace 'build | |
360 | (lambda _ | |
361 | (mkdir-p "build/classes") | |
362 | (mkdir-p "build/jar") | |
363 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
364 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
365 | "-d" "build/classes" | |
366 | "-j"; joint compilation | |
367 | (find-files "subprojects/groovy-groovydoc/src/main" | |
368 | ".*\\.(groovy|java)$")) | |
369 | (invoke "jar" "-cf" "build/jar/groovy-groovydoc.jar" | |
370 | "-C" "build/classes" ".") | |
371 | #t))))) | |
372 | (inputs | |
373 | `(("groovy-templates" ,groovy-templates) | |
374 | ,@(package-inputs groovy-bootstrap))) | |
375 | (native-inputs | |
376 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
377 | ("groovy-test" ,groovy-test) | |
378 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
379 | ,@(package-native-inputs java-groovy-bootstrap))) | |
380 | (synopsis "Groovy documentation generation") | |
381 | (description "This package contains the groovy documentation generator, | |
382 | similar to javadoc."))) | |
b869c5ce JL |
383 | |
384 | (define groovy-ant | |
385 | (package | |
386 | (inherit groovy-bootstrap) | |
387 | (name "groovy-ant") | |
388 | (arguments | |
389 | `(#:jar-name "groovy-ant.jar" | |
390 | #:jdk ,icedtea-8 | |
391 | #:test-dir "src/test" | |
392 | ;; FIXME: Excluding all tests because they fail | |
393 | #:test-exclude (list | |
394 | "**/GroovyTest.java" | |
395 | "**/GroovycTest.java") | |
396 | #:phases | |
397 | (modify-phases %standard-phases | |
398 | (add-before 'configure 'chdir | |
399 | (lambda _ | |
400 | (chdir "subprojects/groovy-ant") | |
401 | #t)) | |
402 | (add-before 'build 'copy-resources | |
403 | (lambda _ | |
404 | (copy-recursively "src/main/resources" "build/classes") | |
405 | #t)) | |
406 | (replace 'build | |
407 | (lambda _ | |
408 | (mkdir-p "build/classes") | |
409 | (mkdir-p "build/jar") | |
410 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
411 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
412 | "-d" "build/classes" "-j"; joint compilation | |
413 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
414 | (invoke "jar" "-cf" "build/jar/groovy-ant.jar" | |
415 | "-C" "build/classes" ".") | |
416 | #t)) | |
417 | (replace 'check | |
418 | (lambda _ | |
419 | (mkdir-p "build/test-classes") | |
420 | (substitute* "build.xml" | |
421 | (("depends=\"compile-tests\"") "depends=\"\"") | |
422 | (("}/java") "}/groovy")) | |
423 | (apply invoke "java" "-cp" | |
424 | (string-append (getenv "CLASSPATH") ":build/classes") | |
425 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
426 | "-d" "build/test-classes" "-j" | |
427 | (find-files "src/test" ".*\\.(groovy|java)$")) | |
428 | (invoke "ant" "check") | |
429 | #t))))) | |
430 | (inputs | |
431 | `(("groovy-groovydoc" ,groovy-groovydoc) | |
432 | ,@(package-inputs groovy-bootstrap))) | |
433 | (native-inputs | |
434 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
435 | ("groovy-xml" ,groovy-xml) | |
436 | ("groovy-test" ,groovy-test) | |
437 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
438 | ,@(package-native-inputs java-groovy-bootstrap))) | |
439 | (synopsis "Groovy ant tasks") | |
440 | (description "This package contains groovy-related ant tasks definitions."))) | |
5b46d3f6 JL |
441 | |
442 | (define groovy-bsf | |
443 | (package | |
444 | (inherit groovy-bootstrap) | |
445 | (name "groovy-bsf") | |
446 | (arguments | |
447 | `(#:jar-name "groovy-bsf.jar" | |
448 | #:jdk ,icedtea-8 | |
449 | #:test-dir "src/test" | |
450 | #:test-exclude (list | |
451 | ;; exception from Groovy: org.codehaus.groovy.runtime.InvokerInvocationException: | |
452 | ;; groovy.lang.MissingMethodException: No signature of method: | |
453 | ;; java.util.ArrayList.each() is applicable for argument types: | |
454 | ;; (groovy.script.MapFromList$_doit_closure1) values: | |
455 | ;; [groovy.script.MapFromList$_doit_closure1@17e554d5] | |
456 | "**/BSFTest.java") | |
457 | #:phases | |
458 | (modify-phases %standard-phases | |
459 | (add-before 'configure 'chdir | |
460 | (lambda _ | |
461 | (chdir "subprojects/groovy-bsf") | |
462 | #t)) | |
463 | (replace 'build | |
464 | (lambda _ | |
465 | (mkdir-p "build/classes") | |
466 | (mkdir-p "build/jar") | |
467 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
468 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
469 | "-d" "build/classes" "-j"; joint compilation | |
470 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
471 | (invoke "jar" "-cf" "build/jar/groovy-bsf.jar" | |
472 | "-C" "build/classes" ".") | |
473 | #t)) | |
474 | (replace 'check | |
475 | (lambda _ | |
476 | (mkdir-p "build/test-classes") | |
477 | (substitute* "build.xml" | |
478 | (("depends=\"compile-tests\"") "depends=\"\"")) | |
479 | (apply invoke "java" "-cp" | |
480 | (string-append (getenv "CLASSPATH") ":build/classes") | |
481 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
482 | "-d" "build/test-classes" "-j" | |
483 | (find-files "src/test" ".*\\.(groovy|java)$")) | |
484 | (invoke "ant" "check") | |
485 | #t))))) | |
486 | (inputs | |
487 | `(("java-commons-bsf" ,java-commons-bsf) | |
488 | ,@(package-inputs groovy-bootstrap))) | |
489 | (native-inputs | |
490 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
491 | ("groovy-test" ,groovy-test) | |
492 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
493 | ("java-commons-logging-minimal" ,java-commons-logging-minimal) | |
494 | ,@(package-native-inputs java-groovy-bootstrap))) | |
495 | (synopsis "Groovy BSF engine") | |
496 | (description "This package defines the BSF engine for using Groovy inside | |
497 | any @dfn{Bean Scripting Framework} (BSF) application."))) | |
b221e8e2 JL |
498 | |
499 | (define groovy-swing | |
500 | (package | |
501 | (inherit groovy-bootstrap) | |
502 | (name "groovy-swing") | |
503 | (arguments | |
504 | `(#:jar-name "groovy-swing.jar" | |
505 | #:jdk ,icedtea-8 | |
506 | ;; FIXME: tests are not run | |
507 | #:test-dir "src/test" | |
508 | #:phases | |
509 | (modify-phases %standard-phases | |
510 | (add-before 'configure 'chdir | |
511 | (lambda _ | |
512 | (chdir "subprojects/groovy-swing") | |
513 | #t)) | |
514 | (replace 'build | |
515 | (lambda _ | |
516 | (mkdir-p "build/classes") | |
517 | (mkdir-p "build/jar") | |
518 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
519 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
520 | "-d" "build/classes" "-j"; joint compilation | |
521 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
522 | (invoke "jar" "-cf" "build/jar/groovy-swing.jar" | |
523 | "-C" "build/classes" ".") | |
524 | #t)) | |
525 | (replace 'check | |
526 | (lambda _ | |
527 | (mkdir-p "build/test-classes") | |
528 | (substitute* "src/test/groovy/groovy/util/GroovySwingTestCase.groovy" | |
529 | (("HeadlessTestSupport.headless") "isHeadless()")) | |
530 | (substitute* "build.xml" | |
531 | (("depends=\"compile-tests\"") "depends=\"\"") | |
532 | (("}/java") "}/groovy")) | |
533 | (apply invoke "java" "-cp" | |
534 | (string-append (getenv "CLASSPATH") ":build/classes") | |
535 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
536 | "-d" "build/test-classes" "-j" | |
537 | (find-files "src/test" ".*\\.(groovy|java)$")) | |
538 | (invoke "ant" "check") | |
539 | #t))))) | |
540 | (native-inputs | |
541 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
542 | ("groovy-test" ,groovy-test) | |
543 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
544 | ("java-commons-logging-minimal" ,java-commons-logging-minimal) | |
545 | ,@(package-native-inputs java-groovy-bootstrap))) | |
546 | (synopsis "Groovy graphical library") | |
547 | (description "This package contains the groovy bindings to Java Swing, a | |
548 | library used to build graphical interfaces."))) | |
136987cf JL |
549 | |
550 | (define groovy-console | |
551 | (package | |
552 | (inherit groovy-bootstrap) | |
553 | (name "groovy-console") | |
554 | (arguments | |
555 | `(#:jar-name "groovy-console.jar" | |
556 | #:jdk ,icedtea-8 | |
557 | ;; FIXME: tests are not run | |
558 | #:test-dir "src/test" | |
559 | #:phases | |
560 | (modify-phases %standard-phases | |
561 | (add-before 'configure 'chdir | |
562 | (lambda _ | |
563 | (chdir "subprojects/groovy-console") | |
564 | #t)) | |
565 | (add-before 'build 'copy-resources | |
566 | (lambda _ | |
567 | (copy-recursively "src/main/resources" "build/classes") | |
568 | #t)) | |
569 | (replace 'build | |
570 | (lambda _ | |
571 | (mkdir-p "build/classes") | |
572 | (mkdir-p "build/jar") | |
573 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
574 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
575 | "-d" "build/classes" "-j"; joint compilation | |
576 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
577 | (invoke "jar" "-cf" "build/jar/groovy-console.jar" | |
578 | "-C" "build/classes" ".") | |
579 | #t)) | |
580 | (replace 'check | |
581 | (lambda _ | |
582 | (mkdir-p "build/test-classes") | |
583 | (substitute* "build.xml" | |
584 | (("depends=\"compile-tests\"") "depends=\"\"") | |
585 | (("}/java") "}/groovy")) | |
586 | (substitute* | |
587 | "../groovy-swing/src/test/groovy/groovy/util/GroovySwingTestCase.groovy" | |
588 | (("HeadlessTestSupport.headless") "isHeadless()")) | |
589 | (apply invoke "java" "-cp" | |
590 | (string-append (getenv "CLASSPATH") ":build/classes") | |
591 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
592 | "-d" "build/test-classes" "-j" | |
593 | (append | |
594 | (find-files "../groovy-swing/src/test" ".*\\.(groovy|java)$") | |
595 | (find-files "src/test" ".*\\.(groovy|java)$"))) | |
596 | (invoke "ant" "check") | |
597 | #t))))) | |
598 | (inputs | |
599 | `(("groovy-swing" ,groovy-swing) | |
600 | ("groovy-templates" ,groovy-templates) | |
601 | ,@(package-inputs groovy-bootstrap))) | |
602 | (native-inputs | |
603 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
604 | ("groovy-test" ,groovy-test) | |
605 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
606 | ("java-commons-logging-minimal" ,java-commons-logging-minimal) | |
607 | ,@(package-native-inputs java-groovy-bootstrap))) | |
608 | (synopsis "Groovy graphical interface") | |
609 | (description "This package contains a graphical interface to run groovy."))) | |
a6494dcf JL |
610 | |
611 | (define groovy-docgenerator | |
612 | (package | |
613 | (inherit groovy-bootstrap) | |
614 | (name "groovy-docgenerator") | |
615 | (arguments | |
616 | `(#:jar-name "groovy-docgenerator.jar" | |
617 | #:jdk ,icedtea-8 | |
618 | #:tests? #f; No tests | |
619 | #:phases | |
620 | (modify-phases %standard-phases | |
621 | (add-before 'configure 'chdir | |
622 | (lambda _ | |
623 | (chdir "subprojects/groovy-docgenerator") | |
624 | #t)) | |
625 | (add-before 'build 'copy-resources | |
626 | (lambda _ | |
627 | (copy-recursively "src/main/resources" "build/classes") | |
628 | #t)) | |
629 | (replace 'build | |
630 | (lambda _ | |
631 | (mkdir-p "build/classes") | |
632 | (mkdir-p "build/jar") | |
633 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
634 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
635 | "-d" "build/classes" "-j"; joint compilation | |
636 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
637 | (invoke "jar" "-cf" "build/jar/groovy-docgenerator.jar" | |
638 | "-C" "build/classes" ".") | |
639 | #t))))) | |
640 | (inputs | |
641 | `(("groovy-templates" ,groovy-templates) | |
642 | ("groovy-swing" ,groovy-swing) | |
643 | ("java-qdox-1.12" ,java-qdox-1.12) | |
644 | ,@(package-inputs groovy-bootstrap))) | |
645 | (native-inputs | |
646 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
647 | ("groovy-test" ,groovy-test) | |
648 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
649 | ,@(package-native-inputs java-groovy-bootstrap))) | |
650 | (synopsis "Groovy documentation generation") | |
651 | (description "This package contains a command line tool to generate | |
652 | documentation for groovy applications."))) | |
dabce250 JL |
653 | |
654 | (define groovy-groovysh | |
655 | (package | |
656 | (inherit groovy-bootstrap) | |
657 | (name "groovy-groovysh") | |
658 | (arguments | |
659 | `(#:jar-name "groovy-groovysh.jar" | |
660 | #:test-dir "src/test" | |
661 | #:jdk ,icedtea-8 | |
662 | #:phases | |
663 | (modify-phases %standard-phases | |
664 | (add-before 'configure 'chdir | |
665 | (lambda _ | |
666 | (chdir "subprojects/groovy-groovysh") | |
667 | #t)) | |
668 | (add-before 'build 'copy-resources | |
669 | (lambda _ | |
670 | (copy-recursively "src/main/resources" "build/classes") | |
671 | #t)) | |
672 | (replace 'build | |
673 | (lambda _ | |
674 | (mkdir-p "build/classes") | |
675 | (mkdir-p "build/jar") | |
676 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
677 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
678 | "-d" "build/classes" "-j"; joint compilation | |
679 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
680 | (invoke "jar" "-cf" "build/jar/groovy-groovysh.jar" | |
681 | "-C" "build/classes" ".") | |
682 | #t)) | |
683 | (replace 'check | |
684 | (lambda _ | |
685 | (mkdir-p "build/test-classes") | |
686 | (substitute* "build.xml" | |
687 | (("depends=\"compile-tests\"") "depends=\"\"") | |
688 | (("}/java") "}/groovy")) | |
689 | (apply invoke "java" "-cp" | |
690 | (string-append (getenv "CLASSPATH") ":build/classes") | |
691 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
692 | "-d" "build/test-classes" "-j" | |
693 | (append (find-files "src/test" ".*\\.(groovy|java)$"))) | |
694 | (invoke "ant" "check") | |
695 | #t))))) | |
696 | (inputs | |
697 | `(("groovy-xml" ,groovy-xml) | |
698 | ("groovy-console" ,groovy-console) | |
699 | ,@(package-inputs groovy-bootstrap))) | |
700 | (native-inputs | |
701 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
702 | ("groovy-test" ,groovy-test) | |
703 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
704 | ,@(package-native-inputs java-groovy-bootstrap))) | |
705 | (synopsis "Groovy REPL") | |
706 | (description "This package contains the Groovy REPL."))) | |
0280865c JL |
707 | |
708 | (define groovy-jmx | |
709 | (package | |
710 | (inherit groovy-bootstrap) | |
711 | (name "groovy-jmx") | |
712 | (arguments | |
713 | `(#:jar-name "groovy-jmx.jar" | |
714 | #:test-dir "src/test" | |
715 | #:jdk ,icedtea-8 | |
716 | #:phases | |
717 | (modify-phases %standard-phases | |
718 | (add-before 'configure 'chdir | |
719 | (lambda _ | |
720 | (chdir "subprojects/groovy-jmx") | |
721 | #t)) | |
722 | (replace 'build | |
723 | (lambda _ | |
724 | (mkdir-p "build/classes") | |
725 | (mkdir-p "build/jar") | |
726 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
727 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
728 | "-d" "build/classes" "-j"; joint compilation | |
729 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
730 | (invoke "jar" "-cf" "build/jar/groovy-jmx.jar" | |
731 | "-C" "build/classes" ".") | |
732 | #t)) | |
733 | (replace 'check | |
734 | (lambda _ | |
735 | (mkdir-p "build/test-classes") | |
736 | (substitute* "build.xml" | |
737 | (("depends=\"compile-tests\"") "depends=\"\"") | |
738 | (("}/java") "}/groovy")) | |
739 | (apply invoke "java" "-cp" | |
740 | (string-append (getenv "CLASSPATH") ":build/classes") | |
741 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
742 | "-d" "build/test-classes" "-j" | |
743 | (append (find-files "src/test" ".*\\.(groovy|java)$"))) | |
744 | (invoke "ant" "check") | |
745 | #t))))) | |
746 | (native-inputs | |
747 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
748 | ("groovy-test" ,groovy-test) | |
749 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
750 | ,@(package-native-inputs java-groovy-bootstrap))) | |
751 | (synopsis "Groovy JMX extension") | |
752 | (description "This package contains the JMX extension of Groovy, for | |
753 | management and monitoring of JVM-based solutions."))) | |
dae9335c JL |
754 | |
755 | (define groovy-json | |
756 | (package | |
757 | (inherit groovy-bootstrap) | |
758 | (name "groovy-json") | |
759 | (arguments | |
760 | `(#:jar-name "groovy-json.jar" | |
761 | #:test-dir "src/test" | |
762 | #:jdk ,icedtea-8 | |
763 | #:phases | |
764 | (modify-phases %standard-phases | |
765 | (add-before 'configure 'chdir | |
766 | (lambda _ | |
767 | (chdir "subprojects/groovy-json") | |
768 | #t)) | |
769 | (replace 'build | |
770 | (lambda _ | |
771 | (mkdir-p "build/classes") | |
772 | (mkdir-p "build/jar") | |
773 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
774 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
775 | "-d" "build/classes" "-j"; joint compilation | |
776 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
777 | (invoke "jar" "-cf" "build/jar/groovy-json.jar" | |
778 | "-C" "build/classes" ".") | |
779 | #t)) | |
780 | (replace 'check | |
781 | (lambda _ | |
782 | (mkdir-p "build/test-classes") | |
783 | (substitute* "build.xml" | |
784 | (("depends=\"compile-tests\"") "depends=\"\"") | |
785 | (("}/java") "}/groovy")) | |
786 | (apply invoke "java" "-cp" | |
787 | (string-append (getenv "CLASSPATH") ":build/classes") | |
788 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
789 | "-d" "build/test-classes" "-j" | |
790 | (append (find-files "src/test" ".*\\.(groovy|java)$"))) | |
791 | (invoke "ant" "check") | |
792 | #t))))) | |
793 | (native-inputs | |
794 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
795 | ("groovy-test" ,groovy-test) | |
796 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
797 | ,@(package-native-inputs java-groovy-bootstrap))) | |
798 | (synopsis "Groovy JSON") | |
799 | (description "This package contains JSON-related utilities for groovy."))) | |
3537fb61 JL |
800 | |
801 | (define groovy-jsr223 | |
802 | (package | |
803 | (inherit groovy-bootstrap) | |
804 | (name "groovy-jsr223") | |
805 | (arguments | |
806 | `(#:jar-name "groovy-jsr223.jar" | |
807 | #:test-dir "src/test" | |
808 | #:jdk ,icedtea-8 | |
809 | #:phases | |
810 | (modify-phases %standard-phases | |
811 | (add-before 'configure 'chdir | |
812 | (lambda _ | |
813 | (chdir "subprojects/groovy-jsr223") | |
814 | #t)) | |
815 | (add-before 'build 'copy-resources | |
816 | (lambda _ | |
817 | (copy-recursively "src/main/resources" "build/classes") | |
818 | #t)) | |
819 | (replace 'build | |
820 | (lambda _ | |
821 | (mkdir-p "build/classes") | |
822 | (mkdir-p "build/jar") | |
823 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
824 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
825 | "-d" "build/classes" "-j"; joint compilation | |
826 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
827 | (invoke "jar" "-cf" "build/jar/groovy-jsr223.jar" | |
828 | "-C" "build/classes" ".") | |
829 | #t)) | |
830 | (replace 'check | |
831 | (lambda _ | |
832 | (mkdir-p "build/test-classes") | |
833 | (substitute* "build.xml" | |
834 | (("depends=\"compile-tests\"") "depends=\"\"") | |
835 | (("}/java") "}/groovy")) | |
836 | (apply invoke "java" "-cp" | |
837 | (string-append (getenv "CLASSPATH") ":build/classes") | |
838 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
839 | "-d" "build/test-classes" "-j" | |
840 | (append (find-files "src/test" ".*\\.(groovy|java)$"))) | |
841 | (invoke "ant" "check") | |
842 | #t))))) | |
843 | (native-inputs | |
844 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
845 | ("groovy-test" ,groovy-test) | |
846 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
847 | ,@(package-native-inputs java-groovy-bootstrap))) | |
848 | (synopsis "Groovy's own JSR223 implementation") | |
849 | (description "This package contains Groovy's own JSR223 implementation. This | |
850 | module is used for interaction between Groovy and Java code."))) | |
4ab3b0c5 JL |
851 | |
852 | (define groovy-nio | |
853 | (package | |
854 | (inherit groovy-bootstrap) | |
855 | (name "groovy-nio") | |
856 | (arguments | |
857 | `(#:jar-name "groovy-nio.jar" | |
858 | #:test-dir "src/test" | |
859 | #:jdk ,icedtea-8 | |
860 | #:tests? #f; Requires spock-framework | |
861 | #:phases | |
862 | (modify-phases %standard-phases | |
863 | (add-before 'configure 'chdir | |
864 | (lambda _ | |
865 | (chdir "subprojects/groovy-nio") | |
866 | #t)) | |
867 | (replace 'build | |
868 | (lambda _ | |
869 | (mkdir-p "build/classes") | |
870 | (mkdir-p "build/jar") | |
871 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
872 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
873 | "-d" "build/classes" "-j"; joint compilation | |
874 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
875 | (invoke "jar" "-cf" "build/jar/groovy-nio.jar" | |
876 | "-C" "build/classes" ".") | |
877 | #t))))) | |
878 | (native-inputs | |
879 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
880 | ("groovy-test" ,groovy-test) | |
881 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
882 | ,@(package-native-inputs java-groovy-bootstrap))) | |
883 | (synopsis "Groovy input-output library") | |
884 | (description "This package implements an input/output library that extends | |
885 | the functionality of the common library of Java."))) | |
107ebf7b JL |
886 | |
887 | (define groovy-servlet | |
888 | (package | |
889 | (inherit groovy-bootstrap) | |
890 | (name "groovy-servlet") | |
891 | (arguments | |
892 | `(#:jar-name "groovy-servlet.jar" | |
893 | #:test-dir "src/test" | |
894 | #:jdk ,icedtea-8 | |
895 | #:phases | |
896 | (modify-phases %standard-phases | |
897 | (add-before 'configure 'chdir | |
898 | (lambda _ | |
899 | (chdir "subprojects/groovy-servlet") | |
900 | #t)) | |
901 | (replace 'build | |
902 | (lambda _ | |
903 | (mkdir-p "build/classes") | |
904 | (mkdir-p "build/jar") | |
905 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
906 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
907 | "-d" "build/classes" | |
908 | "-j"; joint compilation | |
909 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
910 | (invoke "jar" "-cf" "build/jar/groovy-servlet.jar" | |
911 | "-C" "build/classes" ".") | |
912 | #t)) | |
913 | (replace 'check | |
914 | (lambda _ | |
915 | (mkdir-p "build/test-classes") | |
916 | (substitute* "build.xml" | |
917 | (("depends=\"compile-tests\"") "depends=\"\"") | |
918 | (("}/java") "}/groovy")) | |
919 | (apply invoke "java" "-cp" | |
920 | (string-append (getenv "CLASSPATH") ":build/classes") | |
921 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
922 | "-d" "build/test-classes" | |
923 | "-j" | |
924 | (append (find-files "src/test" ".*\\.(groovy|java)$"))) | |
925 | (invoke "ant" "check") | |
926 | #t))))) | |
927 | (inputs | |
928 | `(("groovy-templates" ,groovy-templates) | |
929 | ("groovy-xml" ,groovy-xml) | |
930 | ,@(package-inputs groovy-bootstrap))) | |
931 | (native-inputs | |
932 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
933 | ("groovy-json" ,groovy-json) | |
934 | ("groovy-test" ,groovy-test) | |
935 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
936 | ,@(package-native-inputs java-groovy-bootstrap))) | |
937 | (synopsis "Groovy's servlet implementation") | |
938 | (description "This package contains a library to create groovlets, Groovy's | |
939 | version of Java servlets."))) | |
2af51fd0 JL |
940 | |
941 | (define groovy-sql | |
942 | (package | |
943 | (inherit groovy-bootstrap) | |
944 | (name "groovy-sql") | |
945 | (arguments | |
946 | `(#:jar-name "groovy-sql.jar" | |
947 | #:test-dir "src/test" | |
948 | #:tests? #f;TODO: Requires hsqldb | |
949 | #:jdk ,icedtea-8 | |
950 | #:phases | |
951 | (modify-phases %standard-phases | |
952 | (add-before 'configure 'chdir | |
953 | (lambda _ | |
954 | (chdir "subprojects/groovy-sql") | |
955 | #t)) | |
956 | (replace 'build | |
957 | (lambda _ | |
958 | (mkdir-p "build/classes") | |
959 | (mkdir-p "build/jar") | |
960 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
961 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
962 | "-d" "build/classes" "-j"; joint compilation | |
963 | (find-files "src/main" | |
964 | ".*\\.(groovy|java)$")) | |
965 | (invoke "jar" "-cf" "build/jar/groovy-sql.jar" | |
966 | "-C" "build/classes" ".") | |
967 | #t))))) | |
968 | (native-inputs | |
969 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
970 | ("groovy-test" ,groovy-test) | |
971 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
972 | ,@(package-native-inputs java-groovy-bootstrap))) | |
973 | (synopsis "Groovy SQL library") | |
974 | (description "This package contains a facade over Java's normal JDBC APIs | |
975 | providing greatly simplified resource management and result set handling."))) | |
dc51a0a8 JL |
976 | |
977 | (define groovy-testng | |
978 | (package | |
979 | (inherit groovy-bootstrap) | |
980 | (name "groovy-testng") | |
981 | (arguments | |
982 | `(#:jar-name "groovy-testng.jar" | |
983 | #:tests? #f; No tests | |
984 | #:jdk ,icedtea-8 | |
985 | #:phases | |
986 | (modify-phases %standard-phases | |
987 | (add-before 'configure 'chdir | |
988 | (lambda _ | |
989 | (chdir "subprojects/groovy-testng") | |
990 | #t)) | |
991 | (add-before 'build 'copy-resources | |
992 | (lambda _ | |
993 | (copy-recursively "src/main/resources" "build/classes") | |
994 | #t)) | |
995 | (replace 'build | |
996 | (lambda _ | |
997 | (mkdir-p "build/classes") | |
998 | (mkdir-p "build/jar") | |
999 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
1000 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
1001 | "-d" "build/classes" | |
1002 | "-j"; joint compilation | |
1003 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
1004 | (invoke "jar" "-cf" "build/jar/groovy-testng.jar" | |
1005 | "-C" "build/classes" ".") | |
1006 | #t))))) | |
1007 | (native-inputs | |
1008 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
1009 | ("groovy-test" ,groovy-test) | |
1010 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
1011 | ,@(package-native-inputs java-groovy-bootstrap))) | |
1012 | (synopsis "Groovy testing framework") | |
1013 | (description "This package contains integration code for running TestNG | |
1014 | tests in Groovy."))) | |
88da2d2f JL |
1015 | |
1016 | (define groovy-macro | |
1017 | (package | |
1018 | (inherit groovy-bootstrap) | |
1019 | (name "groovy-macro") | |
1020 | (arguments | |
1021 | `(#:jar-name "groovy-macro.jar" | |
1022 | #:test-dir "src/test" | |
1023 | #:jdk ,icedtea-8 | |
1024 | #:phases | |
1025 | (modify-phases %standard-phases | |
1026 | (add-before 'configure 'chdir | |
1027 | (lambda _ | |
1028 | (chdir "subprojects/groovy-macro") | |
1029 | #t)) | |
1030 | (replace 'build | |
1031 | (lambda _ | |
1032 | (mkdir-p "build/classes") | |
1033 | (mkdir-p "build/jar") | |
1034 | (apply invoke "java" "-cp" (getenv "CLASSPATH") | |
1035 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
1036 | "-d" "build/classes" "-j"; joint compilation | |
1037 | (find-files "src/main" ".*\\.(groovy|java)$")) | |
1038 | (invoke "jar" "-cf" "build/jar/groovy-macro.jar" | |
1039 | "-C" "build/classes" ".") | |
1040 | #t)) | |
1041 | (replace 'check | |
1042 | (lambda _ | |
1043 | (mkdir-p "build/test-classes") | |
1044 | (substitute* "build.xml" | |
1045 | (("depends=\"compile-tests\"") "depends=\"\"") | |
1046 | (("}/java") "}/groovy")) | |
1047 | (apply invoke "java" "-cp" | |
1048 | (string-append (getenv "CLASSPATH") ":build/classes") | |
1049 | "org.codehaus.groovy.tools.FileSystemCompiler" | |
1050 | "-d" "build/test-classes" "-j" | |
1051 | (append (find-files "src/test" ".*\\.(groovy|java)$"))) | |
1052 | (invoke "ant" "check") | |
1053 | #t))))) | |
1054 | (inputs | |
1055 | `(("groovy-templates" ,groovy-templates) | |
1056 | ("groovy-xml" ,groovy-xml) | |
1057 | ,@(package-inputs groovy-bootstrap))) | |
1058 | (native-inputs | |
1059 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
1060 | ("groovy-json" ,groovy-json) | |
1061 | ("groovy-test" ,groovy-test) | |
1062 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) | |
1063 | ,@(package-native-inputs java-groovy-bootstrap))) | |
1064 | (synopsis "Groovy macro processor") | |
1065 | (description "This package contains a high-level library to create macro | |
1066 | and modify groovy's @dfn{Abstract Syntax Tree} (AST)."))) | |
22103f16 JL |
1067 | |
1068 | (define-public groovy | |
1069 | (package | |
1070 | (inherit groovy-bootstrap) | |
1071 | (name "groovy") | |
1072 | (arguments | |
1073 | `(#:tests? #f; No tests | |
1074 | #:jdk ,icedtea-8 | |
1075 | #:phases | |
1076 | (modify-phases %standard-phases | |
1077 | (delete 'configure) | |
1078 | (delete 'build) | |
1079 | (replace 'install | |
1080 | (lambda* (#:key outputs inputs #:allow-other-keys) | |
1081 | (let* ((out (assoc-ref outputs "out")) | |
1082 | (out-bin (string-append out "/bin")) | |
1083 | (out-lib (string-append out "/lib"))) | |
1084 | (with-directory-excursion "src/bin" | |
1085 | (substitute* "startGroovy" | |
1086 | (("\"\\\\\"") "\"") | |
1087 | (("\\\\\"\"") "\"") | |
1088 | (("\\\\\\$") "$") | |
1089 | (("@GROOVYJAR@") "groovy.jar") | |
1090 | (("MAX_FD=\"maximum\"") | |
1091 | (string-append | |
1092 | "MAX_FD=\"maximum\"\nJAVAHOME=" | |
1093 | (assoc-ref inputs "jdk")))) | |
1094 | ;; Groovy uses class loading. It's not enough to put the class | |
1095 | ;; in the loader's classpath, as it causes breakages: | |
1096 | ;; the compiler would give this error: | |
1097 | ;; "Prohibited package name: java.lang" | |
1098 | ;; So we symlink dependencies in this package's output. The | |
1099 | ;; starter class (in groovy-bootstrap) is where the class loader | |
1100 | ;; will look for dependencies, so we put it there too. | |
1101 | (mkdir-p out-lib) | |
1102 | (for-each | |
1103 | (lambda (input) | |
1104 | (for-each | |
1105 | (lambda (jar) | |
1106 | (symlink jar (string-append out-lib "/" (basename jar)))) | |
1107 | (find-files (assoc-ref inputs input) ".*.jar"))) | |
1108 | '("groovy-bootstrap" "groovy-ant" "groovy-bsf" | |
1109 | "groovy-console" "groovy-docgenerator" | |
1110 | "groovy-groovydoc" "groovy-groovysh" | |
1111 | "groovy-jmx" "groovy-json" "groovy-jsr223" | |
1112 | "groovy-nio" "groovy-servlet" "groovy-sql" | |
1113 | "groovy-swing" "groovy-templates" "groovy-testng" | |
697a9d0d | 1114 | "groovy-xml" "java-commons-cli" "java-asm" |
22103f16 JL |
1115 | "java-classpathx-servletapi" "java-xstream" |
1116 | "java-jansi" "java-jline-2")) | |
1117 | ;; antlr.jar is present twice in antlr2. Symlink doesn't like | |
1118 | ;; it, so we symlink it here. | |
1119 | (symlink (string-append (assoc-ref inputs "antlr2") "/lib/antlr.jar") | |
1120 | (string-append out-lib "/antlr.jar")) | |
1121 | (for-each | |
1122 | (lambda (tool) | |
1123 | (install-file tool out-bin) | |
1124 | (chmod (string-append out-bin "/" tool) #o755)) | |
1125 | '("grape" "groovy" "groovyc" "groovyConsole" "groovydoc" | |
1126 | "groovysh" "java2groovy" "startGroovy"))) | |
1127 | (install-file "src/conf/groovy-starter.conf" | |
1128 | (string-append out "/conf")) | |
1129 | #t)))))) | |
1130 | (inputs | |
1131 | `(("groovy-bootstrap" ,groovy-bootstrap) | |
1132 | ("groovy-ant" ,groovy-ant) | |
1133 | ("groovy-bsf" ,groovy-bsf) | |
1134 | ("groovy-console" ,groovy-console) | |
1135 | ("groovy-docgenerator" ,groovy-docgenerator) | |
1136 | ("groovy-groovydoc" ,groovy-groovydoc) | |
1137 | ("groovy-groovysh" ,groovy-groovysh) | |
1138 | ("groovy-jmx" ,groovy-jmx) | |
1139 | ("groovy-json" ,groovy-json) | |
1140 | ("groovy-jsr223" ,groovy-jsr223) | |
1141 | ("groovy-nio" ,groovy-nio) | |
1142 | ("groovy-servlet" ,groovy-servlet) | |
1143 | ("groovy-sql" ,groovy-sql) | |
1144 | ("groovy-swing" ,groovy-swing) | |
1145 | ("groovy-templates" ,groovy-templates) | |
1146 | ("groovy-testng" ,groovy-testng) | |
697a9d0d | 1147 | ("groovy-xml" ,groovy-xml) |
22103f16 JL |
1148 | ("java-commons-cli" ,java-commons-cli) |
1149 | ("java-asm" ,java-asm) | |
1150 | ("java-classpathx-servletapi" ,java-classpathx-servletapi) | |
1151 | ("java-xstream" ,java-xstream) | |
1152 | ("java-jansi" ,java-jansi) | |
1153 | ("java-jline-2" ,java-jline-2) | |
1154 | ("antlr2" ,antlr2))) | |
1155 | (synopsis "Programming language for the JVM") | |
1156 | (description "Apache Groovy is a powerful, optionally typed and dynamic | |
1157 | language, with static-typing and static compilation capabilities, for the Java | |
1158 | platform. It integrates smoothly with any Java program, and immediately | |
1159 | delivers to your application powerful features, including scripting | |
1160 | capabilities, Domain-Specific Language authoring, runtime and compile-time | |
1161 | meta-programming and functional programming."))) |