From fada4c705acff45be8418f20d28f1a091e6afe47 Mon Sep 17 00:00:00 2001 From: Zeno Albisser Date: Sat, 17 Aug 2013 20:31:40 +0200 Subject: 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 --- init-repository.py | 74 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 63 insertions(+), 11 deletions(-) (limited to 'init-repository.py') 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() -- cgit v1.2.3