summaryrefslogtreecommitdiffstats
path: root/init-repository.py
diff options
context:
space:
mode:
authorAndras Becsi <andras.becsi@digia.com>2013-08-21 19:16:29 +0200
committerAndras Becsi <andras.becsi@digia.com>2013-08-21 23:25:29 +0200
commitfd661fe6e07fc6771a9e3e936ca955a88004fd03 (patch)
treedd1a64b457208548549c661683352a31718efa73 /init-repository.py
parent6b94d9732f5950d43ed3e61e4bf5c6f12b46aead (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-xinit-repository.py76
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()