summary refs log tree commit diff
path: root/gnu/packages/julia-xyz.scm
diff options
context:
space:
mode:
authornixo <nicolo@nixo.xyz>2021-01-19 11:23:10 +0100
committerLudovic Courtès <ludo@gnu.org>2021-03-20 22:29:14 +0100
commita06db9c1ee8b36021d384e7552f1cf1c41208517 (patch)
treef2e78a59f7d5d01f73ba20ed5df9ebdb12870fb2 /gnu/packages/julia-xyz.scm
parent03010d5d3efd4ac19c4bddea67cbfe09c129db8d (diff)
downloadguix-a06db9c1ee8b36021d384e7552f1cf1c41208517.tar.gz
gnu: Add julia-jllwrappers.
* gnu/packages/julia-xyz.scm (julia-jllwrappers): New variable.
* doc/guix.texi (julia-build-system): Document how to use jllwrappers to use
  to guix binary packages.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/julia-xyz.scm')
-rw-r--r--gnu/packages/julia-xyz.scm43
1 files changed, 43 insertions, 0 deletions
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 09043c593b..b89733c412 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -147,6 +147,49 @@ scaled by a constant factor.  Consequently, they have a fixed number of
 digits (bits) after the decimal (radix) point.")
     (license license:expat)))
 
+(define-public julia-jllwrappers
+  (package
+    (name "julia-jllwrappers")
+    (version "1.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/JuliaPackaging/JLLWrappers.jl")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1sj3mi2dcc13apqfpy401wic5n0pgbck1p98b2g3zw0mln9s83m4"))))
+    (arguments
+     ;; Wants to download stuff
+     '(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'custom-override-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Make @generate_wrapper_header take an optional argument that
+             ;; guix packagers can pass to override the default "override"
+             ;; binary path.  This won't be needed when something like
+             ;; https://github.com/JuliaPackaging/JLLWrappers.jl/pull/27
+             ;; will be merged.
+             (substitute* "src/wrapper_generators.jl"
+               (("generate_wrapper_header.*")
+                "generate_wrapper_header(src_name, override_path = nothing)\n")
+               (("pkg_dir = .*" all)
+                (string-append
+                 all "\n" "override = something(override_path,"
+                 "joinpath(dirname(pkg_dir), \"override\"))\n"))
+               (("@static if isdir.*") "@static if isdir($override)\n")
+               (("return joinpath.*") "return $override\n"))
+             #t)))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/JuliaPackaging/JLLWrappers.jl")
+    (synopsis "Julia macros used by JLL packages")
+    (description "This package contains Julia macros that enable JLL packages
+to generate themselves.  It is not intended to be used by users, but rather is
+used in autogenerated packages via @code{BinaryBuilder.jl}.")
+    (license license:expat)))
+
 (define-public julia-json
   (package
     (name "julia-json")