Fix c_compiler parsing for OCaml >= 4.06.0 (#393)
This commit is contained in:
parent
9ed300e5a2
commit
3776acd8d2
|
@ -337,25 +337,31 @@ let create ~(kind : Kind.t) ~path ~base_env ~env_extra ~name ~merlin
|
||||||
else
|
else
|
||||||
env,env_extra
|
env,env_extra
|
||||||
in
|
in
|
||||||
|
let split_prog s =
|
||||||
|
let len = String.length s in
|
||||||
|
let rec loop i =
|
||||||
|
if i = len then
|
||||||
|
(s, "")
|
||||||
|
else
|
||||||
|
match s.[i] with
|
||||||
|
| ' ' | '\t' ->
|
||||||
|
(String.sub s ~pos:0 ~len:i,
|
||||||
|
String.sub s ~pos:i ~len:(len - i))
|
||||||
|
| _ -> loop (i + 1)
|
||||||
|
in
|
||||||
|
loop 0
|
||||||
|
in
|
||||||
let c_compiler, ocamlc_cflags, ocamlopt_cflags =
|
let c_compiler, ocamlc_cflags, ocamlopt_cflags =
|
||||||
match get_opt "c_compiler" with
|
match get_opt "c_compiler" with
|
||||||
| Some c_compiler -> (* >= 4.06 *)
|
| Some c_compiler -> (* >= 4.06 *)
|
||||||
(c_compiler, get "ocamlc_cflags", get "ocamlopt_cflags")
|
let c_compiler, extra_args = split_prog c_compiler in
|
||||||
|
let args var =
|
||||||
|
if String.length extra_args > 0 then
|
||||||
|
sprintf "%s %s" extra_args (get var)
|
||||||
|
else
|
||||||
|
get var in
|
||||||
|
(c_compiler, args "ocamlc_cflags", args "ocamlopt_cflags")
|
||||||
| None ->
|
| None ->
|
||||||
let split_prog s =
|
|
||||||
let len = String.length s in
|
|
||||||
let rec loop i =
|
|
||||||
if i = len then
|
|
||||||
(s, "")
|
|
||||||
else
|
|
||||||
match s.[i] with
|
|
||||||
| ' ' | '\t' ->
|
|
||||||
(String.sub s ~pos:0 ~len:i,
|
|
||||||
String.sub s ~pos:i ~len:(len - i))
|
|
||||||
| _ -> loop (i + 1)
|
|
||||||
in
|
|
||||||
loop 0
|
|
||||||
in
|
|
||||||
let c_compiler, ocamlc_cflags = split_prog (get "bytecomp_c_compiler") in
|
let c_compiler, ocamlc_cflags = split_prog (get "bytecomp_c_compiler") in
|
||||||
let _, ocamlopt_cflags = split_prog (get "native_c_compiler") in
|
let _, ocamlopt_cflags = split_prog (get "native_c_compiler") in
|
||||||
(c_compiler, ocamlc_cflags, ocamlopt_cflags)
|
(c_compiler, ocamlc_cflags, ocamlopt_cflags)
|
||||||
|
|
Loading…
Reference in New Issue