guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

04/05: gnu: Add liblantern.


From: guix-commits
Subject: 04/05: gnu: Add liblantern.
Date: Fri, 11 Feb 2022 09:50:51 -0500 (EST)

rekado pushed a commit to branch master
in repository guix.

commit 7146e553b94992e89349fe76915e59de88418d8f
Author: Ricardo Wurmus <rekado@elephly.net>
AuthorDate: Fri Feb 11 15:40:29 2022 +0100

    gnu: Add liblantern.
    
    * gnu/packages/machine-learning.scm (liblantern): New variable.
---
 gnu/packages/machine-learning.scm | 62 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/gnu/packages/machine-learning.scm 
b/gnu/packages/machine-learning.scm
index 0c01617297..2f7e1ac5d9 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -3113,3 +3113,65 @@ Note: currently this package does not provide GPU 
support.")
      "Hmmlearn is a set of algorithms for unsupervised learning and inference
 of Hidden Markov Models.")
     (license license:bsd-3)))
+
+;; Keep this in sync with the r-torch package.
+(define-public liblantern
+  (package
+    (name "liblantern")
+    (version "0.6.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mlverse/torch";)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1gabwic46m4m7qld1yi4brw05n9jx58ri3y0pi6jf9jndfi1qnfp"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:tests? #false                   ;no test target
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'chdir
+            (lambda _ (chdir "lantern")))
+          (add-after 'chdir 'do-not-download-binaries
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "CMakeLists.txt"
+                (("find_package\\(Torch.*") "set(TORCH_CXX_FLAGS 
\"-ltorch\")\n")
+                (("retrieve_lib\\(.*") ""))
+              (setenv "LIBRARY_PATH"
+                      (string-append
+                       (search-input-directory
+                        inputs "/lib/python3.9/site-packages/torch/lib")
+                       ":" (or (getenv "LIBRARY_PATH") "")))
+              (setenv "CPLUS_INCLUDE_PATH"
+                      (string-append
+                       (search-input-directory
+                        inputs 
"lib/python3.9/site-packages/torch/include/torch/csrc/api/include/")
+                       ":"
+                       (search-input-directory
+                        inputs "lib/python3.9/site-packages/torch/include/")
+                       ":"
+                       (or (getenv "CPLUS_INCLUDE_PATH") "")))
+              (setenv "C_INCLUDE_PATH"
+                      (string-append
+                       (search-input-directory
+                        inputs "lib/python3.9/site-packages/torch/include/")
+                       ":"
+                       (or (getenv "C_INCLUDE_PATH") "")))))
+          (replace 'install
+            (lambda _
+              (install-file
+               "../build/liblantern.so"
+               (string-append #$output "/lib"))
+              (copy-recursively
+               "../lantern/include"
+               (string-append #$output "/include")))))))
+    (inputs (list python-pytorch-for-r-torch))
+    (home-page "https://github.com/mlverse/torch/";)
+    (synopsis "C API to libtorch")
+    (description
+     "Lantern provides a C API to the libtorch machine learning library.")
+    (license license:expat)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]