summary refs log tree commit diff
path: root/pkgs/development/ocaml-modules
diff options
context:
space:
mode:
authorVincent Laporte <Vincent.Laporte@gmail.com>2016-12-04 11:13:32 +0000
committerVincent Laporte <Vincent.Laporte@gmail.com>2017-01-13 06:38:10 +0000
commit6636dfa845f0290cc8fb7c8c59e9e33d12ef2269 (patch)
treec4f259314264d744c97fc28d95df8874122fd674 /pkgs/development/ocaml-modules
parent67a245356dd9388ea5495546d33e3d1312730408 (diff)
downloadnixlib-6636dfa845f0290cc8fb7c8c59e9e33d12ef2269.tar
nixlib-6636dfa845f0290cc8fb7c8c59e9e33d12ef2269.tar.gz
nixlib-6636dfa845f0290cc8fb7c8c59e9e33d12ef2269.tar.bz2
nixlib-6636dfa845f0290cc8fb7c8c59e9e33d12ef2269.tar.lz
nixlib-6636dfa845f0290cc8fb7c8c59e9e33d12ef2269.tar.xz
nixlib-6636dfa845f0290cc8fb7c8c59e9e33d12ef2269.tar.zst
nixlib-6636dfa845f0290cc8fb7c8c59e9e33d12ef2269.zip
ocamlPackages.ocb-stubblr: init at 0.1.0
Diffstat (limited to 'pkgs/development/ocaml-modules')
-rw-r--r--pkgs/development/ocaml-modules/ocb-stubblr/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/ocb-stubblr/pkg-config.patch25
2 files changed, 51 insertions, 0 deletions
diff --git a/pkgs/development/ocaml-modules/ocb-stubblr/default.nix b/pkgs/development/ocaml-modules/ocb-stubblr/default.nix
new file mode 100644
index 000000000000..bb4b24cec67d
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocb-stubblr/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchzip, ocaml, findlib, ocamlbuild, opam, topkg, astring }:
+
+stdenv.mkDerivation {
+  name = "ocaml${ocaml.version}-ocb-stubblr-0.1.0";
+  src = fetchzip {
+    url = http://github.com/pqwy/ocb-stubblr/releases/download/v0.1.0/ocb-stubblr-0.1.0.tbz;
+    name = "src.tar.bz";
+    sha256 = "0hpds1lkq4j8wgslv7hnirgfrjmqi36h5rarpw9mwf24gfp5ays2";
+  };
+
+  patches = [ ./pkg-config.patch ];
+
+  buildInputs = [ ocaml findlib ocamlbuild opam topkg ];
+
+  propagatedBuildInputs = [ astring ];
+
+  inherit (topkg) buildPhase installPhase;
+
+  meta = {
+    description = "OCamlbuild plugin for C stubs";
+    homepage = https://github.com/pqwy/ocb-stubblr;
+    license = stdenv.lib.licenses.isc;
+    inherit (ocaml.meta) platforms;
+    maintainers = [ stdenv.lib.maintainers.vbgl ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ocb-stubblr/pkg-config.patch b/pkgs/development/ocaml-modules/ocb-stubblr/pkg-config.patch
new file mode 100644
index 000000000000..d86b3f8da9f1
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocb-stubblr/pkg-config.patch
@@ -0,0 +1,25 @@
+--- a/src/ocb_stubblr.ml	1970-01-01 00:00:01.000000000 +0000
++++ b/src/ocb_stubblr.ml	2016-12-04 11:10:10.000000000 +0000
+@@ -31,20 +31,9 @@
+ 
+   (* XXX Would be nice to move pkg-config results to a build artefact. *)
+ 
+-  let opam_prefix =
+-    let cmd = "opam config var prefix" in
+-    lazy ( try run_and_read cmd with Failure _ ->
+-            error_msgf "error running opam")
+-
+-  let var = "PKG_CONFIG_PATH"
+-
+-  let path () =
+-    Lazy.force opam_prefix / "lib" / "pkgconfig" ::
+-      (try [Sys.getenv var] with Not_found -> []) |> String.concat ~sep:":"
+-
+   let run ~flags package =
+-    let cmd = strf "%s=%s pkg-config %s %s 2>/dev/null"
+-              var (path ()) package (String.concat ~sep:" " flags) in
++    let cmd = strf "pkg-config %s %s 2>/dev/null"
++              package (String.concat ~sep:" " flags) in
+     try `Res (run_and_read cmd) with Failure _ -> `Nonexistent
+ end
+