B0_unitBuild units.
A build unit is a named build procedure with metadata associated to it. Build units are the smallest unit of build in B0.
The type for builds, see B0_build.
type proc = build -> unit B00_std.Fut.tThe type for unit build procedures. Note that when the future determines the build may not be finished.
val proc_nop : procproc_nop does nothing.
type action = build -> t -> args:string list -> B00_std.Os.Exit.t B00_std.Fut.tThe type for unit outcome actions. Defines an action to perform on build results. args are command line argument passed on the command line.
For example for executables a natural action is to execv them directly or via their runtime (see Action.exec). For built document files it can be to (re)load them in their corresponding viewer application, etc.
TODO. This is not a final design, see unit actions.
v n proc ~doc ~meta ~action is a build unit named n with build procedure proc, synopsis doc and metada meta.
module Action : sig ... endinclude B0_def.S with type t := tval define : ?doc:string -> ?meta:B0_meta.t -> string -> B0_def.defdefine ~doc ~meta n defines name n in the current scope with documentation string doc (defaults to "undocumented")e and metadata meta (defaults to B0_meta.empty). Defining a duplicate value in a scope raises Duplicate.
val def : t -> B0_def.defdef v is the definition of value v.
val name : t -> stringname v is v's name.
val basename : t -> stringbasename v is v's name without the scope.
val doc : t -> stringdoc v is v's documentation string.
val has_meta : 'a B0_meta.key -> t -> boolhas_meta k u is B0_meta.mem k (B0_unit.meta u).
val find_meta : 'a B0_meta.key -> t -> 'a optionfind_meta k u is B0_meta.find k (B0_unit.meta u).
val get_meta : 'a B0_meta.key -> t -> ('a, string) resultget_meta m k u is Ok v if find_meta k u is Some v and a final user friendly error message if None.
val add : t -> unitadd v adds the value v to the list of defined values.
val list : unit -> t listlist () is the list of units.
val find : string -> t optionfind n is the value named n (if any).
val get : string -> tget n looks up the value named n and errors the B0 file if there no such n.
get_or_suggest n is the value named n or a (possibly empty) list of suggested values whose name could match n.
get_or_hint n is the value named n or an error message that indicates that n could not be found with suggested names.
get_list_or_hint ns are the value named ns or an error that indicates the names that could not be found with suggested names. If empty_means_all is true (defaults to false) an empty ns returns list () sorted by name.
val pp_name_str : string B00_std.Fmt.tpp_name_str v pretty prints value names.
val pp_name : t B00_std.Fmt.tpp_name v formats v's name.
val pp_doc : t B00_std.Fmt.tpp_doc formats v's doc string.
val pp_synopsis : t B00_std.Fmt.tpp_synopsis formats v's name and its doc string.
val pp : t B00_std.Fmt.tpp formats v 's name, its doc string and its metadata dictionary.