Skip to content
Snippets Groups Projects
Unverified Commit 8df64f73 authored by Hartmut Goebel's avatar Hartmut Goebel Committed by Ricardo Wurmus
Browse files

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: default avatarRicardo Wurmus <rekado@elephly.net>
parent 75f796bb
No related branches found
No related tags found
No related merge requests found
...@@ -3327,7 +3327,8 @@ parameters, respectively. ...@@ -3327,7 +3327,8 @@ parameters, respectively.
When the original package does not provide a suitable Ant build file, 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 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 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 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 that should be run during the @code{build} phase. By default the
......
...@@ -98,6 +98,7 @@ (define* (ant-build store name inputs ...@@ -98,6 +98,7 @@ (define* (ant-build store name inputs
(make-flags ''()) (make-flags ''())
(build-target "jar") (build-target "jar")
(jar-name #f) (jar-name #f)
(source-dir "src")
(phases '(@ (guix build ant-build-system) (phases '(@ (guix build ant-build-system)
%standard-phases)) %standard-phases))
(outputs '("out")) (outputs '("out"))
...@@ -126,6 +127,7 @@ (define builder ...@@ -126,6 +127,7 @@ (define builder
#:test-target ,test-target #:test-target ,test-target
#:build-target ,build-target #:build-target ,build-target
#:jar-name ,jar-name #:jar-name ,jar-name
#:source-dir ,source-dir
#:phases ,phases #:phases ,phases
#:outputs %outputs #:outputs %outputs
#:search-paths ',(map search-path-specification->sexp #:search-paths ',(map search-path-specification->sexp
......
...@@ -35,7 +35,8 @@ (define-module (guix build ant-build-system) ...@@ -35,7 +35,8 @@ (define-module (guix build ant-build-system)
;; ;;
;; Code: ;; 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." "Create a simple build.xml with standard targets for Ant."
(call-with-output-file "build.xml" (call-with-output-file "build.xml"
(lambda (port) (lambda (port)
...@@ -58,7 +59,7 @@ (define (default-build.xml jar-name prefix) ...@@ -58,7 +59,7 @@ (define (default-build.xml jar-name prefix)
(target (@ (name "compile")) (target (@ (name "compile"))
(mkdir (@ (dir "${classes.dir}"))) (mkdir (@ (dir "${classes.dir}")))
(javac (@ (includeantruntime "false") (javac (@ (includeantruntime "false")
(srcdir "src") (srcdir ,source-dir)
(destdir "${classes.dir}") (destdir "${classes.dir}")
(classpath (@ (refid "classpath")))))) (classpath (@ (refid "classpath"))))))
...@@ -98,11 +99,12 @@ (define* (unpack #:key source #:allow-other-keys) ...@@ -98,11 +99,12 @@ (define* (unpack #:key source #:allow-other-keys)
((assq-ref gnu:%standard-phases 'unpack) #:source source))) ((assq-ref gnu:%standard-phases 'unpack) #:source source)))
(define* (configure #:key inputs outputs (jar-name #f) (define* (configure #:key inputs outputs (jar-name #f)
#:allow-other-keys) (source-dir "src") #:allow-other-keys)
(when jar-name (when jar-name
(default-build.xml jar-name (default-build.xml jar-name
(string-append (assoc-ref outputs "out") (string-append (assoc-ref outputs "out")
"/share/java"))) "/share/java")
source-dir))
(setenv "JAVA_HOME" (assoc-ref inputs "jdk")) (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
(setenv "CLASSPATH" (generate-classpath inputs))) (setenv "CLASSPATH" (generate-classpath inputs)))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment