about summary refs log tree commit diff
path: root/pkgs/development/coq-modules/serapi/8.10.0+0.7.2.patch
blob: c3434f697ff46830c54013168e1d6797c7699e2d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
diff --git a/serapi/serapi_paths.ml b/serapi/serapi_paths.ml
index 17cbb98..1fd85a0 100644
--- a/serapi/serapi_paths.ml
+++ b/serapi/serapi_paths.ml
@@ -23,10 +23,10 @@
 let coq_loadpath_default ~implicit ~coq_path =
   let open Mltop in
   let mk_path prefix = coq_path ^ "/" ^ prefix in
-  let mk_lp ~ml ~root ~dir ~implicit =
+  let mk_lp ~ml ~root ~dir ~implicit ~absolute =
     { recursive = true;
       path_spec = VoPath {
-          unix_path = mk_path dir;
+          unix_path = if absolute then dir else mk_path dir;
           coq_path  = root;
           has_ml    = ml;
           implicit;
@@ -35,10 +35,12 @@ let coq_loadpath_default ~implicit ~coq_path =
   (* in 8.8 we can use Libnames.default_* *)
   let coq_root     = Names.DirPath.make [Libnames.coq_root] in
   let default_root = Libnames.default_root_prefix in
-  [mk_lp ~ml:AddRecML ~root:coq_root     ~implicit       ~dir:"plugins";
-   mk_lp ~ml:AddNoML  ~root:coq_root     ~implicit       ~dir:"theories";
-   mk_lp ~ml:AddRecML ~root:default_root ~implicit:false ~dir:"user-contrib";
-  ]
+  [mk_lp ~ml:AddRecML ~root:coq_root     ~implicit       ~dir:"plugins" ~absolute:false;
+   mk_lp ~ml:AddNoML  ~root:coq_root     ~implicit       ~dir:"theories" ~absolute:false;
+   mk_lp ~ml:AddRecML ~root:default_root ~implicit:false ~dir:"user-contrib" ~absolute:false;
+  ] @
+  List.map (fun dir -> mk_lp ~ml:AddRecML ~root:default_root ~implicit:false ~dir ~absolute:true)
+    Envars.coqpath
 
 (******************************************************************************)
 (* Generate a module name given a file                                        *)