package jenga

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

A scheme describes, for a given directory, what rules are available in that directory. A scheme can include computation (in the form of Scheme.dep) but there are limits to what can be done, because jenga will reject anything that looks like a dependency cycle.

type t
val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
val empty : t
val rules : ?sources:Path.t list -> Rule.t list -> t
val sources : Path.t list -> t
val dep : t Dep.t -> t

Evaluates the schemes sequentially, which means that latter schemes can depend (using glob) on the targets of the former schemes.

val all : t list -> t

Evaluates the schemes sequentially, which means that latter schemes can depend (using glob) on the targets of the former schemes.

val rules_dep : Rule.t list Dep.t -> t
val contents : Path.t -> (string -> t) -> t
val glob : Glob.t -> (Path.t list -> t) -> t

Used to glob the directory of the current scheme, without causing dependency cycles. It is an error if any rule created after this glob is matched by the glob.