# Module BaseBuilt

    module BaseBuilt: sig .. end

Register files built to be installed

- Author(s): Sylvain Le Gall

    type t =

`|` | `BExec`
`|` | `BExecLib`
`|` | `BLib`
`|` | `BObj`
`|` | `BDoc`

    val register : ctxt:OASISContext.t ->
           t -> OASISTypes.name -> OASISTypes.host_filename list list -> unit

Register files built. Each files built is provided as a list of alternatives. At least one alternative file should exist when registering and we only register existing ones.

    val unregister : ctxt:OASISContext.t -> t -> OASISTypes.name -> unit

Unregister all files built.

    val fold : ctxt:OASISContext.t ->
           t ->
           OASISTypes.name -> ('a -> OASISTypes.host_filename -> 'a) -> 'a -> 'a

Fold-left files built, filter existing and non-existing files.

    val is_built : ctxt:OASISContext.t -> t -> OASISTypes.name -> bool

Check if a library/object/doc/exec has been built.

    val of_executable : (OASISTypes.unix_filename -> OASISTypes.host_filename) ->
           OASISTypes.common_section * OASISTypes.build_section * OASISTypes.executable ->
           (t * OASISTypes.name * OASISTypes.host_filename list list) list *
           OASISTypes.unix_filename * OASISTypes.unix_filename option

`of_executable loc_fn (cs, bs, exec)` Compute at the same time events that should be registered by `BaseBuilt.register` and data returned by `OASISExecutable.unix_exec_is`. Use `loc_fn`, if generated files are moved to a directory different from sources (e.g. in directory "_build").

    val of_library : (OASISTypes.unix_filename -> OASISTypes.host_filename) ->
           OASISTypes.common_section * OASISTypes.build_section * OASISTypes.library ->
           (t * OASISTypes.name * OASISTypes.host_filename list list) list *
           OASISTypes.unix_filename list list

`of_library loc_fn (cs, bs, lib)` Same as `BaseBuilt.of_executable`, but using `OASISLibrary.generated_unix_files`.

    val of_object : (OASISTypes.unix_filename -> OASISTypes.host_filename) ->
           OASISTypes.common_section * OASISTypes.build_section * OASISTypes.object_ ->
           (t * OASISTypes.name * OASISTypes.host_filename list list) list *
           OASISTypes.unix_filename list list

`of_object loc_fn (cs, bs, lib)` Same as `BaseBuilt.of_executable`, but using `OASISObject.generated_unix_files`.