summaryrefslogtreecommitdiffstats
path: root/init-repository.py
diff options
context:
space:
mode:
authorZeno Albisser <zeno.albisser@digia.com>2013-08-17 20:31:40 +0200
committerZeno Albisser <zeno.albisser@digia.com>2013-08-19 20:27:13 +0200
commitfada4c705acff45be8418f20d28f1a091e6afe47 (patch)
tree1a724178b9f6b38026f15182a5c46cbfa82ca6bc /init-repository.py
parentb9a97b2c4dca50f0c13a1006130e095e85936a2a (diff)
Update init-repository.py to allow using upstream chromium repository.
The regular workflow now is just to clone the qtwebengine repository and then execute the following commands. git submodule init && git submodule update --recursive && qmake && make This will also clone a submodule called 3rdparty which contains the chromium and ninja sources without pulling in further submodules and without a complete history. Developers that do want to have a complete chromium checkout instead should not use the above command sequence. Instead they should just clone qtwebengine, execute the init-repository.py script, run qmake and make. The init-repository.py script will then checkout the complete chromium sources into a subdirectory called 3rdparty_upstream. The location of these sources will be picked up by qmake automatically. Change-Id: I0fa4f1d554bdca2e852b6a97aa2e5462d90d8664 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Diffstat (limited to 'init-repository.py')
-rwxr-xr-xinit-repository.py74
1 files changed, 63 insertions, 11 deletions
diff --git a/init-repository.py b/init-repository.py
index 7abacccb8..5cd3dfb02 100755
--- a/init-repository.py
+++ b/init-repository.py
@@ -52,12 +52,17 @@ qtwebengine_src = os.path.abspath(os.path.join(os.path.dirname(__file__)))
sys.path.append(os.path.join(qtwebengine_src, 'tools'))
import git_submodule as GitSubmodule
-chrome_src = os.environ.get('CHROMIUM_SRC_DIR')
-if chrome_src:
- chrome_src = os.path.abspath(chrome_src)
-if not chrome_src or not os.path.isdir(chrome_src):
- chrome_src = os.path.join(qtwebengine_src, 'chromium')
- print 'CHROMIUM_SRC_DIR not set, falling back to ' + chrome_src
+chromium_src = os.environ.get('CHROMIUM_SRC_DIR')
+if chromium_src:
+ chromium_src = os.path.abspath(chromium_src)
+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
+
+# Write our chromium sources directory into git config.
+relative_chromium_src = os.path.relpath(chromium_src, qtwebengine_src)
+subprocess.call(['git', 'config', 'qtwebengine.chromiumsrcdir', relative_chromium_src])
+
def which(tool_name):
path = os.environ.get('PATH')
@@ -69,7 +74,7 @@ def which(tool_name):
def updateLastChange():
currentDir = os.getcwd()
- os.chdir(chrome_src)
+ os.chdir(chromium_src)
print 'updating LASTCHANGE files'
subprocess.call(['python', 'build/util/lastchange.py', '-o', 'build/util/LASTCHANGE'])
subprocess.call(['python', 'build/util/lastchange.py', '-s', 'third_party/WebKit', '-o', 'build/util/LASTCHANGE.blink'])
@@ -81,7 +86,7 @@ def buildNinja():
print 'found ninja in: ' + ninja_tool + ' ...not building new ninja.'
return
currentDir = os.getcwd()
- ninja_src = os.path.join(qtwebengine_src, 'build/ninja')
+ ninja_src = os.path.join(qtwebengine_src, '3rdparty_upstream/ninja')
os.chdir(ninja_src)
print 'building ninja...'
subprocess.call(['python', 'bootstrap.py'])
@@ -101,11 +106,58 @@ def applyPatches():
os.chdir(qtwebengine_src)
subprocess.call(['sh', './patches/patch-chromium.sh'])
+def initUpstreamSubmodules():
+ ninja_url = 'https://github.com/martine/ninja.git'
+ chromium_url = 'https://chromium.googlesource.com/chromium/src.git'
+ ninja_shasum = '40b51a0b986b8675e15b0cd1b10c272bf51fdb84'
+ chromium_shasum = '29d2d710e0e7961dff032ad4ab73887cc33122bb'
+ os.chdir(qtwebengine_src)
+
+ 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'])
+ gitmodules_file = open('.gitmodules', 'a')
+ gitmodules_file.writelines([' ignore = all\n'])
+ gitmodules_file.close()
+ if not '3rdparty_upstream/chromium' in current_submodules:
+ subprocess.call(['git', 'submodule', 'add', chromium_url, '3rdparty_upstream/chromium'])
+ gitmodules_file = open('.gitmodules', 'a')
+ gitmodules_file.writelines([' ignore = all\n'])
+ gitmodules_file.close()
+
+ gitignore_file = open('.gitignore')
+ gitignore_content = gitignore_file.readlines()
+ gitignore_file.close()
+
+ gitmodules_is_ignored = False
+ for gitignore_line in gitignore_content:
+ if '.gitmodules' in gitignore_line:
+ gitmodules_is_ignored = True
+ if not gitmodules_is_ignored:
+ gitignore_file = open('.gitignore', 'a')
+ gitignore_file.writelines(['.gitmodules\n'])
+ gitignore_file.close()
+
+ ninjaSubmodule = GitSubmodule.Submodule()
+ ninjaSubmodule.path = '3rdparty_upstream/ninja'
+ ninjaSubmodule.shasum = ninja_shasum
+ ninjaSubmodule.url = ninja_url
+ 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()
+
+
os.chdir(qtwebengine_src)
addGerritRemote()
installGitHooks()
-GitSubmodule.initSubmodules()
-applyPatches()
+initUpstreamSubmodules()
updateLastChange()
-buildNinja()
+applyPatches()
+#buildNinja()