module OASISFindlib

: sig
type library_name = OASISTypes.name
type findlib_part_name = OASISTypes.name
type 'a map_of_findlib_part_name = 'a OASISUtils.MapString.t
exception InternalLibraryNotFound of library_name
exception FindlibPackageNotFound of OASISTypes.findlib_name
type group_t =
# | Container of findlib_part_name * group_t list

Library groups are organized in trees.

val findlib_mapping : OASISTypes.package -> group_t list * (library_name -> OASISTypes.findlib_name) * (OASISTypes.findlib_name -> library_name)

Compute groups of libraries, associate root libraries with a tree of its children. A group of libraries is defined by the fact that these libraries have a parental relationship and must be installed together, with the same META file.

val findlib_of_group : group_t -> OASISTypes.findlib_name

Return the findlib root name of a group, it takes into account containers. So the return group name is the toplevel name for both libraries and theirs containers.

val root_of_group : group_t -> OASISTypes.common_section * OASISTypes.build_section * [
| `Library of OASISTypes.library
| `Object of OASISTypes.object_

Return the root library, i.e. the first found into the group tree that has no parent.