summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-04-06 18:13:30 +0200
committerLudovic Courtès <ludo@gnu.org>2017-04-07 00:17:16 +0200
commit6b6aca9b363d9c453892b41691734a03fabe1faa (patch)
tree02a94b30425133bcf15cf5cb3f1b390e2701da83
parent3be437398efd449d56cef427b0574e7fdcf835d7 (diff)
downloadguix-6b6aca9b363d9c453892b41691734a03fabe1faa.tar.gz
gnu: flann: Move .mex file to a separate "octave" output.
That way the closure of flann:out is down from 1 GiB
to 290 MiB.

* gnu/packages/maths.scm (flann)[outputs]: New field.
[arguments]: Add 'set-octave-directory' phase.
-rw-r--r--gnu/packages/maths.scm10
1 files changed, 10 insertions, 0 deletions
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 5a06afa220..38beb88d0a 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2719,6 +2719,8 @@ in finite element programs.")
           (base32
             "022w8hph7bli5zbpnk3z1qh1c2sl5hm8fw2ccim651ynn0hr7fyz"))))
     (build-system cmake-build-system)
+    (outputs '("out"
+               "octave"))                  ;46 MiB .mex file that pulls Octave
     (native-inputs
      `(("unzip" ,unzip)))
     (inputs
@@ -2736,6 +2738,14 @@ in finite element programs.")
        ;; Save 12 MiB by not installing .a files.  Passing
        ;; '-DBUILD_STATIC_LIBS=OFF' has no effect.
        #:phases (modify-phases %standard-phases
+                  (add-before 'configure 'set-octave-directory
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      ;; Install the .mex file in the "octave" output.
+                      (let ((out (assoc-ref outputs "octave")))
+                        (substitute* "src/matlab/CMakeLists.txt"
+                          (("share/flann/octave")
+                           (string-append out "/share/flann/octave")))
+                        #t)))
                   (add-after 'install 'remove-static-libraries
                     (lambda* (#:key outputs #:allow-other-keys)
                       (let* ((out (assoc-ref outputs "out"))