diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm index 27277af34b..6dc19ff2db 100644 --- a/guix/build/ant-build-system.scm +++ b/guix/build/ant-build-system.scm @@ -86,6 +86,17 @@ (define (generate-classpath inputs) (find-files dir "\\.*jar$"))) inputs)) ":")) +(define* (unpack #:key source #:allow-other-keys) + "Unpack the jar archive SOURCE. When SOURCE is not a jar archive fall back +to the default GNU unpack strategy." + (if (string-suffix? ".jar" source) + (begin + (mkdir "src") + (with-directory-excursion "src" + (zero? (system* "jar" "-xf" source)))) + ;; Use GNU unpack strategy for things that aren't jar archives. + ((assq-ref gnu:%standard-phases 'unpack) #:source source))) + (define* (configure #:key inputs outputs (jar-name #f) #:allow-other-keys) (when jar-name @@ -151,6 +162,7 @@ (define* (install #:key (make-flags '()) #:allow-other-keys) (define %standard-phases (modify-phases gnu:%standard-phases + (replace 'unpack unpack) (replace 'configure configure) (replace 'build build) (replace 'check check)