Index: build/install-arm-sysroot.py |
diff --git a/build/install-arm-sysroot.py b/build/install-arm-sysroot.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..583d14be1d1e8a995c051fecce85c90197a11523 |
--- /dev/null |
+++ b/build/install-arm-sysroot.py |
@@ -0,0 +1,65 @@ |
+#!/usr/bin/env python |
+# Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+# Script to install arm choot image for cross building of arm chrome on linux. |
+# This script can be run manually but is more often run as part of gclient |
+# hooks. When run from hooks this script should be a no-op on non-linux |
+# platforms. |
+ |
+# The sysroot image could be constructed from scratch based on the current |
+# state or precise/arm but for consistency we currently use a pre-built root |
+# image which was originally designed for building trusted NaCl code. The image |
+# will normally need to be rebuilt every time chrome's build dependancies are |
+# changed. |
+ |
+import os |
+import sys |
+ |
+ |
+script_dir = os.path.dirname(os.path.abspath(__file__)) |
+ |
+ |
+def main(args): |
+ if '--linux-only' in args: |
+ # This argument is passed when run from the gclient hooks. |
+ # In this case we return early on non-linux platforms |
+ # or if GYP_DEFINES doesn't include target_arch=arm |
+ if sys.platform != 'linux2': |
tony
2012/12/07 01:01:42
Please use sys.platform.startswith('linux'). See t
Sam Clegg
2012/12/07 18:29:37
Done.
|
+ return |
+ |
+ if "target_arch=arm" not in os.environ.get('GYP_DEFINES', ''): |
tony
2012/12/07 01:01:42
Is it OK that this doesn't run when someone uses ~
Sam Clegg
2012/12/07 18:29:37
Such people will want to run install-arm-sysroot.p
|
+ return 0 |
+ |
+ src_root = os.path.dirname(script_dir) |
+ sysroot = os.path.join(src_root, 'arm-sysroot') |
+ url_prefix = 'https://commondatastorage.googleapis.com/nativeclient-archive2/toolchain' |
+ rev = 8001 |
+ url = "%s/%s/naclsdk_linux_arm-trusted.tgz" % (url_prefix, rev) |
+ |
+ stamp = os.path.join(sysroot, ".stamp") |
+ if os.path.exists(stamp): |
+ with open(stamp) as s: |
+ if s.read() == url: |
+ print "ARM root image already up-to-date: %s" % sysroot |
+ return 0 |
+ |
+ print "Installing ARM root image: %s" % sysroot |
+ if not os.path.isdir(sysroot): |
+ os.mkdir(sysroot) |
+ tarball = os.path.join(sysroot, 'naclsdk_linux_arm-trusted.tgz') |
+ rtn = os.system('curl -L "%s" -o "%s"' % (url, tarball)) |
+ if rtn: |
+ return rtn |
+ rtn = os.system('tar xf %s -C %s' % (tarball, sysroot)) |
+ if rtn: |
+ return rtn |
+ os.remove(tarball) |
+ open(stamp, 'w').write(url) |
+ |
+ return 0 |
+ |
+ |
+if __name__ == '__main__': |
+ sys.exit(main(sys.argv[1:])) |