(** Represent the output of [ocamlc -config]. This library is internal to jbuilder and guarantees no API stability. *) open Stdune (** Represent a parsed and interpreted output of [ocamlc -config] *) type t val sexp_of_t : t -> Usexp.t module Prog_and_args : sig type t = { prog : string ; args : string list } end (** {1 Raw bindings} *) (** Represent the parsed but uninterpreted output of [ocamlc -config] *) module Vars : sig type t = string String.Map.t (** Parse the output of [ocamlc -config] given as a list of lines. *) val of_lines : string list -> (t, string) Result.t end (** {1 Creation} *) (** Interpret raw bindings *) val make : Vars.t -> (t, string) Result.t (** {1 Query} *) (** The following parameters match the variables in the output of [ocamlc -config] but are stable across versions of OCaml. *) val version : t -> int * int * int val version_string : t -> string val standard_library_default : t -> string val standard_library : t -> string val standard_runtime : t -> string val ccomp_type : t -> string val c_compiler : t -> string val ocamlc_cflags : t -> string list val ocamlopt_cflags : t -> string list val bytecomp_c_compiler : t -> Prog_and_args.t val bytecomp_c_libraries : t -> string list val native_c_compiler : t -> Prog_and_args.t val native_c_libraries : t -> string list val cc_profile : t -> string list val architecture : t -> string val model : t -> string val int_size : t -> int val word_size : t -> int val system : t -> string val asm : t -> Prog_and_args.t val asm_cfi_supported : t -> bool val with_frame_pointers : t -> bool val ext_exe : t -> string val ext_obj : t -> string val ext_asm : t -> string val ext_lib : t -> string val ext_dll : t -> string val os_type : t -> string val default_executable_name : t -> string val systhread_supported : t -> bool val host : t -> string val target : t -> string val profiling : t -> bool val flambda : t -> bool val spacetime : t -> bool val safe_string : t -> bool val exec_magic_number : t -> string val cmi_magic_number : t -> string val cmo_magic_number : t -> string val cma_magic_number : t -> string val cmx_magic_number : t -> string val cmxa_magic_number : t -> string val ast_impl_magic_number : t -> string val ast_intf_magic_number : t -> string val cmxs_magic_number : t -> string val cmt_magic_number : t -> string val natdynlink_supported : t -> bool (** {1 Values} *) module Value : sig type t = | Bool of bool | Int of int | String of string | Words of string list | Prog_and_args of Prog_and_args.t val to_string : t -> string val sexp_of_t : t -> Usexp.t end val to_list : t -> (string * Value.t) list