Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4761)

Unified Diff: build_tools/download_emscripten.py

Issue 1393343002: Improve emscripten download, install and auto-detection (Closed) Base URL: https://chromium.googlesource.com/external/naclports.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build_tools/buildbot_selector.sh ('k') | lib/naclports/source_package.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build_tools/download_emscripten.py
diff --git a/build_tools/download_emscripten.py b/build_tools/download_emscripten.py
index 7fa5be5cd10b6a496953adca62087f80e56462ae..b761eda6c9a14a8c017a34fe3807cf993c6e2280 100755
--- a/build_tools/download_emscripten.py
+++ b/build_tools/download_emscripten.py
@@ -7,8 +7,6 @@
This script downloads the emscripten tarball and expands it.
It requires gsutil to be in the bin PATH and is currently
supported on Linux and Mac OSX and not windows.
-
-Additional prerequisites include cmake, node.js and Java.
"""
import os
@@ -56,7 +54,7 @@ def DownloadToCache(url, sha1):
return full_name
-def DownloadAndExtract(url, sha1, target_dir):
+def DownloadAndExtract(url, sha1, target_dir, link_name=None):
tar_file = DownloadToCache(url, sha1)
if not os.path.exists(OUT_DIR):
@@ -76,6 +74,28 @@ def DownloadAndExtract(url, sha1, target_dir):
if subprocess.call(['tar', 'xf', tar_file]):
raise naclports.Error('Error unpacking Emscripten SDK')
+ if link_name:
+ if os.path.exists(link_name):
+ os.remove(link_name)
+ os.symlink(target_dir, link_name)
+
+
+def BuildOptimizer():
+ emsdk_root = os.path.join(OUT_DIR, 'emsdk')
+ node_bin = os.path.join(OUT_DIR, 'node', 'bin')
+ emscripten_root = os.path.join(emsdk_root, 'emscripten')
+ os.environ['EMSDK_ROOT'] = emscripten_root
+ os.environ['EM_CONFIG'] = os.path.join(emsdk_root, '.emscripten')
+ os.environ['PATH'] += ':' + node_bin
+ os.environ['PATH'] += ':' + emscripten_root
+
+ # Run using -O2 to compile the native js-optimizer
+ open('test.c', 'w').close()
+ subprocess.check_call(['emcc', '-O2', '-o', 'test.js', 'test.c'])
+ os.remove('test.js')
+ os.remove('test.c')
+ return 0
+
def main(argv):
if sys.platform in ['win32', 'cygwin']:
@@ -83,7 +103,9 @@ def main(argv):
return 1
DownloadAndExtract(EMSDK_URL, EMSDK_SHA1, 'emsdk')
- DownloadAndExtract(NODEJS_URL, NODEJS_SHA1, 'node-v0.12.1-linux-x64')
+ DownloadAndExtract(NODEJS_URL, NODEJS_SHA1, 'node-v0.12.1-linux-x64', 'node')
+ BuildOptimizer()
+
naclports.Log('Emscripten SDK Install complete')
return 0
« no previous file with comments | « build_tools/buildbot_selector.sh ('k') | lib/naclports/source_package.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698