gnu: Add asli.
* gnu/packages/graphics.scm (asli): New variable. * gnu/packages/patches/asli-use-system-libs.patch: New file. * gnu/local.mk (dist_patch_DATA): Register patch. Signed-off-by: Ludovic Courtès <ludo@gnu.org>master
parent
45af7b8923
commit
05f44bbeb4
|
@ -913,6 +913,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/apr-skip-getservbyname-test.patch \
|
%D%/packages/patches/apr-skip-getservbyname-test.patch \
|
||||||
%D%/packages/patches/ark-skip-xar-test.patch \
|
%D%/packages/patches/ark-skip-xar-test.patch \
|
||||||
%D%/packages/patches/arpack-ng-propagate-rng-state.patch \
|
%D%/packages/patches/arpack-ng-propagate-rng-state.patch \
|
||||||
|
%D%/packages/patches/asli-use-system-libs.patch \
|
||||||
%D%/packages/patches/aspell-CVE-2019-25051.patch \
|
%D%/packages/patches/aspell-CVE-2019-25051.patch \
|
||||||
%D%/packages/patches/aspell-default-dict-dir.patch \
|
%D%/packages/patches/aspell-default-dict-dir.patch \
|
||||||
%D%/packages/patches/ath9k-htc-firmware-binutils.patch \
|
%D%/packages/patches/ath9k-htc-firmware-binutils.patch \
|
||||||
|
|
|
@ -2655,6 +2655,80 @@ anything from rendering scalable icons in an editor application to prototyping
|
||||||
a game.")
|
a game.")
|
||||||
(license license:zlib))))
|
(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
|
||||||
|
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+)))
|
||||||
|
|
||||||
(define-public f3d
|
(define-public f3d
|
||||||
(package
|
(package
|
||||||
(name "f3d")
|
(name "f3d")
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
Adjust CMakeLists.txt to use system-provided mmg and yaml-cpp libraries.
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index b11c5ba..702423e 100755
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -122,28 +122,8 @@ if(MMG_MESH)
|
||||||
|
add_definitions(-DMMG_MESH)
|
||||||
|
|
||||||
|
# MMG
|
||||||
|
- set(MMG_PREFIX mmg3d)
|
||||||
|
- set(MMG_PREFIX_DIR ${CMAKE_CURRENT_BINARY_DIR}/${MMG_PREFIX})
|
||||||
|
- set(MMG_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/${MMG_PREFIX})
|
||||||
|
- ExternalProject_Add(${MMG_PREFIX}
|
||||||
|
- PREFIX ${MMG_PREFIX_DIR}
|
||||||
|
- SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libs/mmg
|
||||||
|
-
|
||||||
|
- BUILD_ALWAYS OFF
|
||||||
|
- INSTALL_DIR ${MMG_INSTALL_DIR}
|
||||||
|
-
|
||||||
|
- CMAKE_ARGS(-DCMAKE_BUILD_TYPE=Release -DBUILD=MMG3D -DLIBMMG3D_STATIC=ON
|
||||||
|
- -DLIBMMG3D_SHARED=OFF -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>)
|
||||||
|
-
|
||||||
|
- BUILD_COMMAND make
|
||||||
|
- INSTALL_COMMAND make install
|
||||||
|
- )
|
||||||
|
- set(MMG3D_INCLUDE_DIRS "${MMG_INSTALL_DIR}/include")
|
||||||
|
- set(MMG3D_LIBRARIES "${MMG_INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${MMG_PREFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||||
|
-
|
||||||
|
- include_directories(${MMG3D_INCLUDE_DIRS})
|
||||||
|
- #add_library(MMG3D STATIC IMPORTED)
|
||||||
|
- #set_target_properties(MMG3D PROPERTIES IMPORTED_LOCATION "${MMG3D_LIBRARIES}")
|
||||||
|
+ include_directories(${MMG_INCLUDE_DIR})
|
||||||
|
+ set(MMG3D_LIBRARIES ${MMG_LIBRARY_DIR}/libmmg3d.so)
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# yaml
|
||||||
|
-file(GLOB yaml_SRC CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libs/yaml/src/*.cpp) # Using file GLOB is not recomended!
|
||||||
|
-add_library(yaml STATIC)
|
||||||
|
-target_include_directories(yaml
|
||||||
|
- PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/libs/yaml/include
|
||||||
|
- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/libs/yaml/src
|
||||||
|
-)
|
||||||
|
-target_sources(yaml PRIVATE ${yaml_SRC})
|
||||||
|
-set_target_properties(yaml PROPERTIES CXX_STANDARD 11)
|
||||||
|
+find_package(yaml-cpp REQUIRED)
|
||||||
|
+include_directories(${YAML_CPP_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
# Compile options for debuging
|
||||||
|
if(CMAKE_BUILD_TYPE MATCHES Debug)
|
||||||
|
@@ -259,7 +233,7 @@ if(MARCH_NATIVE)
|
||||||
|
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)
|
Reference in New Issue