Compute all version numbers using cef_version.py (see issue #2596)

The version format can now be controlled by setting the CEF_OLD_VERSION_FORMAT
environment variable. The old format is currently the default.
This commit is contained in:
Marshall Greenblatt 2019-03-14 17:37:47 -04:00
parent a76f40eb83
commit 2a40650926
14 changed files with 361 additions and 122 deletions

View File

@ -166,45 +166,14 @@ if (is_mac) {
# #
if (is_mac) { if (is_mac) {
cef_commit_number = exec_script(
"//cef/tools/commit_number.py",
[ rebase_path("//cef", root_build_dir) ],
"trim string", [])
cef_version_file = "//cef/VERSION.in"
# The tweak_info_plist.py script requires a version number with 4 parts. CEF # The tweak_info_plist.py script requires a version number with 4 parts. CEF
# uses a version number with 3 parts so just set the last part to 0. # uses a version number with 3 parts so just set the last part to 0.
cef_plist_version = exec_script( cef_plist_version = exec_script(
"//build/util/version.py", "//cef/tools/cef_version.py", [ "plist" ], "trim string", [])
[
"-f",
rebase_path(cef_version_file, root_build_dir),
"-f",
rebase_path(chrome_version_file, root_build_dir),
"-t",
"@CEF_MAJOR@.@BUILD@.${cef_commit_number}.0",
],
"trim string",
[ cef_version_file, chrome_version_file ])
# Need to be creative to match dylib version formatting requirements. # Need to be creative to match dylib version formatting requirements.
cef_dylib_version = exec_script( cef_dylib_version = exec_script(
"//build/util/version.py", "//cef/tools/cef_version.py", [ "dylib" ], "trim string", [])
[
"-f",
rebase_path(cef_version_file, root_build_dir),
"-f",
rebase_path(chrome_version_file, root_build_dir),
"-t",
"@CEF_MAJOR@${cef_commit_number}.@BUILD_HI@.@BUILD_LO@",
"-e",
"BUILD_HI=int(BUILD)/256",
"-e",
"BUILD_LO=int(BUILD)%256",
],
"trim string",
[ cef_version_file, chrome_version_file ])
} }
# Read file lists from gypi files. The gypi_to_gn.py script does not support # Read file lists from gypi files. The gypi_to_gn.py script does not support

View File

@ -95,8 +95,8 @@ END
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION CEF_VERSION_MAJOR,CHROME_VERSION_BUILD,CEF_COMMIT_NUMBER,0 FILEVERSION CEF_VERSION_MAJOR,CEF_VERSION_MINOR,CEF_VERSION_PATCH,0
PRODUCTVERSION CEF_VERSION_MAJOR,CHROME_VERSION_BUILD,CEF_COMMIT_NUMBER,0 PRODUCTVERSION CEF_VERSION_MAJOR,CEF_VERSION_MINOR,CEF_VERSION_PATCH,0
FILEFLAGSMASK 0x17L FILEFLAGSMASK 0x17L
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L

View File

@ -12,14 +12,18 @@ CEF_EXPORT int cef_version_info(int entry) {
case 0: case 0:
return CEF_VERSION_MAJOR; return CEF_VERSION_MAJOR;
case 1: case 1:
return CEF_COMMIT_NUMBER; return CEF_VERSION_MINOR;
case 2: case 2:
return CHROME_VERSION_MAJOR; return CEF_VERSION_PATCH;
case 3: case 3:
return CHROME_VERSION_MINOR; return CEF_COMMIT_NUMBER;
case 4: case 4:
return CHROME_VERSION_BUILD; return CHROME_VERSION_MAJOR;
case 5: case 5:
return CHROME_VERSION_MINOR;
case 6:
return CHROME_VERSION_BUILD;
case 7:
return CHROME_VERSION_PATCH; return CHROME_VERSION_PATCH;
default: default:
return 0; return 0;

View File

@ -144,8 +144,8 @@ END
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION CEF_VERSION_MAJOR,CHROME_VERSION_BUILD,CEF_COMMIT_NUMBER,0 FILEVERSION CEF_VERSION_MAJOR,CEF_VERSION_MINOR,CEF_VERSION_PATCH,0
PRODUCTVERSION CEF_VERSION_MAJOR,CHROME_VERSION_BUILD,CEF_COMMIT_NUMBER,0 PRODUCTVERSION CEF_VERSION_MAJOR,CEF_VERSION_MINOR,CEF_VERSION_PATCH,0
FILEFLAGSMASK 0x17L FILEFLAGSMASK 0x17L
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L

View File

@ -51,8 +51,8 @@ IDI_SMALL ICON "small.ico"
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION CEF_VERSION_MAJOR,CHROME_VERSION_BUILD,CEF_COMMIT_NUMBER,0 FILEVERSION CEF_VERSION_MAJOR,CEF_VERSION_MINOR,CEF_VERSION_PATCH,0
PRODUCTVERSION CEF_VERSION_MAJOR,CHROME_VERSION_BUILD,CEF_COMMIT_NUMBER,0 PRODUCTVERSION CEF_VERSION_MAJOR,CEF_VERSION_MINOR,CEF_VERSION_PATCH,0
FILEFLAGSMASK 0x17L FILEFLAGSMASK 0x17L
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L

View File

@ -8,11 +8,13 @@
TEST(VersionTest, VersionInfo) { TEST(VersionTest, VersionInfo) {
EXPECT_EQ(CEF_VERSION_MAJOR, cef_version_info(0)); EXPECT_EQ(CEF_VERSION_MAJOR, cef_version_info(0));
EXPECT_EQ(CEF_COMMIT_NUMBER, cef_version_info(1)); EXPECT_EQ(CEF_VERSION_MINOR, cef_version_info(1));
EXPECT_EQ(CHROME_VERSION_MAJOR, cef_version_info(2)); EXPECT_EQ(CEF_VERSION_PATCH, cef_version_info(2));
EXPECT_EQ(CHROME_VERSION_MINOR, cef_version_info(3)); EXPECT_EQ(CEF_COMMIT_NUMBER, cef_version_info(3));
EXPECT_EQ(CHROME_VERSION_BUILD, cef_version_info(4)); EXPECT_EQ(CHROME_VERSION_MAJOR, cef_version_info(4));
EXPECT_EQ(CHROME_VERSION_PATCH, cef_version_info(5)); EXPECT_EQ(CHROME_VERSION_MINOR, cef_version_info(5));
EXPECT_EQ(CHROME_VERSION_BUILD, cef_version_info(6));
EXPECT_EQ(CHROME_VERSION_PATCH, cef_version_info(7));
} }
TEST(VersionTest, ApiHash) { TEST(VersionTest, ApiHash) {

266
tools/cef_version.py Normal file
View File

@ -0,0 +1,266 @@
# Copyright (c) 2019 The Chromium Embedded Framework Authors. All rights
# reserved. Use of this source code is governed by a BSD-style license that
# can be found in the LICENSE file.
from file_util import *
import git_util as git
import os
class VersionFormatter:
""" Formats CEF version information. """
def __init__(self, chromium_src_path=None):
if chromium_src_path is None:
# Relative to the current directory.
script_path = os.path.abspath(os.path.dirname(__file__))
chromium_src_path = os.path.abspath(
os.path.join(script_path, os.pardir, os.pardir))
self.src_path = chromium_src_path
assert os.path.isdir(self.src_path), self.src_path
self.cef_path = os.path.join(self.src_path, 'cef')
assert os.path.isdir(self.cef_path), self.cef_path
# Whether to use the old version format by default.
self._old_format_default = \
bool(int(os.environ.get('CEF_OLD_VERSION_FORMAT', '1')))
self.reset()
def reset(self):
""" Reset internal state. """
self._chrome_version = {}
self._cef_version = {}
self._cef_commit = {}
self._branch_version = {}
self._old_version_string = None
self._old_version_parts = {}
self._version_string = None
self._version_parts = {}
def get_chrome_version_components(self):
""" Returns Chrome version components. """
if not bool(self._chrome_version):
file_path = os.path.join(self.src_path, 'chrome', 'VERSION')
assert os.path.isfile(file_path), file_path
read_version_file(file_path, self._chrome_version)
return self._chrome_version
def get_cef_version_components(self):
""" Returns CEF version components. """
if not bool(self._cef_version):
file_path = os.path.join(self.cef_path, 'VERSION.in')
assert os.path.isfile(file_path), file_path
read_version_file(file_path, self._cef_version)
return self._cef_version
def get_cef_commit_components(self):
""" Returns CEF commit components. """
if not bool(self._cef_commit):
hash = git.get_hash(self.cef_path)
number = git.get_commit_number(self.cef_path)
self._cef_commit = {'HASH': hash, 'NUMBER': number}
return self._cef_commit
def get_cef_branch_version_components(self):
""" Computes the CEF branch version. """
if not bool(self._branch_version):
minor = 0
bugfix = 0
# Retrieve the list of commits that have been applied on the current
# branch since branching from origin/master.
hashes = git.get_branch_hashes(self.cef_path)
for hash in hashes:
# Determine if the API hash file was modified by the commit.
found = False
files = git.get_changed_files(self.cef_path, hash)
for file in files:
if file.find('cef_api_hash.h') >= 0:
found = True
break
if found:
minor += 1
bugfix = 0
else:
bugfix += 1
self._branch_version = {'MINOR': minor, 'PATCH': bugfix}
return self._branch_version
def get_chromium_version_string(self):
""" Returns the Chromium version number string. """
chrome_version = self.get_chrome_version_components()
return '%s.%s.%s.%s' % (chrome_version['MAJOR'], chrome_version['MINOR'],
chrome_version['BUILD'], chrome_version['PATCH'])
@staticmethod
def _format_commit_hash(hash):
return 'g%s' % hash[:7]
# Computes old version numbers in the format "X.YYYY.A.gHHHHHHH".
#
# Where:
# - "X" is the CEF major version (currently 3).
# - "YYYY" is the Chromium branch.
# - "A" is an incremental number representing the number of commits in the
# current branch. This is roughly equivalent to the SVN revision number but
# on a per-branch basis and assists people in quickly determining the order
# of builds in the same branch (for bug reports, etc).
# - "gHHHHHHH" is the 7-character abbreviation for the Git commit hash. This
# facilitates lookup of the relevant commit history in Git.
#
# Example: "3.3729.1921.g62d140e"
def _compute_old_version(self):
if not self._old_version_string is None:
return
chrome_version = self.get_chrome_version_components()
cef_version = self.get_cef_version_components()
cef_commit = self.get_cef_commit_components()
cef_commit_hash = self._format_commit_hash(cef_commit['HASH'])
self._old_version_parts = {
'MAJOR': int(cef_version['CEF_MAJOR']),
'MINOR': int(chrome_version['BUILD']),
'PATCH': int(cef_commit['NUMBER'])
}
self._old_version_string = \
'%s.%s.%s.%s' % (cef_version['CEF_MAJOR'], chrome_version['BUILD'],
cef_commit['NUMBER'], cef_commit_hash)
def _get_old_version_string(self):
self._compute_old_version()
return self._old_version_string
def _get_old_version_parts(self):
self._compute_old_version()
return self._old_version_parts
# Computes version numbers in the format:
# - "X.Y.Z+gHHHHHHH+chromium-A.B.C.D" for release branch builds.
# - "X.0.0-master.N+gHHHHHHH+chromium-A.B.C.D" for master branch builds.
#
# Where:
# - "X" is the Chromium major version (e.g. 74).
# - "Y" is an incremental number that starts at 0 when a release branch is
# created and changes only when the CEF C/C++ API changes (similar to how
# the CEF_API_HASH_UNIVERSAL value behaves in cef_version.h) (release branch
# only).
# - "Z" is an incremental number that starts at 0 when a release branch is
# created and changes on each commit, with reset to 0 when "Y" changes
# (release branch only).
# - "N" is an incremental number representing the number of commits (master
# branch only).
# - "gHHHHHHH" is the 7-character abbreviation for the Git commit hash. This
# facilitates lookup of the relevant commit history in Git.
# - "A.B.C.D" is the Chromium version (e.g. 74.0.3729.6).
#
# Examples:
# - "74.0.1+g62d140e+chromium-74.0.3729.6" for a release build.
# - "74.0.0-master.1920+g725ed88+chromium-74.0.3729.0" for a master build.
def _compute_version(self):
if not self._version_string is None:
return
chrome_version = self.get_chrome_version_components()
chrome_major = chrome_version['MAJOR']
chrome_version_part = 'chromium-' + self.get_chromium_version_string()
cef_commit = self.get_cef_commit_components()
cef_commit_hash = self._format_commit_hash(cef_commit['HASH'])
# Remove the remote name prefix, if any.
cef_branch_name = git.get_branch_name(self.cef_path).split('/')[-1]
if cef_branch_name != chrome_version['BUILD']:
# Not on an official named release branch.
self._version_parts = {'MAJOR': int(chrome_major), 'MINOR': 0, 'PATCH': 0}
self._version_string = '%s.0.0-%s.%s+%s+%s' % \
(chrome_major, cef_branch_name, cef_commit['NUMBER'],
cef_commit_hash, chrome_version_part)
else:
cef_branch = self.get_cef_branch_version_components()
self._version_parts = {
'MAJOR': int(chrome_major),
'MINOR': cef_branch['MINOR'],
'PATCH': cef_branch['PATCH']
}
self._version_string = '%s.%d.%d+%s+%s' % \
(chrome_major, cef_branch['MINOR'], cef_branch['PATCH'],
cef_commit_hash, chrome_version_part)
def _get_version_string(self):
self._compute_version()
return self._version_string
def _get_version_parts(self):
self._compute_version()
return self._version_parts
def get_version_string(self, oldFormat=None):
""" Returns the CEF version number string based on current checkout state.
"""
if oldFormat is None:
oldFormat = self._old_format_default
if oldFormat:
return self._get_old_version_string()
return self._get_version_string()
def get_version_parts(self, oldFormat=None):
""" Returns the CEF version number parts based on current checkout state.
"""
if oldFormat is None:
oldFormat = self._old_format_default
if oldFormat:
return self._get_old_version_parts()
return self._get_version_parts()
def get_plist_version_string(self, oldFormat=None):
""" Returns the CEF version number string for plist files based on current
checkout state. """
parts = self.get_version_parts(oldFormat=oldFormat)
return "%d.%d.%d.0" % (parts['MAJOR'], parts['MINOR'], parts['PATCH'])
def get_dylib_version_string(self, oldFormat=None):
""" Returns the CEF version number string for dylib files based on current
checkout state. """
parts = self.get_version_parts(oldFormat=oldFormat)
# Dylib format supports a max value of 255 for the 2nd and 3rd components.
return "%d%d.%d.%d" % (parts['MAJOR'], parts['MINOR'], parts['PATCH'] / 255,
parts['PATCH'] % 255)
# Test the module.
if __name__ == "__main__":
import sys
# Optionally specify a format.
formats = ['current', 'old', 'plist', 'dylib']
if len(sys.argv) >= 2:
formats = [sys.argv[1]]
# Optionally specify the path to chromium/src.
chromium_src_path = None
if len(sys.argv) >= 3:
chromium_src_path = sys.argv[2]
formatter = VersionFormatter(chromium_src_path)
for format in formats:
if len(formats) > 1:
print format
if format == 'old':
print formatter.get_version_string(True)
elif format == 'dylib':
print formatter.get_dylib_version_string()
elif format == 'plist':
print formatter.get_plist_version_string()
else:
print formatter.get_version_string(False)

View File

@ -1,21 +0,0 @@
# Copyright (c) 2012 The Chromium Embedded Framework Authors. All rights
# reserved. Use of this source code is governed by a BSD-style license that
# can be found in the LICENSE file.
import git_util as git
import os
import sys
# cannot be loaded as a module
if __name__ != "__main__":
sys.stderr.write('This file cannot be loaded as a module!')
sys.exit()
if len(sys.argv) < 2:
raise Exception('Path expected on command-line')
path = sys.argv[1]
if git.is_checkout(path):
sys.stdout.write(git.get_commit_number(path))
else:
raise Exception('Not a valid checkout: ' + path)

View File

@ -28,8 +28,7 @@ else:
print "\nGenerating CEF version header file..." print "\nGenerating CEF version header file..."
cmd = [ cmd = [
'python', 'tools/make_version_header.py', '--header', 'python', 'tools/make_version_header.py', '--header',
'include/cef_version.h', '--cef_version', 'VERSION.in', '--chrome_version', 'include/cef_version.h'
'../chrome/VERSION'
] ]
RunAction(cef_dir, cmd) RunAction(cef_dir, cmd)

View File

@ -27,6 +27,27 @@ def get_hash(path='.', branch='HEAD'):
return 'Unknown' return 'Unknown'
def get_branch_name(path='.', branch='HEAD'):
""" Returns the branch name for the specified branch/tag/hash. """
# Returns the branch name if not in detached HEAD state, else an empty string
# or "HEAD".
cmd = "%s rev-parse --abbrev-ref %s" % (git_exe, branch)
result = exec_cmd(cmd, path)
if result['out'] != '':
name = result['out'].strip()
if len(name) > 0 and name != 'HEAD':
return name
# Returns a value like "(HEAD, origin/3729, 3729)".
# Ubuntu 14.04 uses Git version 1.9.1 which does not support %D (which
# provides the same output but without the parentheses).
cmd = "%s log -n 1 --pretty=%%d %s" % (git_exe, branch)
result = exec_cmd(cmd, path)
if result['out'] != '':
return result['out'].strip()[1:-1].split(', ')[-1]
return 'Unknown'
def get_url(path='.'): def get_url(path='.'):
""" Returns the origin url for the specified path. """ """ Returns the origin url for the specified path. """
cmd = "%s config --get remote.origin.url" % git_exe cmd = "%s config --get remote.origin.url" % git_exe
@ -63,6 +84,21 @@ def get_changed_files(path, hash):
return [] return []
def get_branch_hashes(path='.', branch='HEAD', ref='origin/master'):
""" Returns an ordered list of hashes for commits that have been applied since
branching from ref. """
cmd = "%s cherry %s %s" % (git_exe, ref, branch)
result = exec_cmd(cmd, path)
if result['out'] != '':
hashes = result['out']
if sys.platform == 'win32':
# Convert to Unix line endings.
hashes = hashes.replace('\r\n', '\n')
# Remove the "+ " or "- " prefix.
return [line[2:] for line in hashes.strip().split('\n')]
return []
def write_indented_output(output): def write_indented_output(output):
""" Apply a fixed amount of intent to lines before printing. """ """ Apply a fixed amount of intent to lines before printing. """
if output == '': if output == '':

View File

@ -2,6 +2,7 @@
# reserved. Use of this source code is governed by a BSD-style license that # reserved. Use of this source code is governed by a BSD-style license that
# can be found in the LICENSE file. # can be found in the LICENSE file.
from cef_version import VersionFormatter
from date_util import * from date_util import *
from exec_util import exec_cmd from exec_util import exec_cmd
from file_util import * from file_util import *
@ -536,14 +537,10 @@ chromium_rev = git.get_hash(src_dir)
date = get_date() date = get_date()
# Read and parse the version file (key=value pairs, one per line) # format version strings
args = {} formatter = VersionFormatter()
read_version_file(os.path.join(cef_dir, 'VERSION.in'), args) cef_ver = formatter.get_version_string()
read_version_file(os.path.join(cef_dir, '../chrome/VERSION'), args) chromium_ver = formatter.get_chromium_version_string()
cef_ver = '%s.%s.%s.g%s' % (args['CEF_MAJOR'], args['BUILD'], cef_commit_number,
cef_rev[:7])
chromium_ver = args['MAJOR'] + '.' + args['MINOR'] + '.' + args['BUILD'] + '.' + args['PATCH']
# list of output directories to be archived # list of output directories to be archived
archive_dirs = [] archive_dirs = []

View File

@ -1,2 +1,2 @@
@echo off @echo off
python.bat tools\make_version_header.py --header include\cef_version.h --cef_version VERSION.in --chrome_version ../chrome/VERSION --cpp_header_dir include python.bat tools\make_version_header.py --header include\cef_version.h

View File

@ -2,10 +2,12 @@
# reserved. Use of this source code is governed by a BSD-style license that # reserved. Use of this source code is governed by a BSD-style license that
# can be found in the LICENSE file. # can be found in the LICENSE file.
from cef_version import VersionFormatter
from date_util import * from date_util import *
from file_util import * from file_util import *
from optparse import OptionParser from optparse import OptionParser
import git_util as git import git_util as git
import os
import sys import sys
# cannot be loaded as a module # cannot be loaded as a module
@ -24,16 +26,6 @@ parser.add_option(
dest='header', dest='header',
metavar='FILE', metavar='FILE',
help='output version header file [required]') help='output version header file [required]')
parser.add_option(
'--cef_version',
dest='cef_version',
metavar='FILE',
help='input CEF version config file [required]')
parser.add_option(
'--chrome_version',
dest='chrome_version',
metavar='FILE',
help='input Chrome version config file [required]')
parser.add_option( parser.add_option(
'-q', '-q',
'--quiet', '--quiet',
@ -44,24 +36,17 @@ parser.add_option(
(options, args) = parser.parse_args() (options, args) = parser.parse_args()
# the header option is required # the header option is required
if options.header is None or options.cef_version is None or options.chrome_version is None: if options.header is None:
parser.print_help(sys.stdout) parser.print_help(sys.stdout)
sys.exit() sys.exit()
def write_version_header(header, chrome_version, cef_version): def write_version_header(header):
""" Creates the header file for the current revision and Chrome version information """ Creates the header file for the current revision and Chrome version information
if the information has changed or if the file doesn't already exist. """ if the information has changed or if the file doesn't already exist. """
if not path_exists(chrome_version): if not git.is_checkout('.'):
raise Exception('Chrome version file ' + chrome_version + raise Exception('Not a valid checkout')
' does not exist.')
if not path_exists(cef_version):
raise Exception('CEF version file ' + cef_version + ' does not exist.')
args = {}
read_version_file(chrome_version, args)
read_version_file(cef_version, args)
if path_exists(header): if path_exists(header):
oldcontents = read_file(header) oldcontents = read_file(header)
@ -69,14 +54,16 @@ def write_version_header(header, chrome_version, cef_version):
oldcontents = '' oldcontents = ''
year = get_year() year = get_year()
formatter = VersionFormatter()
commit_hash = formatter.get_cef_commit_components()['HASH']
commit_number = formatter.get_cef_commit_components()['NUMBER']
version = formatter.get_version_string()
version_parts = formatter.get_version_parts()
chrome = formatter.get_chrome_version_components()
if not git.is_checkout('.'): version_defines = '#define CEF_VERSION "%s"\n' % version
raise Exception('Not a valid checkout') for key in ('MAJOR', 'MINOR', 'PATCH'):
version_defines += '#define CEF_VERSION_%s %d\n' % (key, version_parts[key])
commit_number = git.get_commit_number()
commit_hash = git.get_hash()
version = '%s.%s.%s.g%s' % (args['CEF_MAJOR'], args['BUILD'], commit_number,
commit_hash[:7])
newcontents = '// Copyright (c) '+year+' Marshall A. Greenblatt. All rights reserved.\n'+\ newcontents = '// Copyright (c) '+year+' Marshall A. Greenblatt. All rights reserved.\n'+\
'//\n'+\ '//\n'+\
@ -113,15 +100,14 @@ def write_version_header(header, chrome_version, cef_version):
'//\n\n'+\ '//\n\n'+\
'#ifndef CEF_INCLUDE_CEF_VERSION_H_\n'+\ '#ifndef CEF_INCLUDE_CEF_VERSION_H_\n'+\
'#define CEF_INCLUDE_CEF_VERSION_H_\n\n'+\ '#define CEF_INCLUDE_CEF_VERSION_H_\n\n'+\
'#define CEF_VERSION "' + version + '"\n'+\ version_defines+\
'#define CEF_VERSION_MAJOR ' + args['CEF_MAJOR'] + '\n'+\
'#define CEF_COMMIT_NUMBER ' + commit_number + '\n'+\ '#define CEF_COMMIT_NUMBER ' + commit_number + '\n'+\
'#define CEF_COMMIT_HASH "' + commit_hash + '"\n'+\ '#define CEF_COMMIT_HASH "' + commit_hash + '"\n'+\
'#define COPYRIGHT_YEAR ' + year + '\n\n'+\ '#define COPYRIGHT_YEAR ' + year + '\n\n'+\
'#define CHROME_VERSION_MAJOR ' + args['MAJOR'] + '\n'+\ '#define CHROME_VERSION_MAJOR ' + chrome['MAJOR'] + '\n'+\
'#define CHROME_VERSION_MINOR ' + args['MINOR'] + '\n'+\ '#define CHROME_VERSION_MINOR ' + chrome['MINOR'] + '\n'+\
'#define CHROME_VERSION_BUILD ' + args['BUILD'] + '\n'+\ '#define CHROME_VERSION_BUILD ' + chrome['BUILD'] + '\n'+\
'#define CHROME_VERSION_PATCH ' + args['PATCH'] + '\n\n'+\ '#define CHROME_VERSION_PATCH ' + chrome['PATCH'] + '\n\n'+\
'#define DO_MAKE_STRING(p) #p\n'+\ '#define DO_MAKE_STRING(p) #p\n'+\
'#define MAKE_STRING(p) DO_MAKE_STRING(p)\n\n'+\ '#define MAKE_STRING(p) DO_MAKE_STRING(p)\n\n'+\
'#ifndef APSTUDIO_HIDDEN_SYMBOLS\n\n'\ '#ifndef APSTUDIO_HIDDEN_SYMBOLS\n\n'\
@ -132,11 +118,13 @@ def write_version_header(header, chrome_version, cef_version):
'// Returns CEF version information for the libcef library. The |entry|\n'+\ '// Returns CEF version information for the libcef library. The |entry|\n'+\
'// parameter describes which version component will be returned:\n'+\ '// parameter describes which version component will be returned:\n'+\
'// 0 - CEF_VERSION_MAJOR\n'+\ '// 0 - CEF_VERSION_MAJOR\n'+\
'// 1 - CEF_COMMIT_NUMBER\n'+\ '// 1 - CEF_VERSION_MINOR\n'+\
'// 2 - CHROME_VERSION_MAJOR\n'+\ '// 2 - CEF_VERSION_PATCH\n'+\
'// 3 - CHROME_VERSION_MINOR\n'+\ '// 3 - CEF_COMMIT_NUMBER\n'+\
'// 4 - CHROME_VERSION_BUILD\n'+\ '// 4 - CHROME_VERSION_MAJOR\n'+\
'// 5 - CHROME_VERSION_PATCH\n'+\ '// 5 - CHROME_VERSION_MINOR\n'+\
'// 6 - CHROME_VERSION_BUILD\n'+\
'// 7 - CHROME_VERSION_PATCH\n'+\
'///\n'+\ '///\n'+\
'CEF_EXPORT int cef_version_info(int entry);\n\n'+\ 'CEF_EXPORT int cef_version_info(int entry);\n\n'+\
'#ifdef __cplusplus\n'+\ '#ifdef __cplusplus\n'+\
@ -151,8 +139,7 @@ def write_version_header(header, chrome_version, cef_version):
return False return False
written = write_version_header(options.header, options.chrome_version, written = write_version_header(options.header)
options.cef_version)
if not options.quiet: if not options.quiet:
if written: if written:
sys.stdout.write('File ' + options.header + ' updated.\n') sys.stdout.write('File ' + options.header + ' updated.\n')

View File

@ -1,2 +1,2 @@
#!/bin/sh #!/bin/sh
python tools/make_version_header.py --header include/cef_version.h --cef_version VERSION.in --chrome_version ../chrome/VERSION --cpp_header_dir include python tools/make_version_header.py --header include/cef_version.h