#!/usr/bin/env python2 ''' This is a helper script. It runs ./configure (or cmake, etc.) for you, setting the environment variables to use emcc and so forth. Usage: emconfigure ./configure [FLAGS] You can also use this for cmake and other configure-like stages. What happens is that all compilations done during this command are to native code, not JS, so that configure tests will work properly. Relevant defines: CONFIGURE_CC - see emcc ''' import os, sys from tools import shared from subprocess import CalledProcessError if len(sys.argv) < 2 or ('configure' not in sys.argv[1] and 'cmake' not in sys.argv[1]): print >> sys.stderr, ''' emconfigure is a helper for configure, setting various environment variables so that emcc etc. are used. Typical usage: emconfigure ./configure [FLAGS] (but you can run any command instead of configure) ''' elif 'cmake' in sys.argv[1]: node_js = shared.NODE_JS if type(node_js) is list: node_js = ' '.join(node_js) node_js = node_js.replace('"', '\"') sys.argv = sys.argv[:2] + ['-DCMAKE_CROSSCOMPILING_EMULATOR="' + node_js +'"'] + sys.argv[2:] try: shared.Building.configure(sys.argv[1:]) except CalledProcessError, e: sys.exit(e.returncode)