Subject: [PATCH] gnu: libfive: Add snippet, enable tests and remove obsolete phase.
From: Diego Nicola Barbato <[email-masked]>
To: [email-masked]
Date: Fri, 06 Apr 2018 15:36:41 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Guix

I have noticed that the package "ao-cad" has been updated and renamed to
"libfive" recently (commit: 28f4d56dd311a3b4c7102394120de05be6937494).

I have been working on the same thing for a while but I got stuck when
trying to figure out how to correctly install the Guile library so that
it could be used as described in the libfive documentation
(https://github.com/libfive/libfive/blob/9d857d1923abecb0e5935b9287d22661f6efaac5/doc/guide.md)
by running (load-extension "libfive-guile" "scm_init_libfive_modules")
in a Guile REPL.  I also thought about installing it in such a way that
it could be loaded with (use-modules (libfive)).

AFAICT this has not been addressed yet so I will continue working on it.

The updated package definition is very similar to what I have written so
far except for some minor differences.  Among these are a snippet which
removes the bundled catch.hpp file from the libfive/test directory and
the fact that I did not disable the tests.  Additionally I removed a
phase which does not seem to be necessary as the package is still built
and installed correctly without it.

This patch adds those changes.

Greetings

Diego

From 402b75db39ec6778862a5a301cd6a6f520608c60 Mon Sep 17 00:00:00 2001
From: Diego Nicola Barbato <[email-masked]>
Date: Fri, 6 Apr 2018 13:43:54 +0200
Subject: [PATCH] gnu: libfive: Add snippet, enable tests and remove obsolete
 phase.

* gnu/packages/engineering.scm (libfive)[source]: Add snippet to
remove bundled catch.
[arguments]: Remove #:tests?.  Add #:test-target.  Remove phase
'add-eigen-to-search-path'.
---
 gnu/packages/engineering.scm | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 1113cafec..2f4e8cef5 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -580,24 +580,19 @@ as well as pick-place files.")
                 (sha256
                  (base32
                   "1r40kyx30wz31cwwlfvfh7fgqkxq3n8dxhswpi9qpf4r5h3l8wsn"))
-                (file-name (git-file-name name version))))
+                (file-name (git-file-name name version))
+                (snippet
+                 ;; Remove bundled catch since we provide our own.
+                 '(delete-file "libfive/test/catch.hpp"))))
       (build-system cmake-build-system)
       (arguments
-       `(#:tests? #f ; no "test" target
+       `(#:test-target "libfive-test"
          #:phases
          (modify-phases %standard-phases
            (add-after 'unpack 'remove-native-compilation
              (lambda _
                (substitute* "CMakeLists.txt" (("-march=native") ""))
-               #t))
-           (add-before 'build 'add-eigen-to-search-path
-             (lambda* (#:key inputs #:allow-other-keys)
-               ;; Allow things to find our own Eigen and Catch.
-               (let ((eigen (assoc-ref inputs "eigen")))
-                 (setenv "CPLUS_INCLUDE_PATH"
-                         (string-append eigen "/include/eigen3:"
-                                        (getenv "CPLUS_INCLUDE_PATH")))
-                 #t))))))
+               #t)))))
       (native-inputs
        `(("pkg-config" ,pkg-config)))
       (inputs
-- 
2.17.0