module Unit:sig
..end
Defines a compilation unit's build products in
a build directory defined by an enclosing Assemblage.Lib
or Assemblage.Bin
part.
typeocaml_interface =
[ `Hidden | `Normal | `Opaque ]
Adds additional information about how the interface of a compilation unit should be treated.
`Normal
is for regular compilation units.`Opaque
is for compilation units with cross-module optimizations
disabled.`Hidden
is for regular compilation units whose
cmi
files are hidden (implies `Opaque
).typeocaml_unit =
[ `Both | `Ml | `Mli ]
typec_unit =
[ `Both | `C | `H ]
typekind =
[ `C of c_unit
| `Js
| `OCaml of ocaml_unit * ocaml_interface ]
val pp_kind : Format.formatter -> kind -> unit
pp_kind ppf k
prints an unspecified representation of k
on
ppf
.val kind : [< `Unit ] Assemblage.part -> kind
kind u
is the kind of u
.val dir : [< `Unit ] Assemblage.part -> Assemblage.Path.t Assemblage.Conf.value
dir u
is the directory where the unit u
is located.val ocaml : [< Assemblage.part_kind ] Assemblage.part ->
[< Assemblage.part_kind > `Unit ] Assemblage.part option
ocaml p
is Some p
iff p
is an OCaml compilation unit.val c : [< Assemblage.part_kind ] Assemblage.part ->
[< Assemblage.part_kind > `Unit ] Assemblage.part option
c p
is Some p
iff p
is a C compilation unit.val js : [< Assemblage.part_kind ] Assemblage.part ->
[< Assemblage.part_kind > `Unit ] Assemblage.part option
js p
is Some p
iff p
is a JavaScript compilation unit.val v : ?usage:Assemblage.Part.usage ->
?exists:bool Assemblage.Conf.value ->
?args:Assemblage.Args.t ->
?needs:[< `Lib | `Pkg ] Assemblage.part list ->
?dir:Assemblage.Path.t Assemblage.Conf.value ->
string ->
kind -> [< Assemblage.part_kind > `Unit ] Assemblage.part
v ~needs ~dir name kind
is a compilation unit named name
,
the name of the file without the suffix located in directory
dir
(defaults to Assemblage.root
) of kind kind
. needs
indicate the
project libraries and packages that are needed to compile the
unit. The args
bundle is used by the unit's actions according
to context.