sig
module Pathname : PATHNAME
module Tags : TAGS
module Command :
sig
type tags = Tags.t
type pathname = Pathname.t
type t =
Seq of t list
| Cmd of spec
| Echo of string list * pathname
| Nop
and 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 search_in_path : string -> string
val reduce : spec -> spec
val print : Format.formatter -> t -> unit
val to_string : t -> string
val string_of_command_spec : spec -> string
end
module Outcome : OUTCOME
module String : STRING
module List : LIST
module StringSet :
sig
type elt = String.t
type t
val empty : t
val is_empty : t -> bool
val mem : elt -> t -> bool
val add : elt -> t -> t
val singleton : elt -> t
val remove : elt -> t -> t
val union : t -> t -> t
val inter : t -> t -> t
val diff : t -> t -> t
val compare : t -> t -> int
val equal : t -> t -> bool
val subset : t -> t -> bool
val iter : (elt -> unit) -> t -> unit
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
val for_all : (elt -> bool) -> t -> bool
val exists : (elt -> bool) -> t -> bool
val filter : (elt -> bool) -> t -> t
val partition : (elt -> bool) -> t -> t * t
val cardinal : t -> int
val elements : t -> elt list
val min_elt : t -> elt
val max_elt : t -> elt
val choose : t -> elt
val split : elt -> t -> t * bool * t
end
module Options :
sig
type command_spec = Command.spec
val build_dir : string ref
val include_dirs : string list ref
val exclude_dirs : string list ref
val nothing_should_be_rebuilt : bool ref
val ocamlc : command_spec ref
val ocamlopt : command_spec ref
val ocamldep : command_spec ref
val ocamldoc : command_spec ref
val ocamlyacc : command_spec ref
val ocamllex : command_spec ref
val ocamlrun : command_spec ref
val ocamlmklib : command_spec ref
val ocamlmktop : command_spec ref
val hygiene : bool ref
val sanitize : bool ref
val sanitization_script : string ref
val ignore_auto : bool ref
val plugin : bool ref
val just_plugin : bool ref
val native_plugin : bool ref
val make_links : bool ref
val nostdlib : bool ref
val program_to_execute : bool ref
val must_clean : bool ref
val catch_errors : bool ref
val use_menhir : bool ref
val show_documentation : bool ref
val recursive : bool ref
val targets : string list ref
val ocaml_libs : string list ref
val ocaml_cflags : string list ref
val ocaml_lflags : string list ref
val ocaml_ppflags : string list ref
val ocaml_yaccflags : string list ref
val ocaml_lexflags : string list ref
val program_args : string list ref
val ignore_list : string list ref
val tags : string list ref
val tag_lines : string list ref
val show_tags : string list ref
val ext_obj : string ref
val ext_lib : string ref
val ext_dll : string ref
end
module Arch : ARCH
val opt_print :
(Format.formatter -> 'a -> unit) -> Format.formatter -> 'a option -> unit
val the : 'a option -> 'a
val getenv : ?default:string -> string -> string
val with_input_file : ?bin:bool -> string -> (in_channel -> 'a) -> 'a
val with_output_file : ?bin:bool -> string -> (out_channel -> 'a) -> 'a
val with_temp_file : string -> string -> (string -> 'a) -> 'a
val read_file : string -> string
val copy_chan : in_channel -> out_channel -> unit
val copy_file : string -> string -> unit
val print_string_list : Format.formatter -> string list -> unit
val ( !* ) : 'a Lazy.t -> 'a
val ( & ) : ('a -> 'b) -> 'a -> 'b
val ( |> ) : 'a -> ('a -> 'b) -> 'b
val ( @:= ) : 'a list ref -> 'a list -> unit
val memo : ('a -> 'b) -> 'a -> 'b
type command =
Signatures.PLUGIN.Command.t =
Seq of Signatures.PLUGIN.command list
| Cmd of Signatures.PLUGIN.spec
| Echo of string list * Pathname.t
| Nop
and spec =
Signatures.PLUGIN.Command.spec =
N
| S of Signatures.PLUGIN.spec list
| A of string
| P of string
| Px of string
| Sh of string
| T of Tags.t
| V of string
| Quote of Signatures.PLUGIN.spec
val ( / ) : Pathname.t -> Pathname.t -> Pathname.t
val ( -.- ) : Pathname.t -> string -> Pathname.t
val ( ++ ) : Tags.t -> Tags.elt -> Tags.t
val ( -- ) : Tags.t -> Tags.elt -> Tags.t
val ( +++ ) : Tags.t -> Tags.elt option -> Tags.t
val ( --- ) : Tags.t -> Tags.elt option -> Tags.t
type env = Pathname.t -> Pathname.t
type builder = Pathname.t list list -> (Pathname.t, exn) Outcome.t list
type action =
Signatures.PLUGIN.env ->
Signatures.PLUGIN.builder -> Signatures.PLUGIN.Command.t
val rule :
string ->
?tags:string list ->
?prods:string list ->
?deps:string list ->
?prod:string ->
?dep:string ->
?stamp:string ->
?insert:[ `after of string | `before of string | `bottom | `top ] ->
Signatures.PLUGIN.action -> unit
val copy_rule :
string ->
?insert:[ `after of string | `before of string | `bottom | `top ] ->
string -> string -> unit
val dep : Tags.elt list -> Pathname.t list -> unit
val flag : Tags.elt list -> Signatures.PLUGIN.Command.spec -> unit
val flag_and_dep : Tags.elt list -> Signatures.PLUGIN.Command.spec -> unit
val non_dependency : Pathname.t -> string -> unit
val use_lib : Pathname.t -> Pathname.t -> unit
val ocaml_lib :
?extern:bool ->
?byte:bool ->
?native:bool -> ?dir:Pathname.t -> ?tag_name:string -> Pathname.t -> unit
val expand_module :
Pathname.t list -> Pathname.t -> string list -> Pathname.t list
val string_list_of_file : Pathname.t -> string list
val module_name_of_pathname : Pathname.t -> string
val mv : Pathname.t -> Pathname.t -> Signatures.PLUGIN.Command.t
val cp : Pathname.t -> Pathname.t -> Signatures.PLUGIN.Command.t
val ln_f : Pathname.t -> Pathname.t -> Signatures.PLUGIN.Command.t
val ln_s : Pathname.t -> Pathname.t -> Signatures.PLUGIN.Command.t
val rm_f : Pathname.t -> Signatures.PLUGIN.Command.t
val chmod :
Signatures.PLUGIN.Command.spec ->
Pathname.t -> Signatures.PLUGIN.Command.t
val cmp : Pathname.t -> Pathname.t -> Signatures.PLUGIN.Command.t
val hide_package_contents : string -> unit
val tag_file : Pathname.t -> Tags.elt list -> unit
val tag_any : Tags.elt list -> unit
val tags_of_pathname : Pathname.t -> Tags.t
type hook =
Before_hygiene
| After_hygiene
| Before_options
| After_options
| Before_rules
| After_rules
val dispatch : (Signatures.PLUGIN.hook -> unit) -> unit
end