]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/matitadep.ml
ocaml 3.09 transition
[helm.git] / helm / matita / matitadep.ml
index 5a73c099bee3866cd1d8294c3a6e8e0e13c5c573..5b22cb70b9cbe9abce580c4d254a0344b009a3d4 100644 (file)
  * http://helm.cs.unibo.it/
  *)
 
-let paths_to_search_in = ref [];;
-
-let add_l l = fun s -> l := s :: !l ;;
-
-let arg_spec = [
-  "-I", Arg.String (add_l paths_to_search_in), 
-    "<path> Adds path to the list of searched paths for the include command";
-]
-let usage =
-  Printf.sprintf "MatitaDep v%s\nUsage: matitadep [options] file...\nOptions:"
-    BuildTimeConf.version
-
 module GA = GrafiteAst 
 module U = UriManager
 
-(* all are maps from "file" to "something" *)
-let include_deps = Hashtbl.create (Array.length Sys.argv)
-let baseuri_of = Hashtbl.create (Array.length Sys.argv)
-let uri_deps = Hashtbl.create (Array.length Sys.argv)
-
-let buri alias = 
-  U.buri_of_uri (U.uri_of_string alias)
-
-let resolve alias current_buri=
- let buri = buri alias in
-  if buri <> current_buri then Some buri else None
-let find path = 
-  let rec aux = function
-  | [] -> close_in (open_in path); path
-  | p :: tl ->
-      try
-        close_in (open_in (p ^ "/" ^ path)); p ^ "/" ^ path
-      with Sys_error _ -> aux tl
-  in
-  let paths = !paths_to_search_in in
-  try
-    aux paths
-  with Sys_error _ as exc ->
-    MatitaLog.error ("Unable to read " ^ path);
-    MatitaLog.error ("opts.include_paths was " ^ String.concat ":" paths);
-    raise exc
-;;
-
 let main () =
-  MatitaInit.load_config_only ();
-  let files = ref [] in
-  Arg.parse arg_spec (add_l files) usage;
+  (* all are maps from "file" to "something" *)
+  let include_deps = Hashtbl.create (Array.length Sys.argv) in
+  let baseuri_of = Hashtbl.create (Array.length Sys.argv) in
+  let uri_deps = Hashtbl.create (Array.length Sys.argv) in
+  let buri alias = U.buri_of_uri (U.uri_of_string alias) in
+  let resolve alias current_buri =
+    let buri = buri alias in
+    if buri <> current_buri then Some buri else None
+  in
+  let find path = 
+    let rec aux = function
+    | [] -> close_in (open_in path); path
+    | p :: tl ->
+        try
+          close_in (open_in (p ^ "/" ^ path)); p ^ "/" ^ path
+        with Sys_error _ -> aux tl
+    in
+    let paths = Helm_registry.get_list Helm_registry.string "matita.includes" in
+    try
+      aux paths
+    with Sys_error _ as exc ->
+      MatitaLog.error ("Unable to read " ^ path);
+      MatitaLog.error ("opts.include_paths was " ^ String.concat ":" paths);
+      raise exc
+  in
+  MatitaInit.load_configuration_file ();
+  MatitaInit.parse_cmdline ();
   List.iter
    (fun file -> 
     let ic = open_in file in
@@ -88,13 +71,13 @@ let main () =
       | GrafiteAst.IncludeDep path -> 
           try 
             let ma_file = if path <> "coq.ma" then find path else path in
-            let moo_file = MatitaMisc.obj_file_of_script ma_file in
+            let moo_file = MatitacleanLib.obj_file_of_script ma_file in
             Hashtbl.add include_deps file moo_file
           with Sys_error _ -> 
             MatitaLog.warn 
               ("Unable to find " ^ path ^ " that is included in " ^ file))
     dependencies)
-  !files;
+  (Helm_registry.get_list Helm_registry.string "matita.args");
   Hashtbl.iter 
     (fun file alias -> 
       let dep = resolve alias (Hashtbl.find baseuri_of file) in
@@ -107,13 +90,10 @@ let main () =
    (fun file -> 
     let deps = Hashtbl.find_all include_deps file in
     let deps = List.fast_sort Pervasives.compare deps in
-    let deps = MatitaMisc.list_uniq deps in
+    let deps = HExtlib.list_uniq deps in
     let deps = file :: deps in
-    let moo = MatitaMisc.obj_file_of_script file in
+    let moo = MatitacleanLib.obj_file_of_script file in
      Printf.printf "%s: %s\n" moo (String.concat " " deps);
      Printf.printf "%s: %s\n" (Pcre.replace ~pat:"ma$" ~templ:"mo" file) moo)
-  !files
-;;
-  
-let _ =
-  main ()
+   (Helm_registry.get_list Helm_registry.string "matita.args")
+