Subject: [bug#72614] [PATCH] gnu: asli: Update to 0.1-1.4f4ba14.

From: "Artyom V. Poptsov" <[email-masked]>
Date: Wed, 14 Aug 2024 08:48:45 +0300

* gnu/packages/graphics.scm (asli): Update to the commit
4f4ba142ea7db6eecfdb546538c88a38680a83c5 to allow build with CGAL v5.6.
* gnu/packages/patches/asli-use-system-libs.patch: Update.

Change-Id: I623099a34d96180fe6aa4c161cfa895597a45304
---
 gnu/packages/graphics.scm                     | 138 +++++++++---------
 .../patches/asli-use-system-libs.patch        |  55 ++++---
 2 files changed, 102 insertions(+), 91 deletions(-)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 6c9d6cded9..11bd24e949 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -2800,78 +2800,80 @@ (define-public nanosvg
       (license license:zlib))))
 
 (define-public asli
-  (package
-    (name "asli")
-    (version "0.1")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/tpms-lattice/ASLI")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "02hwdavpsy3vmivd6prp03jn004ykrl11lbkvksy5i2zm38zbknr"))
-       (patches (search-patches "asli-use-system-libs.patch"))
-       (modules '((guix build utils)))
-       (snippet
-        ;; Remove bundled libraries except (the ones missing from Guix and)
-        ;; KU Leuven's mTT, which is an obscure (i.e., unfindable by searching
-        ;; online for “mTT KU Leuven”), BSD-3 licensed, header-only library.
-        #~(begin
-            ;;(delete-file-recursively "libs/AdaptTools") ; Missing from Guix
-            (delete-file-recursively "libs/CGAL")
-            ;;(delete-file-recursively "libs/alglib") ; Missing from Guix
-            (delete-file-recursively "libs/eigen")
-            (delete-file-recursively "libs/mmg")
-            ;;(delete-file-recursively "libs/tetgen") ; Missing from Guix
-            (delete-file-recursively "libs/yaml")))))
-    (build-system cmake-build-system)
-    (inputs
-     (list boost
-           cgal
-           eigen
-           gmp
-           `(,mmg "lib")
-           mpfr
-           tbb-2020
-           yaml-cpp))
-    (arguments
-     (list #:tests? #f                  ; No tests
-           #:configure-flags
-           #~(list "-DCGAL_ACTIVATE_CONCURRENT_MESH_3=ON"
-                   (string-append "-DEIGEN3_INCLUDE_DIR="
-                                  #$(this-package-input "eigen")
-                                  "/include/eigen3")
-                   (string-append "-DMMG_INCLUDE_DIR="
-                                  (ungexp (this-package-input "mmg") "lib")
-                                  "/include")
-                   (string-append "-DMMG_LIBRARY_DIR="
-                                  (ungexp (this-package-input "mmg") "lib")
-                                  "/lib"))
-           #:phases
-           #~(modify-phases %standard-phases
-               (replace 'install        ; No install phase
-                 (lambda _
-                   (with-directory-excursion "../source/bin"
-                     (install-file "ASLI" (string-append #$output "/bin"))
-                     ;; The manual is included in the repository.
-                     ;; Building it requires -DASLI_DOC=ON, but this is marked
-                     ;; as unsupported (presumably for users).
-                     ;; Besides, some of the LaTeX packages it uses are
-                     ;; missing from Guix, for example emptypage, fvextra and
-                     ;; menukeys.
-                     (install-file "docs/ASLI [User Manual].pdf"
-                                   (string-append #$output "/share/doc/"
-                                                  #$name "-" #$version))))))))
-    (home-page "http://www.biomech.ulg.ac.be/ASLI/")
-    (synopsis "Create lattice infills with varying unit cell type, size and feature")
-    (description "ASLI (A Simple Lattice Infiller) is a command-line tool that
+  ;; Use the newer version of ASLI that allows build with CGAL v5.6.
+  (let ((commit "4f4ba142ea7db6eecfdb546538c88a38680a83c5")
+        (revision "1"))
+    (package
+      (name "asli")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/tpms-lattice/ASLI")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "122xxnj3dckmg6mh07x490564b2z9gd38cd0wc5zz3p4nshcq7wy"))
+         (patches (search-patches "asli-use-system-libs.patch"))
+         (modules '((guix build utils)))
+         (snippet
+          ;; Remove bundled libraries except (the ones missing from Guix and)
+          ;; KU Leuven's mTT, which is an obscure (i.e., unfindable by searching
+          ;; online for “mTT KU Leuven”), BSD-3 licensed, header-only library.
+          #~(begin
+              ;;(delete-file-recursively "libs/AdaptTools") ; Missing from Guix
+              (delete-file-recursively "libs/CGAL")
+              ;;(delete-file-recursively "libs/alglib") ; Missing from Guix
+              (delete-file-recursively "libs/eigen")
+              (delete-file-recursively "libs/mmg")
+              (delete-file-recursively "libs/yaml")))))
+      (build-system cmake-build-system)
+      (inputs
+       (list boost
+             cgal
+             eigen
+             gmp
+             `(,mmg "lib")
+             mpfr
+             tbb-2020
+             yaml-cpp))
+      (arguments
+       (list #:tests? #f                  ; No tests
+             #:configure-flags
+             #~(list "-DCGAL_ACTIVATE_CONCURRENT_MESH_3=ON"
+                     (string-append "-DEIGEN3_INCLUDE_DIR="
+                                    #$(this-package-input "eigen")
+                                    "/include/eigen3")
+                     (string-append "-DMMG_INCLUDE_DIR="
+                                    (ungexp (this-package-input "mmg") "lib")
+                                    "/include")
+                     (string-append "-DMMG_LIBRARY_DIR="
+                                    (ungexp (this-package-input "mmg") "lib")
+                                    "/lib"))
+             #:phases
+             #~(modify-phases %standard-phases
+                 (replace 'install        ; No install phase
+                   (lambda _
+                     (with-directory-excursion "../source/bin"
+                       (install-file "ASLI" (string-append #$output "/bin"))
+                       ;; The manual is included in the repository.
+                       ;; Building it requires -DASLI_DOC=ON, but this is marked
+                       ;; as unsupported (presumably for users).
+                       ;; Besides, some of the LaTeX packages it uses are
+                       ;; missing from Guix, for example emptypage, fvextra and
+                       ;; menukeys.
+                       (install-file "docs/ASLI [User Manual].pdf"
+                                     (string-append #$output "/share/doc/"
+                                                    #$name "-" #$version))))))))
+      (home-page "http://www.biomech.ulg.ac.be/ASLI/")
+      (synopsis "Create lattice infills with varying unit cell type, size and feature")
+      (description "ASLI (A Simple Lattice Infiller) is a command-line tool that
 allows users to fill any 3D geometry with a functionally graded lattice.  The
 lattice infill is constructed out of unit cells, described by implicit
 functions, whose type, size and feature can be varied locally to obtain the
 desired local properties.")
-    (license license:agpl3+)))
+      (license license:agpl3+))))
 
 (define-public f3d
   (package
diff --git a/gnu/packages/patches/asli-use-system-libs.patch b/gnu/packages/patches/asli-use-system-libs.patch
index 6c4518e04e..82e49addb6 100644
--- a/gnu/packages/patches/asli-use-system-libs.patch
+++ b/gnu/packages/patches/asli-use-system-libs.patch
@@ -1,12 +1,20 @@
-Adjust CMakeLists.txt to use system-provided mmg and yaml-cpp libraries.
+From edfff0027c3cdacbbc0f288078366058f598544d Mon Sep 17 00:00:00 2001
+From: "Artyom V. Poptsov" <[email-masked]>
+Date: Wed, 14 Aug 2024 07:57:20 +0300
+Subject: [PATCH] CMakeLists.txt: Adjust to use system libraries.
+
+* CMakeLists.txt: Adjust to use system-provided mmg and yaml-cpp libraries.
+---
+ CMakeLists.txt | 38 ++++++--------------------------------
+ 1 file changed, 6 insertions(+), 32 deletions(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b11c5ba..702423e 100755
+index ca2a01f9..c6eff22f 100755
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -122,28 +122,8 @@ if(MMG_MESH)
-   add_definitions(-DMMG_MESH)
+@@ -113,28 +113,8 @@ endif()
  
+ # Mmg and its components
    # MMG
 -  set(MMG_PREFIX mmg3d)
 -  set(MMG_PREFIX_DIR ${CMAKE_CURRENT_BINARY_DIR}/${MMG_PREFIX})
@@ -19,7 +27,7 @@ index b11c5ba..702423e 100755
 -    INSTALL_DIR  ${MMG_INSTALL_DIR}
 -
 -    CMAKE_ARGS(-DCMAKE_BUILD_TYPE=Release -DBUILD=MMG3D -DLIBMMG3D_STATIC=ON
--               -DLIBMMG3D_SHARED=OFF -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>)
+-               -DLIBMMG3D_SHARED=OFF -DUSE_ELAS=OFF -DUSE_VTK=OFF -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>)
 -
 -    BUILD_COMMAND   make
 -    INSTALL_COMMAND make install
@@ -35,8 +43,8 @@ index b11c5ba..702423e 100755
  
    # MshMet
    set(MSHMET_PREFIX mshmet)
-@@ -192,14 +172,8 @@ target_include_directories(tet PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/libs/tetgen)
- target_compile_definitions(tet PUBLIC TETLIBRARY) # -DTETLIBRARY: flag to compile tetgen as a library
+@@ -174,14 +154,8 @@ target_include_directories(alg PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/libs/alglib/sr
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/libs/mTT/include)
  
  # yaml
 -file(GLOB yaml_SRC CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libs/yaml/src/*.cpp) # Using file GLOB is not recomended!
@@ -52,21 +60,22 @@ index b11c5ba..702423e 100755
  
  # Compile options for debuging
  if(CMAKE_BUILD_TYPE MATCHES Debug)
-@@ -259,7 +233,7 @@ if(MARCH_NATIVE)
- endif()
+@@ -218,7 +192,7 @@ endif()
  
  # Create entries for C++ files in "ASLI" routine
--target_link_libraries(ASLI PUBLIC alg tet yaml)
-+target_link_libraries(ASLI PUBLIC alg tet ${YAML_CPP_LIBRARIES})
- if(NOT MSVC)
-   target_link_libraries(ASLI PUBLIC stdc++fs)
- endif()
-@@ -272,7 +246,7 @@ if(CGAL_MESH)
- endif()
- 
- if(MMG_MESH)
--  add_dependencies(ASLI ${MMG_PREFIX} ${MSHMET_PREFIX})
-+  add_dependencies(ASLI ${MSHMET_PREFIX})
-   target_link_libraries(ASLI PUBLIC ${MMG3D_LIBRARIES} ${MSHMET_LIBRARIES})
-   if(SCOTCH_FOUND)
-     target_link_libraries(ASLI PUBLIC ${SCOTCH_LIBRARIES} scotch)
+ add_dependencies(ASLI ${MMG_PREFIX} ${MSHMET_PREFIX})
+-target_link_libraries(ASLI PUBLIC alg yaml 
++target_link_libraries(ASLI PUBLIC alg ${YAML_CPP_LIBRARIES}
+                       CGAL::CGAL CGAL::Eigen_support 
+                       ${MMG3D_LIBRARIES} ${MSHMET_LIBRARIES}
+ )
+@@ -301,4 +275,4 @@ if(MSYS AND ASLI_DLL)
+    						      $<TARGET_FILE_DIR:ASLI>
+     )
+   endif()
+-endif()
+\ No newline at end of file
++endif()
+-- 
+2.45.2
+

base-commit: 99a81b6f2a1386d6ea76a6ecb1942f1f7f891080
-- 
2.45.2