summaryrefslogtreecommitdiffstats
path: root/ipc/pull-chromium.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipc/pull-chromium.py')
-rw-r--r--ipc/pull-chromium.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/ipc/pull-chromium.py b/ipc/pull-chromium.py
new file mode 100644
index 0000000000..4f9a7d2f76
--- /dev/null
+++ b/ipc/pull-chromium.py
@@ -0,0 +1,55 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+"""
+Pull a specified revision of chromium from SVN.
+
+Usage: python pull-chromium.py <topsrcdir> <chromiumtree> <revision>
+
+You will have to set up a Chromium tree before running this step. See
+http://dev.chromium.org/developers/how-tos/get-the-code for details about
+doing this efficiently.
+"""
+
+import os
+import sys
+from shutil import rmtree
+from subprocess import check_call
+
+topsrcdir, chromiumtree, rev = sys.argv[1:]
+
+if not os.path.exists(os.path.join(topsrcdir, "client.py")):
+ print >>sys.stderr, "Incorrect topsrcdir"
+ sys.exit(1)
+
+if not os.path.exists(os.path.join(chromiumtree, "src/DEPS")):
+ print >>sys.stderr, "Incorrect chromium directory, missing DEPS"
+ sys.exit(1)
+
+check_call(["gclient", "sync", "--force", "--revision=src@%s" % rev], cwd=chromiumtree)
+
+chromiumsrc = os.path.join(topsrcdir, "ipc/chromium/src")
+os.path.exists(chromiumsrc) and rmtree(chromiumsrc)
+
+
+def doexport(svnpath):
+ localpath = os.path.join(chromiumsrc, svnpath)
+ os.makedirs(os.path.dirname(localpath))
+ check_call(
+ [
+ "svn",
+ "export",
+ "-r",
+ "BASE",
+ os.path.join(chromiumtree, "src", svnpath),
+ localpath,
+ ]
+ )
+
+
+doexport("base")
+doexport("chrome/common")
+doexport("build/build_config.h")
+doexport("testing/gtest/include")
+doexport("third_party/libevent")