Subject: [PATCH v2 11/20] gnu: Add metis-suitesparse.

From: David Elsing <[email-masked]>
Date: Thu, 21 Sep 2023 13:27:46 +0000

* gnu/packages/maths.scm (metis-suitesparse): New variable.
---
 gnu/packages/maths.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 3a86e90cb5..3f80029414 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -5263,6 +5263,32 @@ (define-public gklib-suitesparse
      (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")
-- 
2.41.0