[Pkg-ocaml-maint-commits] [SCM] oasis2debian project branch, master, updated. 37e7e5530e3f26b42f5628706f10b6a0e6c42244

Sylvain Le Gall gildor at debian.org
Tue Dec 14 10:34:14 UTC 2010


The following commit has been merged in the master branch:
commit 37e7e5530e3f26b42f5628706f10b6a0e6c42244
Author: Sylvain Le Gall <gildor at debian.org>
Date:   Wed Dec 1 14:19:42 2010 +0000

    Be more precise about files installed, check .cmi/.ml/.mli...

diff --git a/src/DhFiles.ml b/src/DhFiles.ml
index c825eb1..6d7e555 100644
--- a/src/DhFiles.ml
+++ b/src/DhFiles.ml
@@ -27,6 +27,16 @@ open OASISLibrary
 open ExtString
 open Common
 
+type t = 
+  {
+    findlib_name: string;
+    has_byte:     bool;
+    has_native:   bool;
+    has_dll:      bool;
+    has_hinterf:  bool;
+    has_cmi:      bool;
+  }
+
 let create ~ctxt t = 
   let dh_with_fn deb_pkg ext = 
     debian_with_fn (deb_pkg.name^"."^ext)
@@ -75,15 +85,33 @@ let create ~ctxt t =
                   []
                   libs))
          in
-           
-         (* Has_dll *)
-         let has_dll = 
-           List.exists 
-             (fun fn -> String.ends_with fn ".so") 
+
+         let () = 
+           prerr_endline "----";
+           List.iter 
+             prerr_endline 
              generated_files
          in
+           
+         let has_extensions exts = 
+           List.fold_left
+             (fun acc ext ->
+                List.exists 
+                  (fun fn -> String.ends_with fn ext) 
+                  generated_files
+                || acc)
+             false
+             exts
+         in
 
-           findlib_name, has_dll)
+           {
+             findlib_name = findlib_name;
+             has_dll      = has_extensions [".so"];
+             has_native   = has_extensions [".cmxa"; ".cmx"];
+             has_byte     = has_extensions [".cma"; ".cmo"];
+             has_cmi      = has_extensions [".cmi"];
+             has_hinterf  = has_extensions [".ml"; ".mli"];
+           })
 
       findlib_roots
   in
@@ -105,7 +133,12 @@ let create ~ctxt t =
   in
 
   let mk_ocamldoc deb_pkg =
-    if not has_apidoc then
+    if not has_apidoc && 
+       (* API doc is not already generated *)
+
+       List.exists (fun e -> e.has_hinterf) roots then
+       (* There are .mli/.ml to create API doc *)
+
       begin
         dh_with_fn deb_pkg "ocamldoc"
           (output_content "# Nothing")
@@ -213,24 +246,36 @@ Section: Programming/OCaml");
               dh_with_fn deb_dev "install.in"
                 (fun chn -> 
                    List.iter 
-                     (fun (findlib_name, has_dll) ->
+                     (fun e ->
                         
-                        output_content 
-                          (interpolate 
-                             "\
- at OCamlStdlibDir@/$findlib_name/*.cm[ix]
- at OCamlStdlibDir@/$findlib_name/*.ml*
-OPT: @OCamlStdlibDir@/$findlib_name/*.cmxa")
+                        if e.has_cmi then
+                          output_content 
+                            (interpolate 
+                               "@OCamlStdlibDir@/$e.findlib_name/*.cmi")
+                            chn;
+
+                        if e.has_hinterf then
+                          output_content 
+                            (interpolate 
+                               "@OCamlStdlibDir@/$e.findlib_name/*.ml*")
                           chn;
 
-                        output_content
-                          (if has_dll then
-                             (interpolate 
-                                "@OCamlStdlibDir@/$findlib_name/*.a")
-                           else
-                             (interpolate 
-                                "OPT: @OCamlStdlibDir@/$findlib_name/*.a"))
-                          chn;
+                        if e.has_native then
+                          output_content
+                            (interpolate
+                               "OPT: @OCamlStdlibDir@/$e.findlib_name/*.cmx*")
+                            chn;
+
+                        if e.has_dll then
+                          output_content
+                            (interpolate 
+                               "@OCamlStdlibDir@/$e.findlib_name/*.a")
+                            chn
+                        else if e.has_native then
+                          output_content 
+                            (interpolate 
+                               "OPT: @OCamlStdlibDir@/$e.findlib_name/*.a")
+                            chn;
 
                         begin
                           match t.deb_doc, docdir t with 
@@ -252,22 +297,25 @@ OPT: @OCamlStdlibDir@/$findlib_name/*.cmxa")
                    (* At least one findlib root has a dll *)
                    List.iter 
                      (function 
-                        | (findlib_name, true) ->
+                        | {has_dll = true} as e ->
                             output_content 
-                              ("@OCamlStdlibDir@/"^findlib_name^"/*.so @OCamlDllDir@")
+                              ("@OCamlStdlibDir@/"^e.findlib_name^"/*.so @OCamlDllDir@")
                               chn
-                        | (_, false) ->
+                        | _ ->
                             ())
                      roots;
 
                    List.iter 
-                     (fun (findlib_name, has_dll) ->
+                     (fun e ->
                         output_content 
                           (interpolate 
-                             "\
- at OCamlStdlibDir@/$findlib_name/META
- at OCamlStdlibDir@/$findlib_name/*.cm[ao]")
-                          chn)
+                             "@OCamlStdlibDir@/$e.findlib_name/META")
+                          chn;
+                        if e.has_byte then
+                          output_content 
+                            (interpolate
+                               "@OCamlStdlibDir@/$e.findlib_name/*.cm[ao]")
+                            chn)
                      roots)
             end
 

-- 
oasis2debian project



More information about the Pkg-ocaml-maint-commits mailing list