summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHartmut Goebel <h.goebel@crazy-compilers.com>2016-09-09 16:51:01 +0200
committerRicardo Wurmus <rekado@elephly.net>2017-05-10 17:59:22 +0200
commit8df64f7384263764a3c1bcfdb783c8188570cce7 (patch)
tree32ef6e4feaa65b6a6aff619e5b5d7ca6cfba872b
parent75f796bb73a4cb4a06955fac19ef9af6f126988d (diff)
downloadpatches-8df64f7384263764a3c1bcfdb783c8188570cce7.tar
patches-8df64f7384263764a3c1bcfdb783c8188570cce7.tar.gz
ant-build-system: Allow specifying source directory.
* guix/build-system/ant.scm (ant-build), guix/build/ant-build-system.scm (default-build.xml): Add parameter source-dir. * guix/build/ant-build-system.scm (configure): Pass source-dir on to default-build.xml. * doc/guix.texi (Build Systems): Document it. Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
-rw-r--r--doc/guix.texi3
-rw-r--r--guix/build-system/ant.scm2
-rw-r--r--guix/build/ant-build-system.scm10
3 files changed, 10 insertions, 5 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 22dc8b3f90..81aa957c6d 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -3327,7 +3327,8 @@ parameters, respectively.
When the original package does not provide a suitable Ant build file,
the parameter @code{#:jar-name} can be used to generate a minimal Ant
build file @file{build.xml} with tasks to build the specified jar
-archive.
+archive. In this case the parameter @code{#:source-dir} can be used to
+specify the source sub-directory, defaulting to ``src''.
The parameter @code{#:build-target} can be used to specify the Ant task
that should be run during the @code{build} phase. By default the
diff --git a/guix/build-system/ant.scm b/guix/build-system/ant.scm
index 550f92bc7f..a309a0c86b 100644
--- a/guix/build-system/ant.scm
+++ b/guix/build-system/ant.scm
@@ -98,6 +98,7 @@
(make-flags ''())
(build-target "jar")
(jar-name #f)
+ (source-dir "src")
(phases '(@ (guix build ant-build-system)
%standard-phases))
(outputs '("out"))
@@ -126,6 +127,7 @@
#:test-target ,test-target
#:build-target ,build-target
#:jar-name ,jar-name
+ #:source-dir ,source-dir
#:phases ,phases
#:outputs %outputs
#:search-paths ',(map search-path-specification->sexp
diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm
index 00a4a46d81..8ec7a94869 100644
--- a/guix/build/ant-build-system.scm
+++ b/guix/build/ant-build-system.scm
@@ -35,7 +35,8 @@
;;
;; Code:
-(define (default-build.xml jar-name prefix)
+(define* (default-build.xml jar-name prefix #:optional
+ (source-dir "."))
"Create a simple build.xml with standard targets for Ant."
(call-with-output-file "build.xml"
(lambda (port)
@@ -58,7 +59,7 @@
(target (@ (name "compile"))
(mkdir (@ (dir "${classes.dir}")))
(javac (@ (includeantruntime "false")
- (srcdir "src")
+ (srcdir ,source-dir)
(destdir "${classes.dir}")
(classpath (@ (refid "classpath"))))))
@@ -98,11 +99,12 @@ to the default GNU unpack strategy."
((assq-ref gnu:%standard-phases 'unpack) #:source source)))
(define* (configure #:key inputs outputs (jar-name #f)
- #:allow-other-keys)
+ (source-dir "src") #:allow-other-keys)
(when jar-name
(default-build.xml jar-name
(string-append (assoc-ref outputs "out")
- "/share/java")))
+ "/share/java")
+ source-dir))
(setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
(setenv "CLASSPATH" (generate-classpath inputs)))