|
@@ -1,28 +1,11 @@
|
|
|
import os
|
|
|
|
|
|
-
|
|
|
-def parse_config():
|
|
|
- em_config_file = os.getenv("EM_CONFIG") or os.path.expanduser("~/.emscripten")
|
|
|
- if not os.path.exists(em_config_file):
|
|
|
- raise RuntimeError("Emscripten configuration file '%s' does not exist" % em_config_file)
|
|
|
-
|
|
|
- normalized = {}
|
|
|
- em_config = {}
|
|
|
- with open(em_config_file) as f:
|
|
|
- try:
|
|
|
- # Emscripten configuration file is a Python file with simple assignments.
|
|
|
- exec(f.read(), em_config)
|
|
|
- except StandardError as e:
|
|
|
- raise RuntimeError("Emscripten configuration file '%s' is invalid:\n%s" % (em_config_file, e))
|
|
|
- normalized["EMCC_ROOT"] = em_config.get("EMSCRIPTEN_ROOT")
|
|
|
- normalized["NODE_JS"] = em_config.get("NODE_JS")
|
|
|
- normalized["CLOSURE_BIN"] = os.path.join(normalized["EMCC_ROOT"], "node_modules", ".bin", "google-closure-compiler")
|
|
|
- return normalized
|
|
|
+from SCons.Util import WhereIs
|
|
|
|
|
|
|
|
|
def run_closure_compiler(target, source, env, for_signature):
|
|
|
- cfg = parse_config()
|
|
|
- cmd = [cfg["NODE_JS"], cfg["CLOSURE_BIN"]]
|
|
|
+ closure_bin = os.path.join(os.path.dirname(WhereIs("emcc")), "node_modules", ".bin", "google-closure-compiler")
|
|
|
+ cmd = [WhereIs("node"), closure_bin]
|
|
|
cmd.extend(["--compilation_level", "ADVANCED_OPTIMIZATIONS"])
|
|
|
for f in env["JSEXTERNS"]:
|
|
|
cmd.extend(["--externs", f.get_abspath()])
|