Summary:
While `-results_dir` is still the main place to look for specs files and to write reports,
it's necessary to load specs from multiple folders because some build tools that run Infer with a target-level granularity may need to move specs files around in order to get complete reports, whereas with this change they just need to keep track of the `specs` folders generated for each target, and pass them through `-lib dir1 -lib dir2 ... -lib dirN`
"-procs",Arg.String(funs->procs_csv:=create_outfiles),Some"procs.csv","create file procs.csv containing statistics for each procedure in CSV format";
"-procs_xml",Arg.String(funs->procs_xml:=create_outfiles),Some"procs.xml","create file procs.xml containing statistics for each procedure in XML format";
"-results_dir",Arg.String(funs->results_dir_cmdline:=true;Config.results_dir:=s),Some"dir","read all the .specs files in the results dir";
"-lib",Arg.String(funs->Config.specs_library:=filename_to_absolutes::!Config.specs_library),Some"dir","add dir to the list of directories to be searched for spec files";
"-q",Arg.Setquiet,None,"quiet: do not print specs on standard output";
"-save_results",Arg.String(funs->save_analysis_results:=Somes),Some"file.iar","save analysis results to Infer Analysis Results file file.iar";
"-unit_test",Arg.Setunit_test,None,"print unit test code";
@ -139,18 +140,20 @@ let print_usage_exit err_s =
Arg2.usagearg_descusage;
exit(1)
(** return the list of the .specs files in the results dir, if it's defined *)