diff --git a/pkgs/development/ocaml-modules/llvm/default.nix b/pkgs/development/ocaml-modules/llvm/default.nix index 351a773a6f7..3bced92cc3e 100644 --- a/pkgs/development/ocaml-modules/llvm/default.nix +++ b/pkgs/development/ocaml-modules/llvm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, python, llvm, ocaml, findlib, ctypes }: +{ stdenv, fetchpatch, python, cmake, llvm, ocaml, findlib, ctypes }: let version = stdenv.lib.getVersion llvm; in @@ -7,21 +7,23 @@ stdenv.mkDerivation { inherit (llvm) src; - buildInputs = [ python llvm ocaml findlib ctypes ]; + buildInputs = [ python cmake llvm ocaml findlib ctypes ]; - configurePhase = '' - mkdir build - cd build - ../configure --disable-compiler-version-checks --prefix=$out \ - --disable-doxygen --disable-docs --with-ocaml-libdir=$OCAMLFIND_DESTDIR/llvm \ - --enable-static - ''; + patches = [ (fetchpatch { + url = https://raw.githubusercontent.com/ocaml/opam-repository/master/packages/llvm/llvm.3.9/files/cmake.patch; + sha256 = "1fcc6ylfiw1npdhx7mrsj7h0dx7cym7i9664kpr76zqazb52ikm9"; + })]; - enableParallelBuilding = false; + cmakeFlags = [ "-DLLVM_OCAML_OUT_OF_TREE=TRUE" ]; - makeFlags = [ "-C bindings" "SYSTEM_LLVM_CONFIG=llvm-config" ]; + buildFlags = "ocaml_all"; + + installFlags = "-C bindings/ocaml"; postInstall = '' + mv $out/lib/ocaml $out/ocaml + mkdir -p $OCAMLFIND_DESTDIR/ + mv $out/ocaml $OCAMLFIND_DESTDIR/llvm mv $OCAMLFIND_DESTDIR/llvm/META{.llvm,} ''; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index f3f535bb085..bb4d2abed22 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -261,7 +261,7 @@ let else lambdaTerm-1_6; llvm = callPackage ../development/ocaml-modules/llvm { - llvm = pkgs.llvm_37; + llvm = pkgs.llvm_39; }; logs = callPackage ../development/ocaml-modules/logs {