Home | History | Annotate | Download | only in util
      1 # Copyright 2015 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 # This exposes the Chrome version as GN variables for use in build files.
      6 #
      7 # PREFER NOT TO USE THESE. The GYP build uses this kind of thing extensively.
      8 # However, it is far better to write an action (or use the process_version
      9 # wrapper in chrome/version.gni) to generate a file at build-time with the
     10 # information you need. This allows better dependency checking and GN will
     11 # run faster.
     12 #
     13 # These values should only be used if you REALLY need to depend on them at
     14 # build-time, for example, in the computation of output file names.
     15 
     16 # Give version.py a pattern that will expand to a GN scope consisting of
     17 # all values we need at once.
     18 _version_dictionary_template = "full = \"@MAJOR@.@MINOR@.@BUILD@.@PATCH@\" " +
     19                                "major = \"@MAJOR@\" minor = \"@MINOR@\" " +
     20                                "build = \"@BUILD@\" patch = \"@PATCH@\" " +
     21                                "remoting = \"@REMOTING_PATCH\" "
     22 
     23 # The file containing the Chrome version number.
     24 chrome_version_file = "//chrome/VERSION"
     25 
     26 # The file containing the Chromoting version number.
     27 remoting_version_file = "//remoting/VERSION"
     28 
     29 _result = exec_script("version.py",
     30                       [
     31                         "-f",
     32                         rebase_path(chrome_version_file, root_build_dir),
     33                         "-t",
     34                         _version_dictionary_template,
     35                       ],
     36                       "scope",
     37                       [ chrome_version_file ])
     38 
     39 # Full version. For example "45.0.12321.0"
     40 chrome_version_full = _result.full
     41 
     42 # The consituent parts of the full version.
     43 chrome_version_major = _result.major
     44 chrome_version_minor = _result.minor
     45 chrome_version_build = _result.build
     46 chrome_version_patch = _result.patch
     47 remoting_version_patch = _result.remoting
     48 
     49 if (is_mac) {
     50   _result = exec_script("version.py",
     51                         [
     52                           "-f",
     53                           rebase_path(chrome_version_file, root_build_dir),
     54                           "-t",
     55                           "@BUILD@.@PATCH_HI@.@PATCH_LO@",
     56                           "-e",
     57                           "PATCH_HI=int(PATCH)/256",
     58                           "-e",
     59                           "PATCH_LO=int(PATCH)%256",
     60                         ],
     61                         "trim string",
     62                         [ chrome_version_file ])
     63   chrome_dylib_version = _result
     64 }
     65