diff --git a/src/configurator/v1.ml b/src/configurator/v1.ml index 1a159b40..154c6f37 100644 --- a/src/configurator/v1.ml +++ b/src/configurator/v1.ml @@ -419,14 +419,18 @@ module Pkg_config = struct end let main ?(args=[]) ~name f = - let ocamlc = ref None in + let ocamlc = ref ( + match Sys.getenv "DUNE_CONFIGURATOR" with + | s -> Some s + | exception Not_found -> + die "Configurator scripts must be ran with jbuilder. \ + To manually run a script, use $ jbuilder exec." + ) 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" - ; "-verbose", Arg.Set verbose, + ([ "-verbose", Arg.Set verbose, " be verbose" ; "-dest-dir", Arg.String (fun s -> dest_dir := Some s), "DIR save temporary files to this directory" diff --git a/src/context.ml b/src/context.ml index 4d0a90d8..4528c30f 100644 --- a/src/context.ml +++ b/src/context.ml @@ -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) diff --git a/test/blackbox-tests/test-cases/configurator/config/run.ml b/test/blackbox-tests/test-cases/configurator/config/run.ml index b6f088d5..41bc97f0 100644 --- a/test/blackbox-tests/test-cases/configurator/config/run.ml +++ b/test/blackbox-tests/test-cases/configurator/config/run.ml @@ -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" diff --git a/test/blackbox-tests/test-cases/configurator/run.t b/test/blackbox-tests/test-cases/configurator/run.t index 9fbda06e..d5fc8675 100644 --- a/test/blackbox-tests/test-cases/configurator/run.t +++ b/test/blackbox-tests/test-cases/configurator/run.t @@ -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