Change CEF version number format to remove SVN dependency (issue #1580).

This commit is contained in:
Marshall Greenblatt 2015-03-16 19:34:35 -04:00
parent d17dc3e5de
commit 7acecd6b6b
14 changed files with 59 additions and 175 deletions

View File

@ -9,11 +9,11 @@
'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/cef', 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/cef',
'about_credits_file': '<(SHARED_INTERMEDIATE_DIR)/about_credits.html', 'about_credits_file': '<(SHARED_INTERMEDIATE_DIR)/about_credits.html',
'framework_name': 'Chromium Embedded Framework', 'framework_name': 'Chromium Embedded Framework',
'revision': '<!(python tools/revision.py)', 'commit_number': '<!(python tools/commit_number.py)',
'chrome_version': '<!(python ../build/util/version.py -f ../chrome/VERSION -t "@MAJOR@.@MINOR@.@BUILD@.@PATCH@")', 'chrome_version': '<!(python ../build/util/version.py -f ../chrome/VERSION -t "@MAJOR@.@MINOR@.@BUILD@.@PATCH@")',
# Need to be creative to match dylib version formatting requirements. # Need to be creative to match dylib version formatting requirements.
'version_mac_dylib': 'version_mac_dylib':
'<!(python ../build/util/version.py -f VERSION -f ../chrome/VERSION -t "@CEF_MAJOR@<(revision).@BUILD_HI@.@BUILD_LO@" -e "BUILD_HI=int(BUILD)/256" -e "BUILD_LO=int(BUILD)%256")', '<!(python ../build/util/version.py -f VERSION -f ../chrome/VERSION -t "@CEF_MAJOR@<(commit_number).@BUILD_HI@.@BUILD_LO@" -e "BUILD_HI=int(BUILD)/256" -e "BUILD_LO=int(BUILD)%256")',
}, },
'includes': [ 'includes': [
# Bring in the source file lists. # Bring in the source file lists.

View File

@ -256,11 +256,7 @@ class Delegate : public InternalHandlerDelegate {
TemplateParser parser; TemplateParser parser;
parser.Add("YEAR", MAKE_STRING(COPYRIGHT_YEAR)); parser.Add("YEAR", MAKE_STRING(COPYRIGHT_YEAR));
parser.Add("CEF", parser.Add("CEF", CEF_VERSION);
base::StringPrintf("%d.%d.%d",
CEF_VERSION_MAJOR,
CHROME_VERSION_BUILD,
CEF_REVISION));
parser.Add("CHROMIUM", parser.Add("CHROMIUM",
base::StringPrintf("%d.%d.%d.%d", base::StringPrintf("%d.%d.%d.%d",
CHROME_VERSION_MAJOR, CHROME_VERSION_MAJOR,

View File

@ -24,24 +24,18 @@ void CefCrashReporterClient::GetProductNameAndVersion(
base::string16* special_build, base::string16* special_build,
base::string16* channel_name) { base::string16* channel_name) {
*product_name = base::ASCIIToUTF16("cef"); *product_name = base::ASCIIToUTF16("cef");
*version = base::UTF8ToUTF16(base::StringPrintf( *version = base::ASCIIToUTF16(CEF_VERSION);
"%d.%d.%d", CEF_VERSION_MAJOR, CHROME_VERSION_BUILD, CEF_REVISION));
*special_build = base::string16(); *special_build = base::string16();
*channel_name = base::string16(); *channel_name = base::string16();
} }
#endif #endif
#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_IOS) #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_IOS)
#define PRODUCT_VERSION \
MAKE_STRING(CEF_VERSION_MAJOR) "." \
MAKE_STRING(CHROME_VERSION_BUILD) "." \
MAKE_STRING(CEF_REVISION)
void CefCrashReporterClient::GetProductNameAndVersion( void CefCrashReporterClient::GetProductNameAndVersion(
const char** product_name, const char** product_name,
const char** version) { const char** version) {
*product_name = "cef"; *product_name = "cef";
*version = PRODUCT_VERSION; *version = CEF_VERSION;
} }
base::FilePath CefCrashReporterClient::GetReporterLogFilename() { base::FilePath CefCrashReporterClient::GetReporterLogFilename() {

View File

@ -95,8 +95,8 @@ END
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION CEF_VERSION_MAJOR,CHROME_VERSION_BUILD,CEF_REVISION,0 FILEVERSION CEF_VERSION_MAJOR,CHROME_VERSION_BUILD,CEF_COMMIT_NUMBER,0
PRODUCTVERSION CEF_VERSION_MAJOR,CHROME_VERSION_BUILD,CEF_REVISION,0 PRODUCTVERSION CEF_VERSION_MAJOR,CHROME_VERSION_BUILD,CEF_COMMIT_NUMBER,0
FILEFLAGSMASK 0x17L FILEFLAGSMASK 0x17L
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -112,12 +112,12 @@ BEGIN
BLOCK "040904b0" BLOCK "040904b0"
BEGIN BEGIN
VALUE "FileDescription", "Chromium Embedded Framework (CEF) Dynamic Link Library" VALUE "FileDescription", "Chromium Embedded Framework (CEF) Dynamic Link Library"
VALUE "FileVersion", MAKE_STRING(CEF_VERSION_MAJOR) "." MAKE_STRING(CHROME_VERSION_BUILD) "." MAKE_STRING(CEF_REVISION) VALUE "FileVersion", CEF_VERSION
VALUE "InternalName", "libcef" VALUE "InternalName", "libcef"
VALUE "LegalCopyright", "Copyright (C) " MAKE_STRING(COPYRIGHT_YEAR) " The Chromium Embedded Framework Authors" VALUE "LegalCopyright", "Copyright (C) " MAKE_STRING(COPYRIGHT_YEAR) " The Chromium Embedded Framework Authors"
VALUE "OriginalFilename", "libcef.dll" VALUE "OriginalFilename", "libcef.dll"
VALUE "ProductName", "Chromium Embedded Framework (CEF) Dynamic Link Library" VALUE "ProductName", "Chromium Embedded Framework (CEF) Dynamic Link Library"
VALUE "ProductVersion", MAKE_STRING(CEF_VERSION_MAJOR) "." MAKE_STRING(CHROME_VERSION_BUILD) "." MAKE_STRING(CEF_REVISION) VALUE "ProductVersion", CEF_VERSION
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View File

@ -6,14 +6,10 @@
#include "include/cef_version.h" #include "include/cef_version.h"
#include <cstddef> #include <cstddef>
CEF_EXPORT int cef_build_revision() {
return CEF_REVISION;
}
CEF_EXPORT int cef_version_info(int entry) { CEF_EXPORT int cef_version_info(int entry) {
switch (entry) { switch (entry) {
case 0: return CEF_VERSION_MAJOR; case 0: return CEF_VERSION_MAJOR;
case 1: return CEF_REVISION; case 1: return CEF_COMMIT_NUMBER;
case 2: return CHROME_VERSION_MAJOR; case 2: return CHROME_VERSION_MAJOR;
case 3: return CHROME_VERSION_MINOR; case 3: return CHROME_VERSION_MINOR;
case 4: return CHROME_VERSION_BUILD; case 4: return CHROME_VERSION_BUILD;
@ -26,6 +22,7 @@ CEF_EXPORT const char* cef_api_hash(int entry) {
switch (entry) { switch (entry) {
case 0: return CEF_API_HASH_PLATFORM; case 0: return CEF_API_HASH_PLATFORM;
case 1: return CEF_API_HASH_UNIVERSAL; case 1: return CEF_API_HASH_UNIVERSAL;
case 2: return CEF_COMMIT_HASH;
default: return NULL; default: return NULL;
} }
} }

View File

@ -122,8 +122,8 @@ END
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION CEF_VERSION_MAJOR,CHROME_VERSION_BUILD,CEF_REVISION,0 FILEVERSION CEF_VERSION_MAJOR,CHROME_VERSION_BUILD,CEF_COMMIT_NUMBER,0
PRODUCTVERSION CEF_VERSION_MAJOR,CHROME_VERSION_BUILD,CEF_REVISION,0 PRODUCTVERSION CEF_VERSION_MAJOR,CHROME_VERSION_BUILD,CEF_COMMIT_NUMBER,0
FILEFLAGSMASK 0x17L FILEFLAGSMASK 0x17L
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -139,12 +139,12 @@ BEGIN
BLOCK "040904b0" BLOCK "040904b0"
BEGIN BEGIN
VALUE "FileDescription", "Chromium Embedded Framework (CEF) Client Application" VALUE "FileDescription", "Chromium Embedded Framework (CEF) Client Application"
VALUE "FileVersion", MAKE_STRING(CEF_VERSION_MAJOR) "." MAKE_STRING(CHROME_VERSION_BUILD) "." MAKE_STRING(CEF_REVISION) VALUE "FileVersion", CEF_VERSION
VALUE "InternalName", "cefclient" VALUE "InternalName", "cefclient"
VALUE "LegalCopyright", "Copyright (C) " MAKE_STRING(COPYRIGHT_YEAR) " The Chromium Embedded Framework Authors" VALUE "LegalCopyright", "Copyright (C) " MAKE_STRING(COPYRIGHT_YEAR) " The Chromium Embedded Framework Authors"
VALUE "OriginalFilename", "cefclient.exe" VALUE "OriginalFilename", "cefclient.exe"
VALUE "ProductName", "Chromium Embedded Framework (CEF) Client Application" VALUE "ProductName", "Chromium Embedded Framework (CEF) Client Application"
VALUE "ProductVersion", MAKE_STRING(CEF_VERSION_MAJOR) "." MAKE_STRING(CHROME_VERSION_BUILD) "." MAKE_STRING(CEF_REVISION) VALUE "ProductVersion", CEF_VERSION
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View File

@ -8,13 +8,9 @@
#include "include/cef_version.h" #include "include/cef_version.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
TEST(VersionTest, BuildRevision) {
EXPECT_EQ(CEF_REVISION, cef_build_revision());
}
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_REVISION, cef_version_info(1)); EXPECT_EQ(CEF_COMMIT_NUMBER, cef_version_info(1));
EXPECT_EQ(CHROME_VERSION_MAJOR, cef_version_info(2)); EXPECT_EQ(CHROME_VERSION_MAJOR, cef_version_info(2));
EXPECT_EQ(CHROME_VERSION_MINOR, cef_version_info(3)); EXPECT_EQ(CHROME_VERSION_MINOR, cef_version_info(3));
EXPECT_EQ(CHROME_VERSION_BUILD, cef_version_info(4)); EXPECT_EQ(CHROME_VERSION_BUILD, cef_version_info(4));
@ -24,4 +20,5 @@ TEST(VersionTest, VersionInfo) {
TEST(VersionTest, ApiHash) { TEST(VersionTest, ApiHash) {
EXPECT_STREQ(CEF_API_HASH_PLATFORM, cef_api_hash(0)); EXPECT_STREQ(CEF_API_HASH_PLATFORM, cef_api_hash(0));
EXPECT_STREQ(CEF_API_HASH_UNIVERSAL, cef_api_hash(1)); EXPECT_STREQ(CEF_API_HASH_UNIVERSAL, cef_api_hash(1));
EXPECT_STREQ(CEF_COMMIT_HASH, cef_api_hash(2));
} }

View File

@ -6,7 +6,6 @@
import os, re, string, sys import os, re, string, sys
from file_util import * from file_util import *
import git_util as git import git_util as git
import svn_util as svn
# script directory # script directory
script_dir = os.path.dirname(__file__) script_dir = os.path.dirname(__file__)
@ -41,9 +40,9 @@ except ImportError, e:
import cpplint_chromium import cpplint_chromium
# The default implementation of FileInfo.RepositoryName looks for the top-most # The default implementation of FileInfo.RepositoryName looks for the top-most
# directory that contains a .git or .svn folder. This is a problem for CEF # directory that contains a .git folder. This is a problem for CEF because the
# because the CEF root folder (which may have an arbitrary name) lives inside # CEF root folder (which may have an arbitrary name) lives inside the Chromium
# the Chromium src folder. Reimplement in a dumb but sane way. # src folder. Reimplement in a dumb but sane way.
def patch_RepositoryName(self): def patch_RepositoryName(self):
fullname = self.FullName() fullname = self.FullName()
project_dir = os.path.dirname(fullname) project_dir = os.path.dirname(fullname)
@ -87,13 +86,6 @@ def check_style(args, white_list = None, black_list = None):
print "Total errors found: %d\n" % cpplint._cpplint_state.error_count print "Total errors found: %d\n" % cpplint._cpplint_state.error_count
return 1 return 1
def get_changed_files():
""" Retrieve the list of changed files. """
try:
return svn.get_changed_files(cef_dir)
except:
return git.get_changed_files(cef_dir)
if __name__ == "__main__": if __name__ == "__main__":
# Start with the default parameters. # Start with the default parameters.
args = [ args = [
@ -115,7 +107,7 @@ if __name__ == "__main__":
for arg in args: for arg in args:
if arg == '--changed': if arg == '--changed':
# Add any changed files. # Add any changed files.
changed = get_changed_files() changed = git.get_changed_files(cef_dir)
elif arg[:2] == '--' or not os.path.isdir(arg): elif arg[:2] == '--' or not os.path.isdir(arg):
# Pass argument unchanged. # Pass argument unchanged.
new_args.append(arg) new_args.append(arg)

View File

@ -2,7 +2,6 @@
# 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.
import svn_util as svn
import git_util as git import git_util as git
import os import os
import sys import sys
@ -12,11 +11,7 @@ if __name__ != "__main__":
sys.stderr.write('This file cannot be loaded as a module!') sys.stderr.write('This file cannot be loaded as a module!')
sys.exit() sys.exit()
if os.path.exists(os.path.join('.', '.svn')): if git.is_checkout('.'):
sys.stdout.write(svn.get_revision()) sys.stdout.write(git.get_commit_number())
elif os.path.exists(os.path.join('.', '.git')):
sys.stdout.write(git.get_svn_revision())
else: else:
raise Exception('Not a valid checkout') raise Exception('Not a valid checkout')

View File

@ -11,7 +11,7 @@ def is_checkout(path):
def get_hash(path = '.', branch = 'HEAD'): def get_hash(path = '.', branch = 'HEAD'):
""" Returns the git hash for the specified branch/tag/hash. """ """ Returns the git hash for the specified branch/tag/hash. """
cmd = "git rev-parse %s" % (branch) cmd = "git rev-parse %s" % branch
result = exec_cmd(cmd, path) result = exec_cmd(cmd, path)
if result['out'] != '': if result['out'] != '':
return result['out'].strip() return result['out'].strip()
@ -25,18 +25,13 @@ def get_url(path = '.'):
return result['out'].strip() return result['out'].strip()
return 'Unknown' return 'Unknown'
def get_svn_revision(path = '.', branch = 'HEAD'): def get_commit_number(path = '.', branch = 'HEAD'):
""" Returns the SVN revision associated with the specified path and git """ Returns the number of commits in the specified branch/tag/hash. """
branch/tag/hash. """ cmd = "git rev-list --count %s" % branch
svn_rev = "None"
cmd = "git log --grep=^git-svn-id: -n 1 %s" % (branch)
result = exec_cmd(cmd, path) result = exec_cmd(cmd, path)
if result['err'] == '': if result['out'] != '':
for line in result['out'].split('\n'): return result['out'].strip()
if line.find("git-svn-id") > 0: return '0'
svn_rev = line.split("@")[1].split()[0]
break
return svn_rev
def get_changed_files(path = '.'): def get_changed_files(path = '.'):
""" Retrieves the list of changed files. """ """ Retrieves the list of changed files. """

View File

@ -10,7 +10,6 @@ import os
import re import re
import shlex import shlex
import subprocess import subprocess
import svn_util as svn
import git_util as git import git_util as git
import sys import sys
import zipfile import zipfile
@ -258,28 +257,21 @@ cef_dir = os.path.abspath(os.path.join(script_dir, os.pardir))
# src directory # src directory
src_dir = os.path.abspath(os.path.join(cef_dir, os.pardir)) src_dir = os.path.abspath(os.path.join(cef_dir, os.pardir))
# retrieve url and revision information for CEF if not git.is_checkout(cef_dir):
if svn.is_checkout(cef_dir):
cef_info = svn.get_svn_info(cef_dir)
cef_url = cef_info['url']
cef_rev = cef_info['revision']
elif git.is_checkout(cef_dir):
cef_url = git.get_url(cef_dir)
cef_rev = git.get_svn_revision(cef_dir)
else:
raise Exception('Not a valid checkout: %s' % (cef_dir)) raise Exception('Not a valid checkout: %s' % (cef_dir))
# retrieve url and revision information for Chromium # retrieve information for CEF
if svn.is_checkout(src_dir): cef_url = git.get_url(cef_dir)
chromium_info = svn.get_svn_info(src_dir) cef_rev = git.get_hash(cef_dir)
chromium_url = chromium_info['url'] cef_commit_number = git.get_commit_number(cef_dir)
chromium_rev = chromium_info['revision']
elif git.is_checkout(src_dir): if not git.is_checkout(src_dir):
chromium_url = git.get_url(src_dir)
chromium_rev = git.get_hash(src_dir)
else:
raise Exception('Not a valid checkout: %s' % (src_dir)) raise Exception('Not a valid checkout: %s' % (src_dir))
# retrieve information for Chromium
chromium_url = git.get_url(src_dir)
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) # Read and parse the version file (key=value pairs, one per line)
@ -287,7 +279,7 @@ args = {}
read_version_file(os.path.join(cef_dir, 'VERSION'), args) read_version_file(os.path.join(cef_dir, 'VERSION'), args)
read_version_file(os.path.join(cef_dir, '../chrome/VERSION'), args) read_version_file(os.path.join(cef_dir, '../chrome/VERSION'), args)
cef_ver = args['CEF_MAJOR']+'.'+args['BUILD']+'.'+cef_rev 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'] chromium_ver = args['MAJOR']+'.'+args['MINOR']+'.'+args['BUILD']+'.'+args['PATCH']
# list of output directories to be archived # list of output directories to be archived

View File

@ -6,7 +6,6 @@ from date_util import *
from file_util import * from file_util import *
from optparse import OptionParser from optparse import OptionParser
from cef_api_hash import cef_api_hash from cef_api_hash import cef_api_hash
import svn_util as svn
import git_util as git import git_util as git
import sys import sys
@ -40,7 +39,7 @@ if options.header is None or options.cef_version is None or options.chrome_versi
parser.print_help(sys.stdout) parser.print_help(sys.stdout)
sys.exit() sys.exit()
def write_svn_header(header, chrome_version, cef_version, cpp_header_dir): def write_version_header(header, chrome_version, cef_version, cpp_header_dir):
""" 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. """
@ -60,12 +59,12 @@ def write_svn_header(header, chrome_version, cef_version, cpp_header_dir):
year = get_year() year = get_year()
if svn.is_checkout('.'): if not git.is_checkout('.'):
revision = svn.get_revision() raise Exception('Not a valid checkout')
elif git.is_checkout('.'):
revision = git.get_svn_revision() commit_number = git.get_commit_number()
else: commit_hash = git.get_hash()
raise Exception('Not a valid checkout') version = '%s.%s.%s.g%s' % (args['CEF_MAJOR'], args['BUILD'], commit_number, commit_hash[:7])
# calculate api hashes # calculate api hashes
api_hash_calculator = cef_api_hash(cpp_header_dir, verbose = False) api_hash_calculator = cef_api_hash(cpp_header_dir, verbose = False)
@ -106,8 +105,10 @@ def write_svn_header(header, chrome_version, cef_version, cpp_header_dir):
'//\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'+\
'#define CEF_VERSION_MAJOR ' + args['CEF_MAJOR'] + '\n'+\ '#define CEF_VERSION_MAJOR ' + args['CEF_MAJOR'] + '\n'+\
'#define CEF_REVISION ' + revision + '\n'+\ '#define CEF_COMMIT_NUMBER ' + commit_number + '\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 ' + args['MAJOR'] + '\n'+\
'#define CHROME_VERSION_MINOR ' + args['MINOR'] + '\n'+\ '#define CHROME_VERSION_MINOR ' + args['MINOR'] + '\n'+\
@ -134,15 +135,10 @@ def write_svn_header(header, chrome_version, cef_version, cpp_header_dir):
'#elif defined(OS_LINUX)\n'+\ '#elif defined(OS_LINUX)\n'+\
'#define CEF_API_HASH_PLATFORM "' + api_hashes['linux'] + '"\n'+\ '#define CEF_API_HASH_PLATFORM "' + api_hashes['linux'] + '"\n'+\
'#endif\n\n'+\ '#endif\n\n'+\
'///\n'+\
'// Returns the CEF build revision for the libcef library.\n'+\
'///\n'+\
'CEF_EXPORT int cef_build_revision();\n\n'+\
'///\n'+\
'// 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_REVISION\n'+\ '// 1 - CEF_COMMIT_NUMBER\n'+\
'// 2 - CHROME_VERSION_MAJOR\n'+\ '// 2 - CHROME_VERSION_MAJOR\n'+\
'// 3 - CHROME_VERSION_MINOR\n'+\ '// 3 - CHROME_VERSION_MINOR\n'+\
'// 4 - CHROME_VERSION_BUILD\n'+\ '// 4 - CHROME_VERSION_BUILD\n'+\
@ -155,6 +151,7 @@ def write_svn_header(header, chrome_version, cef_version, cpp_header_dir):
'// hash value will be returned:\n'+\ '// hash value will be returned:\n'+\
'// 0 - CEF_API_HASH_PLATFORM\n'+\ '// 0 - CEF_API_HASH_PLATFORM\n'+\
'// 1 - CEF_API_HASH_UNIVERSAL\n'+\ '// 1 - CEF_API_HASH_UNIVERSAL\n'+\
'// 2 - CEF_COMMIT_HASH\n'+\
'///\n'+\ '///\n'+\
'CEF_EXPORT const char* cef_api_hash(int entry);\n\n'+\ 'CEF_EXPORT const char* cef_api_hash(int entry);\n\n'+\
'#ifdef __cplusplus\n'+\ '#ifdef __cplusplus\n'+\
@ -168,7 +165,7 @@ def write_svn_header(header, chrome_version, cef_version, cpp_header_dir):
return False return False
written = write_svn_header(options.header, options.chrome_version, options.cef_version, options.cpp_header_dir) written = write_version_header(options.header, options.chrome_version, options.cef_version, options.cpp_header_dir)
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

@ -7,7 +7,6 @@ import os
import re import re
import sys import sys
from exec_util import exec_cmd from exec_util import exec_cmd
import svn_util as svn
import git_util as git import git_util as git
def msg(message): def msg(message):
@ -62,11 +61,7 @@ cef_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
src_dir = os.path.join(cef_dir, os.pardir) src_dir = os.path.join(cef_dir, os.pardir)
# Determine the type of Chromium checkout. # Determine the type of Chromium checkout.
if svn.is_checkout(src_dir): if not git.is_checkout(src_dir):
src_is_git = False
elif git.is_checkout(src_dir):
src_is_git = True
else:
raise Exception('Not a valid checkout: %s' % src_dir) raise Exception('Not a valid checkout: %s' % src_dir)
patch_dir = os.path.join(cef_dir, 'patch') patch_dir = os.path.join(cef_dir, 'patch')
@ -104,10 +99,7 @@ for patch in patches:
patch_path)) patch_path))
if os.path.exists(patch_path_abs): if os.path.exists(patch_path_abs):
msg('Reverting changes to %s' % patch_path_abs) msg('Reverting changes to %s' % patch_path_abs)
if src_is_git: cmd = 'git checkout -- %s' % (patch_path_abs)
cmd = 'git checkout -- %s' % (patch_path_abs)
else:
cmd = 'svn revert %s' % (patch_path_abs)
result = exec_cmd(cmd, patch_root_abs) result = exec_cmd(cmd, patch_root_abs)
if result['err'] != '': if result['err'] != '':
msg('Failed to revert file: %s' % result['err']) msg('Failed to revert file: %s' % result['err'])
@ -134,7 +126,7 @@ for patch in patches:
if not options.revert: if not options.revert:
msg('Saving changes to %s' % patch_file) msg('Saving changes to %s' % patch_file)
if src_is_git and added_paths: if added_paths:
# Inform git of the added paths so they appear in the patch file. # Inform git of the added paths so they appear in the patch file.
cmd = 'git add -N %s' % ' '.join(added_paths) cmd = 'git add -N %s' % ' '.join(added_paths)
result = exec_cmd(cmd, patch_root_abs) result = exec_cmd(cmd, patch_root_abs)
@ -143,10 +135,7 @@ for patch in patches:
# Re-create the patch file. # Re-create the patch file.
patch_paths_str = ' '.join(patch_paths) patch_paths_str = ' '.join(patch_paths)
if src_is_git: cmd = 'git diff --no-prefix --relative %s' % patch_paths_str
cmd = 'git diff --no-prefix --relative %s' % patch_paths_str
else:
cmd = 'svn diff %s' % patch_paths_str
result = exec_cmd(cmd, patch_root_abs) result = exec_cmd(cmd, patch_root_abs)
if result['err'] != '' and result['err'].find('warning:') != 0: if result['err'] != '' and result['err'].find('warning:') != 0:
raise Exception('Failed to create patch file: %s' % result['err']) raise Exception('Failed to create patch file: %s' % result['err'])

View File

@ -1,60 +0,0 @@
# Copyright (c) 2014 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 exec_util import exec_cmd
import os
import urllib
import xml.etree.ElementTree as ET
def is_checkout(path):
""" Returns true if the path represents an svn checkout. """
return os.path.exists(os.path.join(path, '.svn'))
def check_url(url):
""" Check the URL and raise an exception if invalid. """
if ':' in url[:7]:
parts = url.split(':', 1)
if (parts[0] == 'http' or parts[0] == 'https' or parts[0] == 'svn') and \
parts[1] == urllib.quote(parts[1]):
return url
raise Exception('Invalid URL: %s' % (url))
def get_svn_info(path = '.'):
""" Retrieves the URL and revision from svn info. """
url = 'None'
rev = 'None'
cmd = "svn info --xml %s" % (path)
is_http = path[0:4] == 'http'
if is_http or os.path.exists(path):
result = exec_cmd(cmd, path if not is_http else '.')
if result['err'] == '':
tree = ET.ElementTree(ET.fromstring(result['out']))
entry = tree.getroot().find('entry')
url = entry.find('url').text
rev = entry.attrib['revision']
else:
raise Exception("Failed to execute svn info: %s" % (result['err']))
return {'url': url, 'revision': rev}
def get_revision(path = '.'):
""" Retrieves the revision from svn info. """
info = get_svn_info(path)
if info['revision'] == 'None':
raise Exception('Unable to retrieve SVN revision for %s' % (path))
return info['revision']
def get_changed_files(path = '.'):
""" Retrieves the list of changed files from svn status. """
files = []
if os.path.exists(path):
try:
stream = os.popen('svn status '+path)
for line in stream:
status = line[0]
# Return paths with add, modify and switch status.
if status == 'A' or status == 'M' or status == 'S':
files.append(line[8:].strip())
except IOError, (errno, strerror):
raise
return files