Pass ocamlc explicitly to configurator using DUNE_CONFIGURATOR

This commit is contained in:
Rudi Grinberg 2018-04-11 21:26:51 +07:00
parent 7a3917b9e3
commit d65845abb8
4 changed files with 9 additions and 2 deletions

View File

@ -419,13 +419,14 @@ module Pkg_config = struct
end
let main ?(args=[]) ~name f =
let ocamlc = ref None in
let ocamlc = ref (Sys.getenv_opt "DUNE_CONFIGURATOR") in
let verbose = ref false in
let dest_dir = ref None in
let args =
Arg.align
([ "-ocamlc", Arg.String (fun s -> ocamlc := Some s),
"PATH ocamlc command to use"
"PATH ocamlc command to use. \
This value is set automatically when configurator is invoked by dune."
; "-verbose", Arg.Set verbose,
" be verbose"
; "-dest-dir", Arg.String (fun s -> dest_dir := Some s),

View File

@ -303,6 +303,7 @@ let create ~(kind : Kind.t) ~path ~env ~name ~merlin ~targets () =
"lib")
; extend_var "MANPATH"
(Config.local_install_man_dir ~context:name)
; "DUNE_CONFIGURATOR", (Path.to_string ocamlc)
]
in
Env.extend env ~vars:(Env.Map.of_list_exn vars)

View File

@ -1,6 +1,10 @@
module Configurator = Configurator.V1
let () =
begin match Sys.getenv_opt "DUNE_CONFIGURATOR" with
| None -> failwith "DUNE_CONFIGURATOR is not passed"
| Some _ -> print_endline "DUNE_CONFIGURATOR is present"
end;
Configurator.main ~name:"config" (fun t ->
match Configurator.ocaml_config_var t "version" with
| None -> failwith "version is absent"

View File

@ -1,5 +1,6 @@
Show that config values are present
$ jbuilder exec config/run.exe
DUNE_CONFIGURATOR is present
version is present
We're able to compile C program sucessfully