diff options
Diffstat (limited to 'testing/emscripten/add-system-level-config.patch')
-rw-r--r-- | testing/emscripten/add-system-level-config.patch | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/testing/emscripten/add-system-level-config.patch b/testing/emscripten/add-system-level-config.patch new file mode 100644 index 0000000000..b57860941c --- /dev/null +++ b/testing/emscripten/add-system-level-config.patch @@ -0,0 +1,85 @@ +From: Jakub Jirutka <jakub@jirutka.cz> +Date: Wed, 29 Mar 2017 22:02:00 +0200 +Subject: [PATCH] Add system-level config /etc/emscripten.cfg + +If ~/.emscripten does not exist and /etc/emscripten.cfg do exist, then +/etc/emscripten.cfg will be used. + +--- a/emscripten.py ++++ b/emscripten.py +@@ -1791,7 +1791,7 @@ + help='Where to write the output; defaults to stdout.') + parser.add_option('-c', '--compiler', + default=None, +- help='Which JS engine to use to run the compiler; defaults to the one in ~/.emscripten.') ++ help='Which JS engine to use to run the compiler; defaults to the one in ~/.emscripten or /etc/emscripten.cfg.') + parser.add_option('-s', '--setting', + dest='settings', + default=[], + +--- a/tools/file_packager.py ++++ b/tools/file_packager.py +@@ -24,8 +24,8 @@ + it knows that closure is not run. + + --crunch=X Will compress dxt files to crn with quality level X. The crunch commandline tool must be present +- and CRUNCH should be defined in ~/.emscripten that points to it. JS crunch decompressing code will +- be added to convert the crn to dds in the browser. ++ and CRUNCH should be defined in ~/.emscripten or /etc/emscripten.cfg that points to it. JS crunch ++ decompressing code will be added to convert the crn to dds in the browser. + crunch-worker.js will be generated in the current directory. You should include that file when + packaging your site. + DDS files will not be crunched if the .crn is more recent than the .dds. This prevents a lot of +--- a/tools/scons/site_scons/site_tools/emscripten/emscripten.py ++++ b/tools/scons/site_scons/site_tools/emscripten/emscripten.py +@@ -10,6 +10,8 @@ + EM_CONFIG = os.environ.get('EM_CONFIG') + if not EM_CONFIG: + EM_CONFIG = os.path.expanduser('~/.emscripten') ++ if not os.path.exists(EM_CONFIG) and os.path.exists('/etc/emscripten.cfg'): ++ EM_CONFIG = '/etc/emscripten.cfg' + + if emscripten_path is None: + +--- a/tools/shared.py ++++ b/tools/shared.py +@@ -209,7 +209,10 @@ + EM_CONFIG = EM_CONFIG.replace(';', '\n') + '\n' + + if not EM_CONFIG: +- EM_CONFIG = '~/.emscripten' ++ if not os.path.exists(os.path.expanduser('~/.emscripten')) and os.path.exists('/etc/emscripten.cfg'): ++ EM_CONFIG = '/etc/emscripten.cfg' ++ else: ++ EM_CONFIG = '~/.emscripten' + if '\n' in EM_CONFIG: + CONFIG_FILE = None + logging.debug('EM_CONFIG is specified inline without a file') +@@ -271,7 +274,7 @@ + # without a file, this hints to "default" location at ~/.emscripten) + def hint_config_file_location(): + if CONFIG_FILE: return CONFIG_FILE +- else: return '~/.emscripten' ++ else: return '~/.emscripten' if os.path.exists(os.path.expanduser('~/.emscripten')) else '/etc/emscripten.cfg' + + def listify(x): + if type(x) is not list: return [x] +@@ -515,6 +515,8 @@ + sanity_file = CONFIG_FILE + '_sanity' + if get_llvm_target() == WASM_TARGET: + sanity_file += '_wasm' ++ if not os.access(os.path.dirname(sanity_file), os.W_OK): ++ sanity_file = os.path.join('/var/tmp', os.path.basename(sanity_file)) + if os.path.exists(sanity_file): + try: + sanity_mtime = os.stat(sanity_file).st_mtime +@@ -580,7 +580,8 @@ + + if not force: + # Only create/update this file if the sanity check succeeded, i.e., we got here +- f = open(sanity_file, 'w') ++ f = open(sanity_file, 'w+') + f.write(generate_sanity()) ++ os.chmod(sanity_file, 0o666) + f.close() + |