From 2261e4413d2ed29b508deb7ccea50fa7184ec5d4 Mon Sep 17 00:00:00 2001 From: alainfrisch Date: Mon, 1 Feb 2016 18:55:47 +0100 Subject: [PATCH] Single entry point to print deps. --- tools/ocamldep.ml | 79 +++++++++++++++++++++++------------------------ 1 file changed, 39 insertions(+), 40 deletions(-) diff --git a/tools/ocamldep.ml b/tools/ocamldep.ml index 6c0116380..d0e178064 100644 --- a/tools/ocamldep.ml +++ b/tools/ocamldep.ml @@ -310,42 +310,43 @@ let read_parse_and_extract parse_function extract_function def magic end let print_ml_dependencies source_file extracted_deps = - if !raw_dependencies then begin - print_raw_dependencies source_file extracted_deps - end else begin - let basename = Filename.chop_extension source_file in - let byte_targets = [ basename ^ ".cmo" ] in - let native_targets = - if !all_dependencies - then [ basename ^ ".cmx"; basename ^ ".o" ] - else [ basename ^ ".cmx" ] in - let init_deps = if !all_dependencies then [source_file] else [] in - let cmi_name = basename ^ ".cmi" in - let init_deps, extra_targets = - if List.exists (fun ext -> Sys.file_exists (basename ^ ext)) - !mli_synonyms - then (cmi_name :: init_deps, cmi_name :: init_deps), [] - else (init_deps, init_deps), - (if !all_dependencies then [cmi_name] else []) - in - let (byt_deps, native_deps) = - Depend.StringSet.fold (find_dependency ML) - extracted_deps init_deps in - if not !native_only then - print_dependencies (byte_targets @ extra_targets) byt_deps; - print_dependencies (native_targets @ extra_targets) native_deps; - end + let basename = Filename.chop_extension source_file in + let byte_targets = [ basename ^ ".cmo" ] in + let native_targets = + if !all_dependencies + then [ basename ^ ".cmx"; basename ^ ".o" ] + else [ basename ^ ".cmx" ] in + let init_deps = if !all_dependencies then [source_file] else [] in + let cmi_name = basename ^ ".cmi" in + let init_deps, extra_targets = + if List.exists (fun ext -> Sys.file_exists (basename ^ ext)) + !mli_synonyms + then (cmi_name :: init_deps, cmi_name :: init_deps), [] + else (init_deps, init_deps), + (if !all_dependencies then [cmi_name] else []) + in + let (byt_deps, native_deps) = + Depend.StringSet.fold (find_dependency ML) + extracted_deps init_deps in + if not !native_only then + print_dependencies (byte_targets @ extra_targets) byt_deps; + print_dependencies (native_targets @ extra_targets) native_deps let print_mli_dependencies source_file extracted_deps = + let basename = Filename.chop_extension source_file in + let (byt_deps, _opt_deps) = + Depend.StringSet.fold (find_dependency MLI) + extracted_deps ([], []) in + print_dependencies [basename ^ ".cmi"] byt_deps + +let print_dependencies (source_file, kind, extracted_deps) = if !raw_dependencies then begin print_raw_dependencies source_file extracted_deps - end else begin - let basename = Filename.chop_extension source_file in - let (byt_deps, _opt_deps) = - Depend.StringSet.fold (find_dependency MLI) - extracted_deps ([], []) in - print_dependencies [basename ^ ".cmi"] byt_deps - end + end else + match kind with + | ML -> print_ml_dependencies source_file extracted_deps + | MLI -> print_mli_dependencies source_file extracted_deps + let ml_file_dependencies source_file = let parse_use_file_as_impl lexbuf = @@ -360,20 +361,18 @@ let ml_file_dependencies source_file = read_parse_and_extract parse_use_file_as_impl Depend.add_implementation () Config.ast_impl_magic_number source_file in - if !sort_files then - files := (source_file, ML, extracted_deps) :: !files - else - print_ml_dependencies source_file extracted_deps + let r = (source_file, ML, extracted_deps) in + if !sort_files then files := r :: !files + else print_dependencies r let mli_file_dependencies source_file = let (extracted_deps, ()) = read_parse_and_extract Parse.interface Depend.add_signature () Config.ast_intf_magic_number source_file in - if !sort_files then - files := (source_file, MLI, extracted_deps) :: !files - else - print_mli_dependencies source_file extracted_deps + let r = (source_file, MLI, extracted_deps) in + if !sort_files then files := r :: !files + else print_dependencies r let process_file_as process_fun def source_file = Compenv.readenv ppf (Before_compile source_file);