B0_unit
Build 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.t
The type for unit build procedures. Note that when the future determines the build may not be finished.
val proc_nop : proc
proc_nop
does nothing.
type action = build -> t -> args:string list -> B00_std.Os.Exit.t B00_std.Fut.t
The 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 ... end
include B0_def.S with type t := t
val define : ?doc:string -> ?meta:B0_meta.t -> string -> B0_def.def
define ~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.def
def v
is the definition of value v
.
val name : t -> string
name v
is v
's name.
val basename : t -> string
basename v
is v
's name without the scope.
val doc : t -> string
doc v
is v
's documentation string.
val has_meta : 'a B0_meta.key -> t -> bool
has_meta k u
is B0_meta.mem k (B0_unit.meta u)
.
val find_meta : 'a B0_meta.key -> t -> 'a option
find_meta k u
is B0_meta.find k (B0_unit.meta u)
.
val get_meta : 'a B0_meta.key -> t -> ('a, string) result
get_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 -> unit
add v
adds the value v
to the list of defined values.
val list : unit -> t list
list ()
is the list of units.
val find : string -> t option
find n
is the value named n
(if any).
val get : string -> t
get 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.t
pp_name_str v
pretty prints value names.
val pp_name : t B00_std.Fmt.t
pp_name v
formats v
's name.
val pp_doc : t B00_std.Fmt.t
pp_doc
formats v
's doc string.
val pp_synopsis : t B00_std.Fmt.t
pp_synopsis
formats v
's name and its doc string.
val pp : t B00_std.Fmt.t
pp
formats v
's name, its doc string and its metadata dictionary.