diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2017-11-08 16:20:42 +0100 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2017-11-08 16:21:54 +0100 |
commit | 7e3aca2b78cbb563b4817c47b5c71b32333a2099 (patch) | |
tree | 8a060f35c40bcefe499e1fbaff78d5fb6b3ed7c2 /gnu | |
parent | b72b42cf0287863e5af0a8ef6f1c24f7bb89c950 (diff) | |
download | gnu-guix-7e3aca2b78cbb563b4817c47b5c71b32333a2099.tar gnu-guix-7e3aca2b78cbb563b4817c47b5c71b32333a2099.tar.gz |
gnu: librecad: Fix build.
* gnu/packages/engineering.scm (librecad)[arguments]: Add phase
"patch-boost-error".
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/engineering.scm | 50 |
1 files changed, 32 insertions, 18 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 32b2f2c806..496c1aa2bc 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -96,24 +96,38 @@ (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-paths - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "librecad/src/lib/engine/rs_system.cpp" - (("/usr/share") (string-append out "/share")))))) - (replace 'configure - (lambda* (#:key inputs #:allow-other-keys) - (system* "qmake" (string-append "BOOST_DIR=" - (assoc-ref inputs "boost"))))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (share (string-append out "/share/librecad"))) - (mkdir-p bin) - (install-file "unix/librecad" bin) - (mkdir-p share) - (copy-recursively "unix/resources" share))))))) + ;; Without this patch boost complains that "make_array" is not a + ;; member of "boost::serialization". + (add-after 'unpack 'patch-boost-error + (lambda _ + (substitute* "librecad/src/lib/math/lc_quadratic.h" + (("#include \"rs_vector.h\"" line) + (string-append line + "\n#include <boost/serialization/array_wrapper.hpp>"))) + (substitute* "librecad/src/lib/math/rs_math.cpp" + (("#include <boost/numeric/ublas/matrix.hpp>" line) + (string-append "#include <boost/serialization/array_wrapper.hpp>\n" + line))) + #t)) + (add-after 'unpack 'patch-paths + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "librecad/src/lib/engine/rs_system.cpp" + (("/usr/share") (string-append out "/share")))))) + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (system* "qmake" (string-append "BOOST_DIR=" + (assoc-ref inputs "boost"))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (share (string-append out "/share/librecad"))) + (mkdir-p bin) + (install-file "unix/librecad" bin) + (mkdir-p share) + (copy-recursively "unix/resources" share)) + #t))))) (inputs `(("boost" ,boost) ("muparser" ,muparser) |