Skip to content

Commit

Permalink
Add cpp_flags to Ocaml_config
Browse files Browse the repository at this point in the history
Signed-off-by: Ulysse Gérard <[email protected]>
  • Loading branch information
voodoos committed Jun 30, 2020
1 parent 435df42 commit dbd4b78
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 4 deletions.
32 changes: 28 additions & 4 deletions src/ocaml-config/ocaml_config.ml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,9 @@ type t =
; ccomp_type : Ccomp_type.t
; c_compiler : string
; ocamlc_cflags : string list
; ocamlc_cppflags : string list
; ocamlopt_cflags : string list
; ocamlopt_cppflags : string list
; bytecomp_c_compiler : Prog_and_args.t
; bytecomp_c_libraries : string list
; native_c_compiler : Prog_and_args.t
Expand Down Expand Up @@ -140,8 +142,12 @@ let c_compiler t = t.c_compiler

let ocamlc_cflags t = t.ocamlc_cflags

let ocamlc_cppflags t = t.ocamlc_cppflags

let ocamlopt_cflags t = t.ocamlopt_cflags

let ocamlopt_cppflags t = t.ocamlopt_cppflags

let bytecomp_c_compiler t = t.bytecomp_c_compiler

let bytecomp_c_libraries t = t.bytecomp_c_libraries
Expand Down Expand Up @@ -230,7 +236,9 @@ let to_list t : (string * Value.t) list =
; ("ccomp_type", String (Ccomp_type.to_string t.ccomp_type))
; ("c_compiler", String t.c_compiler)
; ("ocamlc_cflags", Words t.ocamlc_cflags)
; ("ocamlc_cppflags", Words t.ocamlc_cppflags)
; ("ocamlopt_cflags", Words t.ocamlopt_cflags)
; ("ocamlopt_cppflags", Words t.ocamlopt_cppflags)
; ("bytecomp_c_compiler", Prog_and_args t.bytecomp_c_compiler)
; ("bytecomp_c_libraries", Words t.bytecomp_c_libraries)
; ("native_c_compiler", Prog_and_args t.native_c_compiler)
Expand Down Expand Up @@ -406,16 +414,30 @@ let make vars =
get_prog_or_dummy_exn vars "bytecomp_c_compiler"
in
let native_c_compiler = get_prog_or_dummy_exn vars "native_c_compiler" in
let c_compiler, ocamlc_cflags, ocamlopt_cflags =
let ( c_compiler
, ocamlc_cflags
, ocamlc_cppflags
, ocamlopt_cflags
, ocamlopt_cppflags ) =
match get_prog_or_dummy vars "c_compiler" with
| Some { prog; args } ->
(* >= 4.06 *)
(* >= 4.06 GPR#1114, GPR#1393, GPR#1429: refine the (ocamlc -config)
information on C compilers: the variables
{bytecode,native}_c_compiler are deprecated (the distinction is now
mostly meaningless) in favor of a single c_compiler variable combined
with ocaml{c,opt}_cflags and ocaml{c,opt}_cppflags. *)
let get_flags var = args @ get_words vars var in
(prog, get_flags "ocamlc_cflags", get_flags "ocamlopt_cflags")
( prog
, get_flags "ocamlc_cflags"
, get_flags "ocamlc_cppflags"
, get_flags "ocamlopt_cflags"
, get_flags "ocamlopt_cppflags" )
| None ->
( bytecomp_c_compiler.prog
, bytecomp_c_compiler.args
, native_c_compiler.args )
, []
, native_c_compiler.args
, [] )
in
let version_string = get vars "version" in
let version =
Expand Down Expand Up @@ -510,7 +532,9 @@ let make vars =
; ccomp_type
; c_compiler
; ocamlc_cflags
; ocamlc_cppflags
; ocamlopt_cflags
; ocamlopt_cppflags
; bytecomp_c_compiler
; bytecomp_c_libraries
; native_c_compiler
Expand Down
4 changes: 4 additions & 0 deletions src/ocaml-config/ocaml_config.mli
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,12 @@ val c_compiler : t -> string

val ocamlc_cflags : t -> string list

val ocamlc_cppflags : t -> string list

val ocamlopt_cflags : t -> string list

val ocamlopt_cppflags : t -> string list

val bytecomp_c_compiler : t -> Prog_and_args.t

val bytecomp_c_libraries : t -> string list
Expand Down

0 comments on commit dbd4b78

Please sign in to comment.