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.

OCaml

Innovation. Community. Security.