diff options
author | Bernhard Schommer <bernhardschommer@gmail.com> | 2020-07-01 19:33:12 +0200 |
---|---|---|
committer | Bernhard Schommer <bernhardschommer@gmail.com> | 2020-07-08 11:58:10 +0200 |
commit | fdaa2a3e7269ab5fc6fade4ac56699ad21de1bda (patch) | |
tree | 9be8e36d7ed94627e688ba47e32376422721ce39 /driver | |
parent | 9af28924713d14d833dcaf95cd3338ef68fbfc97 (diff) | |
download | compcert-fdaa2a3e7269ab5fc6fade4ac56699ad21de1bda.tar.gz compcert-fdaa2a3e7269ab5fc6fade4ac56699ad21de1bda.zip |
Add option to print version information in file
Diffstat (limited to 'driver')
-rw-r--r-- | driver/CommonOptions.ml | 18 |
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> |