~ruther/guix-local

a6fc1164c458dfdde97522f4bd872f2732029b4b — David Elsing 2 years ago 4a368c3
gnu: Add suitesparse-config.

The suitesparse-source variable contains the entire SuiteSparse source code,
which is used for all subpackages.

* gnu/packages/maths.scm (suitesparse-version, suitesparse-source,
suitesparse-config): New variables.

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

M gnu/packages/maths.scm
M gnu/packages/maths.scm => gnu/packages/maths.scm +81 -0
@@ 5039,6 5039,87 @@ Fresnel integrals, and similar related functions as well.")
    ;; public domain software.
    (license (list license:expat license:public-domain))))

;; Source for the modular SuiteSparse packages. When updating, also update the
;; (different) versions of the subpackages.
(define suitesparse-version "7.2.0")
(define suitesparse-source
  (origin
    (method git-fetch)
    (uri (git-reference
          (url "https://github.com/DrTimothyAldenDavis/SuiteSparse")
          (commit (string-append "v" suitesparse-version))))
    (file-name (git-file-name "suitesparse" suitesparse-version))
    (sha256
     (base32
      "1draljn8i46862drc6008cnb2zjpklf74j8c34jirjazzpf53kaa"))
    (modules '((guix build utils)))
    (snippet
     #~(begin
         ;; Delete autogenerated and bundled files
         (for-each delete-file (find-files "." "\\.pdf$"))
         ;; ssget
         (delete-file-recursively "ssget")
         ;; SuiteSparse_config
         (delete-file "SuiteSparse_config/SuiteSparse_config.h")
         ;; CHOLMOD
         (delete-file-recursively "CHOLMOD/SuiteSparse_metis")
         ; GraphBLAS
         (delete-file "GraphBLAS/README.md")
         (delete-file "GraphBLAS/Config/GB_config.h")
         (delete-file "GraphBLAS/Config/GB_prejit.c")
         (delete-file-recursively "GraphBLAS/cpu_features")
         (delete-file "GraphBLAS/CUDA/GB_cuda_common_jitFactory.hpp")
         (delete-file "GraphBLAS/JITpackage/GB_JITpackage.c")
         (delete-file-recursively "GraphBLAS/lz4/lz4.c")
         (delete-file-recursively "GraphBLAS/lz4/lz4.h")
         (delete-file-recursively "GraphBLAS/lz4/lz4hc.c")
         (delete-file-recursively "GraphBLAS/lz4/lz4hc.h")
         (delete-file "GraphBLAS/GraphBLAS/Config/GB_config.h")
         (delete-file "GraphBLAS/Tcov/PreJIT/GB_prejit.c")
         (delete-file-recursively "GraphBLAS/Source/FactoryKernels")
         (delete-file "GraphBLAS/Source/GB_AxB__include1.h")
         (delete-file "GraphBLAS/xxHash/xxhash.h")
         (delete-file-recursively "GraphBLAS/zstd/zstd_subset")
         ;; KLU
         (delete-file "KLU/Include/klu.h")
         (delete-file "KLU/Doc/klu_version.tex")
         ;; LDL
         (delete-file "LDL/Include/ldl.h")
         (delete-file "LDL/Doc/ldl_version.tex")
         ;; RBio
         (delete-file "RBio/Include/RBio.h")
         ;; SPEX
         (delete-file "SPEX/Include/SPEX.h")
         (delete-file "SPEX/Doc/SPEX_version.tex")
         ;; SPQR
         (delete-file "SPQR/Include/SuiteSparseQR_definitions.h")
         (delete-file "SPQR/Doc/spqr_version.tex")
         ;; UMFPACK
         (delete-file "UMFPACK/Include/umfpack.h")
         (delete-file "UMFPACK/Doc/umfpack_version.tex")))))

(define-public suitesparse-config
  (package
    (name "suitesparse-config")
    (version suitesparse-version)
    (source suitesparse-source)
    (build-system cmake-build-system)
    (arguments
     (list
      #:tests? #f
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'chdir
            (lambda _
              (chdir "SuiteSparse_config"))))))
    (inputs (list openblas))
    (native-inputs (list pkg-config))
    (home-page "https://people.engr.tamu.edu/davis/suitesparse.html")
    (synopsis "Configuration for all SuiteSparse packages")
    (description "SuiteSparse is a suite of sparse matrix algorithms.  This
package contains a library with common configuration options.")
    (license license:bsd-3)))

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