From 69c5a4a79dfb0da7c0488c8bbdb1de49f266a271 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Dimino?= Date: Fri, 16 Mar 2018 11:10:22 +0800 Subject: [PATCH] Implement Lib.package Gets the opam package of a library for a public or installed library --- src/lib.ml | 9 +++++++++ src/lib.mli | 2 ++ 2 files changed, 11 insertions(+) diff --git a/src/lib.ml b/src/lib.ml index 7adf0b37..78a59520 100644 --- a/src/lib.ml +++ b/src/lib.ml @@ -353,6 +353,15 @@ let is_local t = Path.is_local t.obj_dir let status t = t.status +let package t = + match t.status with + | Installed -> + Some (Findlib.root_package_name t.name + |> Package.Name.of_string) + | Public p -> Some p.name + | Private _ -> + None + let to_id t : Id.t = { unique_id = t.unique_id ; path = t.src_dir diff --git a/src/lib.mli b/src/lib.mli index b6a67bbf..dee866de 100644 --- a/src/lib.mli +++ b/src/lib.mli @@ -43,6 +43,8 @@ end val status : t -> Status.t +val package : t -> Package.Name.t option + (** Operations on list of libraries *) module L : sig type nonrec t = t list