summaryrefslogtreecommitdiff
path: root/guix/build/clojure-utils.scm
diff options
context:
space:
mode:
authorReily Siegel <mail@reilysiegel.com>2022-01-18 13:17:24 -0500
committerLudovic Courtès <ludo@gnu.org>2022-01-24 10:38:14 +0100
commit0f2df54f8397560e6e8473e2982c66af01d9cd0a (patch)
tree217b9c71b962095c96b33222834d0266682b07c8 /guix/build/clojure-utils.scm
parent09b4d74bd352d40b45e081eaa094b086a42dad3d (diff)
downloadguix-patches-0f2df54f8397560e6e8473e2982c66af01d9cd0a.tar
guix-patches-0f2df54f8397560e6e8473e2982c66af01d9cd0a.tar.gz
build-system/clojure: Support compiling Java.
* guix/build/clojure-build-system.scm (compile-java): New variable. (build): Copy classes compiled from Java and optionally Java sources to the final jar. (%standard-phases): Add compile-java phase before build. * guix/build/clojure-utils.scm (%java-source-dirs): New variable. (%java-compile-dir): New variable. * guix/build-system/clojure.scm (clojure-build): Include %java-source-dirs and %java-compile-dir. (builder): Include %java-source-dirs and %java-compile-dir. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'guix/build/clojure-utils.scm')
-rw-r--r--guix/build/clojure-utils.scm10
1 files changed, 10 insertions, 0 deletions
diff --git a/guix/build/clojure-utils.scm b/guix/build/clojure-utils.scm
index 8817cab52a..c5322141d3 100644
--- a/guix/build/clojure-utils.scm
+++ b/guix/build/clojure-utils.scm
@@ -32,8 +32,10 @@
install-doc
%source-dirs
+ %java-source-dirs
%test-dirs
%compile-dir
+ %java-compile-dir
package-name->jar-names
%main-class
%omit-source?
@@ -101,6 +103,10 @@ DOC-REGEX can be compiled or uncompiled."
"A default list of source directories."
'("src/"))
+(define-with-docs %java-source-dirs
+ "A default list of java source directories."
+ '())
+
(define-with-docs %test-dirs
"A default list of test directories."
'("test/"))
@@ -109,6 +115,10 @@ DOC-REGEX can be compiled or uncompiled."
"Default directory for holding class files."
"classes/")
+(define-with-docs %java-compile-dir
+ "Default directory for holding java class files."
+ "java-classes/")
+
(define (package-name->jar-names name)
"Given NAME, a package name like \"foo-0.9.1b\",
return the list of default jar names: (\"foo-0.9.1b.jar\" \"foo.jar\")."