Odoc docs
1(** {1 OCaml compilation unit} *)
2
3(** {2 Interface part} *)
4
5type dep = string * Digest.t
6
7type intf = { mif_hash : string; mif_path : Fpath.t; mif_deps : dep list }
8
9(** {2 Implementation part} *)
10
11type src_info = { src_path : Fpath.t }
12
13type impl = {
14 mip_path : Fpath.t;
15 mip_src_info : src_info option;
16 mip_deps : dep list;
17}
18
19(** {2 OCaml Compilation unit} *)
20
21type modulety = {
22 m_name : string;
23 m_intf : intf;
24 m_impl : impl option;
25 m_hidden : bool;
26}
27
28(** {1 Standalone pages units} *)
29
30type mld = { mld_path : Fpath.t; mld_rel_path : Fpath.t }
31
32type md = { md_path : Fpath.t; md_rel_path : Fpath.t }
33
34(** {1 Asset units} *)
35
36type asset = { asset_path : Fpath.t; asset_rel_path : Fpath.t }
37
38(** {1 Packages} *)
39
40(** Compilation units are associated to libraries, while documentation are
41 associated to package *)
42
43type libty = {
44 lib_name : string;
45 dir : Fpath.t;
46 archive_name : string option;
47 lib_deps : Util.StringSet.t;
48 modules : modulety list;
49}
50
51module Lib : sig
52 val v :
53 libname_of_archive:string Fpath.Map.t ->
54 pkg_name:string ->
55 dir:Fpath.t ->
56 all_lib_deps:Util.StringSet.t Util.StringMap.t ->
57 cmi_only_libs:(Fpath.t * string) list ->
58 libty list
59end
60
61type t = {
62 name : string;
63 version : string;
64 libraries : libty list;
65 mlds : mld list;
66 assets : asset list;
67 other_docs : md list;
68 pkg_dir : Fpath.t;
69 doc_dir : Fpath.t;
70 config : Global_config.t;
71}
72
73val mk_mlds : Opam.doc_file list -> mld list * asset list * md list
74
75val use_virtual_interfaces : t list -> t list
76(** For each module documented from a [.cmt], look for a same-name [.cmti]
77 with the same interface digest in the directories of its library's
78 findlib dependency cone, and swap it in as the input: a virtual library's
79 implementation ships only the [.cmt], while the [.mli] and its
80 documentation live with the virtual library, which the implementation's
81 META requires. *)