File: version.ml

package info (click to toggle)
frama-c 20220511-manganese-5
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 66,492 kB
  • sloc: ml: 278,834; ansic: 47,093; sh: 4,823; makefile: 3,613; javascript: 2,436; python: 1,919; perl: 897; lisp: 293; xml: 62
file content (20 lines) | stat: -rw-r--r-- 694 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
let re_version = Str.regexp "^\\([0-9]+\\)\\.\\([0-9]+\\)"

let run () =
  let version_str = Fc_config.version in
  if Str.string_match re_version version_str 0 then
    let major = Str.matched_group 1 version_str in
    let minor = Str.matched_group 2 version_str in
    if major = string_of_int Fc_config.major_version &&
       minor = string_of_int Fc_config.minor_version
    then
      Kernel.feedback "version numbers match"
    else
      Kernel.abort
        "error parsing major/minor version: expected %s.%s, got %d.%d"
        major minor Fc_config.major_version Fc_config.minor_version
  else
    Kernel.abort
      "could not parse Fc_config.version"

let () = Db.Main.extend run