~ruther/guix-local

7c5d3592e75cd413eed10949418046a96097ae34 — David Elsing 2 years ago 95ecbdc
gnu: Add metis-suitesparse.

* gnu/packages/maths.scm (metis-suitesparse): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
1 files changed, 26 insertions(+), 0 deletions(-)

M gnu/packages/maths.scm
M gnu/packages/maths.scm => gnu/packages/maths.scm +26 -0
@@ 5422,6 5422,32 @@ COLAMD which has the the option to apply constraints to the ordering.")
     (modify-inputs (package-inputs gklib)
       (prepend suitesparse-config)))))

(define-public metis-suitesparse
  (package/inherit metis-5.2
    (name "metis-suitesparse")
    (arguments
     (substitute-keyword-arguments (package-arguments metis-5.2)
       ((#:phases phases)
        #~(modify-phases #$phases
            (add-before 'prepare-cmake 'set-idxwidth
              (lambda _
                (substitute* "Makefile"
                  (("IDXWIDTH.*=.*")
                   "IDXWIDTH = \"\\#define IDXTYPEWIDTH 64\"\n"))))
            (add-before 'prepare-cmake 'link-suitesparse-config
              (lambda _
                (substitute* "programs/CMakeLists.txt"
                  (("include_directories.*" all)
                   (string-append
                    all "find_package(SuiteSparse_config REQUIRED)\n"))
                  (("(target_link_libraries.*)GKlib(.*)" _ start end)
                   (string-append
                    start "GKlib ${SUITESPARSE_CONFIG_LIBRARIES}" end)))))))
       ((#:configure-flags _)
        #~(list "-DSHARED=ON"
                (string-append "-DGKLIB_PATH=" #$gklib-suitesparse)))))
    (inputs (list suitesparse-config gklib-suitesparse))))

(define-public suitesparse
  (package
    (name "suitesparse")