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 build/util/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 22# The file containing the Chrome version number. 23chrome_version_file = "//chrome/VERSION" 24 25_result = exec_script("version.py", 26 [ 27 "-f", 28 rebase_path(chrome_version_file, root_build_dir), 29 "-t", 30 _version_dictionary_template, 31 ], 32 "scope", 33 [ chrome_version_file ]) 34 35# Full version. For example "45.0.12321.0" 36chrome_version_full = _result.full 37 38# The consituent parts of the full version. 39chrome_version_major = _result.major 40chrome_version_minor = _result.minor 41chrome_version_build = _result.build 42chrome_version_patch = _result.patch 43 44if (is_mac) { 45 _result = exec_script("version.py", 46 [ 47 "-f", 48 rebase_path(chrome_version_file, root_build_dir), 49 "-t", 50 "@BUILD@.@PATCH_HI@.@PATCH_LO@", 51 "-e", 52 "PATCH_HI=int(PATCH)/256", 53 "-e", 54 "PATCH_LO=int(PATCH)%256", 55 ], 56 "trim string", 57 [ chrome_version_file ]) 58 chrome_dylib_version = _result 59} 60