type tags = Ocamlbuild_pack.Tags.t
type t = Ocamlbuild_pack.Command.t =
| Seq of t list |
| Cmd of spec |
| Echo of string list * pathname |
| Nop |
and spec = Ocamlbuild_pack.Command.spec =
| N |
| S of spec list |
| A of string |
| P of pathname |
| Px of pathname |
| Sh of string |
| T of tags |
| V of string |
| Quote of spec |
val atomize : string list -> spec
val atomize_paths : string list -> spec
val execute : ?quiet:bool -> ?pretend:bool -> t -> unit
val execute_many : ?quiet:bool -> ?pretend:bool -> t list -> (bool list * exn) option
val setup_virtual_command_solver : string -> (unit -> spec) -> unit
val print : Stdlib.Format.formatter -> t -> unit
val to_string : t -> string
val string_of_command_spec : spec -> string
val string_target_and_tags_of_command_spec : spec -> string * string * Ocamlbuild_pack.Tags.t
val iter_tags : (Ocamlbuild_pack.Tags.t -> unit) -> t -> unit
val digest : t -> Stdlib.Digest.t
val jobs : int Stdlib.ref
val tag_handler : (Ocamlbuild_pack.Tags.t -> spec) Stdlib.ref
val deps_of_tags : Ocamlbuild_pack.Tags.t -> pathname list
val dep : Ocamlbuild_pack.Tags.elt list -> pathname list -> unit
val pdep : Ocamlbuild_pack.Tags.elt list -> Ocamlbuild_pack.Tags.elt -> (string -> pathname list) -> unit
val list_all_deps : unit -> (Ocamlbuild_pack.Tags.t * pathname list) list