summaryrefslogtreecommitdiffstats
path: root/tools/scripts
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-09-01 18:03:41 +0200
committerJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-09-10 13:02:00 +0200
commit65d149352d4062356c15dc496f738fe51f257557 (patch)
tree488f67a555aa86b9ceed724302f45388987211ae /tools/scripts
parent8b058c31881e3b05743ff3d3bd9961b5d2b2dd62 (diff)
Clean up the module root directory
This moves init-repository.py to tools/scripts since it should now mainly be used by Qt WebEngine developers after our integration with qt5.git. Also remove the README file since most of the information is no as relevant for the Qt module audience as it was for a labs project. Change-Id: Iad9f6582d0ec0834cdaf38d0551d24f2c273badf Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Diffstat (limited to 'tools/scripts')
-rwxr-xr-xtools/scripts/init-repository.py145
1 files changed, 145 insertions, 0 deletions
diff --git a/tools/scripts/init-repository.py b/tools/scripts/init-repository.py
new file mode 100755
index 00000000..1141ee98
--- /dev/null
+++ b/tools/scripts/init-repository.py
@@ -0,0 +1,145 @@
+#!/usr/bin/env python
+
+#############################################################################
+#
+# Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+# Contact: http://www.qt-project.org/legal
+#
+# This file is part of the QtWebEngine module of the Qt Toolkit.
+#
+# $QT_BEGIN_LICENSE:LGPL$
+# Commercial License Usage
+# Licensees holding valid commercial Qt licenses may use this file in
+# accordance with the commercial license agreement provided with the
+# Software or, alternatively, in accordance with the terms contained in
+# a written agreement between you and Digia. For licensing terms and
+# conditions see http://qt.digia.com/licensing. For further information
+# use the contact form at http://qt.digia.com/contact-us.
+#
+# GNU Lesser General Public License Usage
+# Alternatively, this file may be used under the terms of the GNU Lesser
+# General Public License version 2.1 as published by the Free Software
+# Foundation and appearing in the file LICENSE.LGPL included in the
+# packaging of this file. Please review the following information to
+# ensure the GNU Lesser General Public License version 2.1 requirements
+# will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+#
+# In addition, as a special exception, Digia gives you certain additional
+# rights. These rights are described in the Digia Qt LGPL Exception
+# version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+#
+# GNU General Public License Usage
+# Alternatively, this file may be used under the terms of the GNU
+# General Public License version 3.0 as published by the Free Software
+# Foundation and appearing in the file LICENSE.GPL included in the
+# packaging of this file. Please review the following information to
+# ensure the GNU General Public License version 3.0 requirements will be
+# met: http://www.gnu.org/copyleft/gpl.html.
+#
+#
+# $QT_END_LICENSE$
+#
+#############################################################################
+
+import glob
+import os
+import subprocess
+import sys
+import string
+import argparse
+
+qtwebengine_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
+
+import git_submodule as GitSubmodule
+import version_resolver as resolver
+
+chromium_src = os.environ.get('CHROMIUM_SRC_DIR')
+ninja_src = os.path.join(qtwebengine_root, 'src/3rdparty_upstream/ninja')
+use_external_chromium = False
+
+parser = argparse.ArgumentParser(description='Initialize QtWebEngine repository.')
+parser.add_argument('--baseline-upstream', action='store_true', help='initialize using upstream Chromium submodule w/o applying patches (for maintenance purposes only)')
+group = parser.add_mutually_exclusive_group()
+group.add_argument('-u', '--upstream', action='store_true', help='initialize using upstream Chromium submodule')
+group.add_argument('-s', '--snapshot', action='store_true', help='initialize using flat Chromium snapshot submodule (default)')
+args = parser.parse_args()
+
+if args.baseline_upstream:
+ args.upstream = True
+
+if chromium_src:
+ chromium_src = os.path.abspath(chromium_src)
+ use_external_chromium = True
+if not chromium_src or not os.path.isdir(chromium_src):
+ if args.upstream:
+ chromium_src = os.path.join(qtwebengine_root, 'src/3rdparty_upstream/chromium')
+ if args.snapshot or not chromium_src:
+ chromium_src = os.path.join(qtwebengine_root, 'src/3rdparty/chromium')
+ ninja_src = os.path.join(qtwebengine_root, 'src/3rdparty/ninja')
+ args.snapshot = True
+ print 'CHROMIUM_SRC_DIR not set, using Chromium in' + chromium_src
+
+if not args.baseline_upstream:
+ # Write our chromium sources directory into git config.
+ relative_chromium_src = os.path.relpath(chromium_src, qtwebengine_root)
+ subprocess.call(['git', 'config', 'qtwebengine.chromiumsrcdir', relative_chromium_src])
+
+
+def updateLastChange():
+ if use_external_chromium:
+ return
+ currentDir = os.getcwd()
+ 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'])
+ os.chdir(currentDir)
+
+def initUpstreamSubmodules():
+ ninja_url = 'https://github.com/martine/ninja.git'
+ chromium_url = 'https://chromium.googlesource.com/chromium/src.git'
+ ninja_shasum = '7103c32646df958b0287c65b1c660bf528a191d6'
+ chromium_ref = 'refs/tags/' + resolver.currentVersion()
+ os.chdir(qtwebengine_root)
+
+ current_submodules = subprocess.check_output(['git', 'submodule'])
+ if not 'src/3rdparty_upstream/ninja' in current_submodules:
+ subprocess.call(['git', 'submodule', 'add', ninja_url, 'src/3rdparty_upstream/ninja'])
+ if not use_external_chromium and not 'src/3rdparty_upstream/chromium' in current_submodules:
+ subprocess.call(['git', 'submodule', 'add', chromium_url, 'src/3rdparty_upstream/chromium'])
+
+ ninjaSubmodule = GitSubmodule.Submodule()
+ ninjaSubmodule.path = 'src/3rdparty_upstream/ninja'
+ ninjaSubmodule.shasum = ninja_shasum
+ ninjaSubmodule.url = ninja_url
+ ninjaSubmodule.os = 'all'
+ ninjaSubmodule.initialize()
+
+ if not use_external_chromium:
+ chromiumSubmodule = GitSubmodule.Submodule()
+ chromiumSubmodule.path = 'src/3rdparty_upstream/chromium'
+ chromiumSubmodule.ref = chromium_ref
+ chromiumSubmodule.url = chromium_url
+ chromiumSubmodule.os = 'all'
+ chromiumSubmodule.initialize()
+ chromiumSubmodule.initSubmodules()
+
+ # Unstage repositories so we do not accidentally commit them.
+ subprocess.call(['git', 'reset', '-q', 'HEAD', 'src/3rdparty_upstream/ninja'])
+ subprocess.call(['git', 'reset', '-q', 'HEAD', 'src/3rdparty_upstream/chromium'])
+
+def initSnapshot():
+ snapshot = GitSubmodule.Submodule()
+ snapshot.path = 'src/3rdparty'
+ snapshot.os = 'all'
+ snapshot.initialize()
+
+os.chdir(qtwebengine_root)
+
+if args.upstream:
+ initUpstreamSubmodules()
+ updateLastChange()
+ if not args.baseline_upstream and not use_external_chromium:
+ subprocess.call(['python', os.path.join(qtwebengine_root, 'tools', 'scripts', 'patch_upstream.py')])
+if args.snapshot:
+ initSnapshot()