diff options
author | Andras Becsi <andras.becsi@digia.com> | 2013-08-21 19:16:29 +0200 |
---|---|---|
committer | Andras Becsi <andras.becsi@digia.com> | 2013-08-21 23:25:29 +0200 |
commit | fd661fe6e07fc6771a9e3e936ca955a88004fd03 (patch) | |
tree | dd1a64b457208548549c661683352a31718efa73 /init-repository.py | |
parent | 6b94d9732f5950d43ed3e61e4bf5c6f12b46aead (diff) |
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 <zeno.albisser@digia.com>
Diffstat (limited to 'init-repository.py')
-rwxr-xr-x | init-repository.py | 76 |
1 files changed, 46 insertions, 30 deletions
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() |