aboutsummaryrefslogtreecommitdiff
path: root/lib/envars.ml
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2018-10-02 15:34:04 +0200
committerPierre-Marie Pédrot2018-10-02 15:34:04 +0200
commite65d160d5fa4e0b8b5754b0925b0b5a880523bc5 (patch)
tree21600f3e1fbb6fb82ccf941d6f4246968eb541d6 /lib/envars.ml
parent5424ad236574e22a7ef2dce0d1d9468a9b768a16 (diff)
parent8c40e6eb7f5bd2421ed6a22a0b44490f3d1fb9ef (diff)
Merge PR #8572: [config] Miscellaneous cleaning of configuration variables.
Diffstat (limited to 'lib/envars.ml')
-rw-r--r--lib/envars.ml51
1 files changed, 10 insertions, 41 deletions
diff --git a/lib/envars.ml b/lib/envars.ml
index 3ee0c7106b..cf76b6ebc8 100644
--- a/lib/envars.ml
+++ b/lib/envars.ml
@@ -36,21 +36,6 @@ let path_to_list p =
let sep = if String.equal Sys.os_type "Win32" then ';' else ':' in
String.split sep p
-let user_path () =
- path_to_list (Sys.getenv "PATH") (* may raise Not_found *)
-
-(* Finding a name in path using the equality provided by the file system *)
-(* whether it is case-sensitive or case-insensitive *)
-let rec which l f =
- match l with
- | [] ->
- raise Not_found
- | p :: tl ->
- if Sys.file_exists (p / f) then
- p
- else
- which tl f
-
let expand_path_macros ~warn s =
let rec expand_atom s i =
let l = String.length s in
@@ -120,14 +105,19 @@ let guess_coqlib fail =
fail "cannot guess a path for Coq libraries; please use -coqlib option")
)
+let coqlib : string option ref = ref None
+let set_user_coqlib path = coqlib := Some path
+
(** coqlib is now computed once during coqtop initialization *)
let set_coqlib ~fail =
- if not !Flags.coqlib_spec then
+ match !coqlib with
+ | Some _ -> ()
+ | None ->
let lib = if !Flags.boot then coqroot else guess_coqlib fail in
- Flags.coqlib := lib
+ coqlib := Some lib
-let coqlib () = !Flags.coqlib
+let coqlib () = Option.default "" !coqlib
let docdir () =
(* This assumes implicitly that the suffix is non-trivial *)
@@ -155,29 +145,8 @@ let coqpath =
(** {2 Caml paths} *)
-let exe s = s ^ Coq_config.exec_extension
-
let ocamlfind () = Coq_config.ocamlfind
-(** {2 Camlp5 paths} *)
-
-let guess_camlp5bin () = which (user_path ()) (exe "camlp5")
-
-let camlp5bin () =
- if !Flags.boot then Coq_config.camlp5bin else
- try guess_camlp5bin ()
- with Not_found ->
- Coq_config.camlp5bin
-
-let camlp5lib () =
- if !Flags.boot then
- Coq_config.camlp5lib
- else
- let ex, res = CUnix.run_command (ocamlfind () ^ " query camlp5") in
- match ex with
- | Unix.WEXITED 0 -> String.strip res
- | _ -> "/dev/null"
-
(** {1 XDG utilities} *)
let xdg_data_home warn =
@@ -209,8 +178,8 @@ let print_config ?(prefix_var_name="") f coq_src_subdirs =
fprintf f "%sDOCDIR=%s/\n" prefix_var_name (docdir ());
fprintf f "%sOCAMLFIND=%s\n" prefix_var_name (ocamlfind ());
fprintf f "%sCAMLP5O=%s\n" prefix_var_name Coq_config.camlp5o;
- fprintf f "%sCAMLP5BIN=%s/\n" prefix_var_name (camlp5bin ());
- fprintf f "%sCAMLP5LIB=%s\n" prefix_var_name (camlp5lib ());
+ fprintf f "%sCAMLP5BIN=%s/\n" prefix_var_name Coq_config.camlp5bin;
+ fprintf f "%sCAMLP5LIB=%s\n" prefix_var_name Coq_config.camlp5lib;
fprintf f "%sCAMLP5OPTIONS=%s\n" prefix_var_name Coq_config.camlp5compat;
fprintf f "%sCAMLFLAGS=%s\n" prefix_var_name Coq_config.caml_flags;
fprintf f "%sHASNATDYNLINK=%s\n" prefix_var_name