From fd661fe6e07fc6771a9e3e936ca955a88004fd03 Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Wed, 21 Aug 2013 19:16:29 +0200 Subject: Add command line flags to init-repository.py This patch adds --upstream (-u) and --snapshot (-s) flags to the init-repository script which make it possible to choose the Chromium sources to use when building QtWebEngine. The default is to use the upstream submodules. This option is persisted with git config and used throughout the build system. This patch also keeps support for the CHROMIUM_SRC_DIR env variable which can be used to specify external Chromium sources which are assumed to be set up for the build and thus left untouched by the script. Change-Id: Ic83984199770076f90867f1b22a63b220bfe7359 Reviewed-by: Zeno Albisser --- init-repository.py | 76 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 46 insertions(+), 30 deletions(-) (limited to 'init-repository.py') diff --git a/init-repository.py b/init-repository.py index cc853a80d..795a2f4b0 100755 --- a/init-repository.py +++ b/init-repository.py @@ -46,6 +46,7 @@ import os import subprocess import sys import string +import argparse qtwebengine_src = os.path.abspath(os.path.join(os.path.dirname(__file__))) @@ -53,11 +54,26 @@ sys.path.append(os.path.join(qtwebengine_src, 'tools')) import git_submodule as GitSubmodule chromium_src = os.environ.get('CHROMIUM_SRC_DIR') +ninja_src = os.path.join(qtwebengine_src, '3rdparty_upstream/ninja') +use_external_chromium = False + +parser = argparse.ArgumentParser(description='Initialize QtWebEngine repository.') +group = parser.add_mutually_exclusive_group() +group.add_argument('-u', '--upstream', action='store_true', help='initialize using upstream Chromium submodule (default)') +group.add_argument('-s', '--snapshot', action='store_true', help='initialize using flat Chromium snapshot submodule') +args = parser.parse_args() + if chromium_src: - chromium_src = os.path.abspath(chromium_src) + chromium_src = os.path.abspath(chromium_src) + use_external_chromium = True if not chromium_src or not os.path.isdir(chromium_src): - chromium_src = os.path.join(qtwebengine_src, '3rdparty_upstream/chromium') - print 'CHROMIUM_SRC_DIR not set, falling back to ' + chromium_src + if args.snapshot: + chromium_src = os.path.join(qtwebengine_src, '3rdparty/chromium') + ninja_src = os.path.join(qtwebengine_src, '3rdparty/ninja') + if args.upstream or not chromium_src: + chromium_src = os.path.join(qtwebengine_src, '3rdparty_upstream/chromium') + args.upstream = True + print 'CHROMIUM_SRC_DIR not set, using Chromium in' + chromium_src # Write our chromium sources directory into git config. relative_chromium_src = os.path.relpath(chromium_src, qtwebengine_src) @@ -73,6 +89,8 @@ def which(tool_name): return '' def updateLastChange(): + if use_external_chromium: + return currentDir = os.getcwd() os.chdir(chromium_src) print 'updating LASTCHANGE files' @@ -80,18 +98,6 @@ def updateLastChange(): subprocess.call(['python', 'build/util/lastchange.py', '-s', 'third_party/WebKit', '-o', 'build/util/LASTCHANGE.blink']) os.chdir(currentDir) -def buildNinja(): - ninja_tool = which('ninja') - if ninja_tool: - print 'found ninja in: ' + ninja_tool + ' ...not building new ninja.' - return - currentDir = os.getcwd() - ninja_src = os.path.join(qtwebengine_src, '3rdparty_upstream/ninja') - os.chdir(ninja_src) - print 'building ninja...' - subprocess.call(['python', 'bootstrap.py']) - os.chdir(currentDir) - def addGerritRemote(): os.chdir(qtwebengine_src) remotes = subprocess.check_output(['git', 'remote']) @@ -103,6 +109,8 @@ def installGitHooks(): subprocess.call(['scp', '-p', 'codereview.qt-project.org:hooks/commit-msg', '.git/hooks']) def applyPatches(): + if use_external_chromium: + return os.chdir(qtwebengine_src) subprocess.call(['sh', './patches/patch-chromium.sh']) @@ -113,14 +121,10 @@ def initUpstreamSubmodules(): chromium_shasum = '29d2d710e0e7961dff032ad4ab73887cc33122bb' os.chdir(qtwebengine_src) - print 'Configuring git to ignore all submodules. Submodule changes will not show up in "git diff"!' - subprocess.call(['git', 'config', 'diff.ignoreSubmodules', 'all']) - subprocess.call(['git', 'update-index', '--assume-unchanged', '.gitmodules']) - current_submodules = subprocess.check_output(['git', 'submodule']) if not '3rdparty_upstream/ninja' in current_submodules: subprocess.call(['git', 'submodule', 'add', ninja_url, '3rdparty_upstream/ninja']) - if not '3rdparty_upstream/chromium' in current_submodules: + if not use_external_chromium and not '3rdparty_upstream/chromium' in current_submodules: subprocess.call(['git', 'submodule', 'add', chromium_url, '3rdparty_upstream/chromium']) ninjaSubmodule = GitSubmodule.Submodule() @@ -130,19 +134,31 @@ def initUpstreamSubmodules(): ninjaSubmodule.os = 'all' ninjaSubmodule.initialize() - chromiumSubmodule = GitSubmodule.Submodule() - chromiumSubmodule.path = '3rdparty_upstream/chromium' - chromiumSubmodule.shasum = chromium_shasum - chromiumSubmodule.url = chromium_url - chromiumSubmodule.os = 'all' - chromiumSubmodule.initialize() + if not use_external_chromium: + chromiumSubmodule = GitSubmodule.Submodule() + chromiumSubmodule.path = '3rdparty_upstream/chromium' + chromiumSubmodule.shasum = chromium_shasum + chromiumSubmodule.url = chromium_url + chromiumSubmodule.os = 'all' + chromiumSubmodule.initialize() +def initSnapshot(): + snapshot = GitSubmodule.Submodule() + snapshot.path = '3rdparty' + snapshot.os = 'all' + snapshot.initialize() os.chdir(qtwebengine_src) addGerritRemote() installGitHooks() -initUpstreamSubmodules() -updateLastChange() -applyPatches() -#buildNinja() +print 'Configuring git to ignore all submodules. Submodule changes will not show up in "git diff"!' +subprocess.call(['git', 'config', 'diff.ignoreSubmodules', 'all']) +subprocess.call(['git', 'update-index', '--assume-unchanged', '.gitmodules']) + +if args.upstream: + initUpstreamSubmodules() + updateLastChange() + applyPatches() +if args.snapshot: + initSnapshot() -- cgit v1.2.3