Module Assemblage.Private.Project

module Project: sig .. end
Projects.

Important. Project values may depend on the configuration it is the driver's responsability to set a project's configuration with Assemblage.Private.Project.with_conf otherwise warnings are reported on configuration use.



Project


include Assemblage.Project
val exists : Assemblage.project -> bool Assemblage.Private.Conf.value
exists p is p's condition of existence.
val args : Assemblage.project -> Assemblage.Private.Args.t
args p is p's args.
val schemes : Assemblage.project -> Assemblage.Private.Conf.scheme list
schemes p is p's configuration schemes.
val parts : Assemblage.project -> Assemblage.part_kind Assemblage.part list
parts p is p's parts.

Configuration and evaluation


val deps : Assemblage.project -> Assemblage.Private.Conf.Key.Set.t
deps p is the set of configuration keys which may be needed for evaluating the constituents of p.
val conf : Assemblage.project -> Assemblage.Private.Conf.t
conf p is the project's configuration.

Note The client should set a configuration whose domain has is at least Assemblage.Private.Project.deps p using Assemblage.Private.Project.with_conf otherwise warnings are generated.

val with_conf : Assemblage.project -> Assemblage.Private.Conf.t -> Assemblage.project
with_conf p c is p with configuration c.
val eval : Assemblage.project -> 'a Assemblage.Private.Conf.value -> 'a
eval p v is Conf.eval [conf p] v.
val eval_key : Assemblage.project -> 'a Assemblage.Private.Conf.key -> 'a
eval_key p k is eval p (Conf.value k).

Configuration dependent values


val version : Assemblage.project -> string
version p evaluates Assemblage.Conf.project_version
val products : ?kind:[ `Any | `Input | `Output | `Source ] ->
Assemblage.project -> Assemblage.Path.Set.t
products kind p is the set of products known to the project in the current configuration. kind can be used to select source, input, output or all kind of products, defaults to `Any.
val watermark_string : ?suffix:string -> t -> string
watermark_string suffix p is a watermark that can be used in the comments of generated files for the project. It consists of the project name followed by the project Assemblage.Private.Project.version followed by suffix (defaults says it was generated by assemblage).
val pp_signature : Format.formatter -> t -> unit
pp_signature ppf p prints an unspecified signature for p on ppf, includes the project name and version.

Assembled projects


val list : unit -> Assemblage.project list
list is the list of projects that were Assemblage.assembled by the library so far.