diff options
author | Julien Lepiller <julien@lepiller.eu> | 2021-02-16 16:38:15 +0100 |
---|---|---|
committer | Julien Lepiller <julien@lepiller.eu> | 2021-02-16 16:52:55 +0100 |
commit | 8f710cc598fb675d267f49a82cffc197f03ad52c (patch) | |
tree | 50b6c0b237d0d13606662d4f8348bf0ac3c790b2 | |
parent | 4390934f0b4a0d9208423e3b261e0f09b40eeb39 (diff) | |
download | guix-8f710cc598fb675d267f49a82cffc197f03ad52c.tar.gz |
gnu: Add ocaml-llvm.
* gnu/packages/ocaml.scm (make-ocaml-llvm, ocaml-llvm, ocaml-llvm-9) (ocaml-llvm-10, ocaml-llvm-11): New variables.
-rw-r--r-- | gnu/packages/ocaml.scm | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 03895d0a53..dec1f8405e 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -6197,3 +6197,44 @@ provides support to program with time varying values: declarative events and signals. React doesn't define any primitive event or signal, it lets the client chooses the concrete timeline.") (license license:lgpl2.1+))) + +(define (make-ocaml-llvm llvm) + (package + (inherit llvm) + (name "ocaml-llvm") + (outputs '("out")) + (arguments + `(#:configure-flags + (list + (string-append "-DLLVM_OCAML_EXTERNAL_LLVM_LIBDIR=" + (assoc-ref %build-inputs "llvm") "/lib") + "-DBUILD_SHARED_LIBS=TRUE" + "-DLLVM_OCAML_OUT_OF_TREE=TRUE" + (string-append "-DLLVM_OCAML_INSTALL_PATH=" + (assoc-ref %outputs "out") "/lib/ocaml/site-lib")) + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (invoke "make" "ocaml_all"))) + (replace 'install + (lambda _ + (invoke "cmake" "-P" "bindings/ocaml/cmake_install.cmake")))))) + (inputs + `(("llvm" ,llvm))) + (native-inputs + `(("ocaml" ,ocaml) + ("ocaml-findlib" ,ocaml-findlib) + ("ocaml-ounit" ,ocaml-ounit) + ("python" ,python))) + (propagated-inputs + `(("ocaml-integers" ,ocaml-integers) + ("ocaml-ctypes" ,ocaml-ctypes))) + (synopsis "OCaml bindings to LLVM") + (description "This package contains the OCaml bindings distributed with +LLVM."))) + +(define-public ocaml-llvm (make-ocaml-llvm llvm)) +(define-public ocaml-llvm-9 (make-ocaml-llvm llvm-9)) +(define-public ocaml-llvm-10 (make-ocaml-llvm llvm-10)) +(define-public ocaml-llvm-11 (make-ocaml-llvm llvm-11)) |