aboutsummaryrefslogtreecommitdiffstats
path: root/driver/CommonOptions.ml
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2020-07-01 19:33:12 +0200
committerBernhard Schommer <bernhardschommer@gmail.com>2020-07-08 11:58:10 +0200
commitfdaa2a3e7269ab5fc6fade4ac56699ad21de1bda (patch)
tree9be8e36d7ed94627e688ba47e32376422721ce39 /driver/CommonOptions.ml
parent9af28924713d14d833dcaf95cd3338ef68fbfc97 (diff)
downloadcompcert-kvx-fdaa2a3e7269ab5fc6fade4ac56699ad21de1bda.tar.gz
compcert-kvx-fdaa2a3e7269ab5fc6fade4ac56699ad21de1bda.zip
Add option to print version information in file
Diffstat (limited to 'driver/CommonOptions.ml')
-rw-r--r--driver/CommonOptions.ml18
1 files changed, 17 insertions, 1 deletions
diff --git a/driver/CommonOptions.ml b/driver/CommonOptions.ml
index c151ecf2..fc7bbb77 100644
--- a/driver/CommonOptions.ml
+++ b/driver/CommonOptions.ml
@@ -24,9 +24,24 @@ let version_string tool_name =
let print_version_and_exit tool_name () =
Printf.printf "%s" (version_string tool_name); exit 0
+let version_file_string tool_name =
+ if Version.buildnr <> "" && Version.tag <> "" then
+ Printf.sprintf "This is CompCert %s,\nVersion: %s,\nBuild: %s,\nTag: %s\n" tool_name Version.version Version.buildnr Version.tag
+ else
+ Printf.sprintf "The CompCert %s,\nversion %s\n" tool_name Version.version
+
+let print_version_file_and_exit tool_name file =
+ let oc = open_out_bin file in
+ output_string oc (version_file_string tool_name);
+ close_out_noerr oc;
+ exit 0
+
let version_options tool_name =
[ Exact "-version", Unit (print_version_and_exit tool_name);
- Exact "--version", Unit (print_version_and_exit tool_name);]
+ Exact "--version", Unit (print_version_and_exit tool_name);
+ Exact "-version-file", String (print_version_file_and_exit tool_name);
+ Exact "--version-file", String (print_version_file_and_exit tool_name);
+ ]
(* Language support options *)
@@ -76,6 +91,7 @@ let general_help =
-v Print external commands before invoking them
-timings Show the time spent in various compiler passes
-version Print the version string and exit
+ -version-file <file> Print version inforation to <file> and exit
-target <value> Generate code for the given target
-conf <file> Read configuration from file
@<file> Read command line options from <file>