guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/22: ant-build-system: Allow specifying source directory.


From: Ricardo Wurmus
Subject: 01/22: ant-build-system: Allow specifying source directory.
Date: Wed, 10 May 2017 11:59:38 -0400 (EDT)

rekado pushed a commit to branch master
in repository guix.

commit 8df64f7384263764a3c1bcfdb783c8188570cce7
Author: Hartmut Goebel <address@hidden>
Date:   Fri Sep 9 16:51:01 2016 +0200

    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 <address@hidden>
---
 doc/guix.texi                   |  3 ++-
 guix/build-system/ant.scm       |  2 ++
 guix/build/ant-build-system.scm | 10 ++++++----
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 22dc8b3..81aa957 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 550f92b..a309a0c 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 00a4a46..8ec7a94 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)))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]