B0_ocaml.Conf
Toolchain configuration.
This module provides access to the OCaml toolchain configuration as output by ocaml{c,opt} -config
.
val of_string : ?file:B0_std.Fpath.t -> string -> (t, string) Stdlib.result
of_string ~file data
parses toolchain configuration from data
as output by the compiler's -config
option assuming it was read from file file
(defaults to B0_std.Fpath.dash
).
val write : B0_memo.t -> comp:B0_memo.Tool.t -> o:B0_std.Fpath.t -> unit
write m ~o
writes the toolchain configuration to o
by running comp
with -config
.
val read : B0_memo.t -> B0_std.Fpath.t -> t B0_std.Fut.t
read m file
reads a toolchain configuration from file
.
val find : string -> t -> string option
find f c
looks up the field f
in configuration c
. See ocamlc -config
for the list of fields.
val version : t -> int * int * int * string option
version c
is the compiler version string "major.minor[.patchlevel][+additional-info]"
parsed using (major, minor, patch, additional-info)
. If patch-level
is absent it is turned into a 0
.
val where : t -> B0_std.Fpath.t
where c
is the location of OCaml's library directory.
val asm_ext : t -> B0_std.Fpath.ext
asm_ext
is the file extension for assembly files.
val dll_ext : t -> B0_std.Fpath.ext
dll_ext
is the file extension for C dynamic libraries.
val exe_ext : t -> B0_std.Fpath.ext
ext_ext
is the file extension for executable binaries.
val lib_ext : t -> B0_std.Fpath.ext
ext_lib
is the file extension for C static libraries.
val obj_ext : t -> B0_std.Fpath.ext
obj_ext
is the file extension for C object files.
val has_dynlink : t -> bool
has_dynlink
determines whether the platform supports dynamic linking.
val to_string_map : t -> string B0_std.String.Map.t
to_string_map c
are the fields of c
as a string map.
val of_string_map : string B0_std.String.Map.t -> (t, string) Stdlib.result
of_string_map m
is a configuration from string map m
. m
needs at least on key for each parsed field above otherwise the function errors.
val key : t B0_store.key
conf
is a memo key store with the OCaml configuration.
val version' : B0_build.t -> (int * int * int * string option) B0_std.Fut.t
version' b
gets Conf.version
from key
.