Index: compile |
=================================================================== |
--- a/compile |
+++ b/compile |
@@ -17,16 +17,17 @@ |
import argparse |
import os |
import subprocess |
import sys |
BASE_DIR = os.path.dirname(__file__) |
SOURCE_DIR = os.path.join(BASE_DIR, 'compiled') |
+JS_LIBRARY = os.path.join(SOURCE_DIR, 'library.js') |
BINDINGS_GENERATOR = os.path.join(SOURCE_DIR, 'bindings.cpp.js') |
BINDINGS_OUTPUT = os.path.join(SOURCE_DIR, 'bindings.js') |
COMPILER_OUTPUT = os.path.join(BASE_DIR, 'lib', 'compiled.js') |
GENERATION_PARAMS = { |
'SHELL_FILE': "'{}'".format(os.path.abspath(os.path.join(SOURCE_DIR, |
'shell.js'))), |
'ASM_JS': 2, # "almost asm" |
'TOTAL_MEMORY': 16*1024*1024, |
@@ -37,17 +38,17 @@ GENERATION_PARAMS = { |
'NO_FILESYSTEM': 1, |
'INVOKE_RUN': 0, |
'TEXTDECODER': 0, |
'EXPORTED_RUNTIME_METHODS': ['cwrap', 'ccall', 'stringToAscii'], |
} |
DEFINES = [] |
ADDITIONAL_PARAMS = ['-O3', '-m32', '-std=gnu++14', '--memory-init-file', '0', |
'--emit-symbol-map', '-Wall', '-Werror', '-fno-exceptions', |
- '-fno-rtti'] |
+ '-fno-rtti', '--js-library', JS_LIBRARY] |
def get_source_files(phase): |
for (path, dirs, files) in os.walk(SOURCE_DIR): |
for f in files: |
if os.path.splitext(f)[1] != '.cpp': |
continue |
if ( |
@@ -69,17 +70,17 @@ def getenv(emscripten_config): |
'NODE_JS': scope.get('NODE_JS', 'node'), |
}) |
return env |
def generate_bindings(env): |
params = [ |
env['PYTHON'], os.path.join(env['EMSCRIPTEN'], 'emcc'), |
- '-o', BINDINGS_GENERATOR, '-std=gnu++14', '-DPRINT_BINDINGS', |
+ '-o', BINDINGS_GENERATOR, '-std=gnu++14', '--js-library', JS_LIBRARY, |
] + list(get_source_files('bindings')) |
subprocess.check_call(params, env=env) |
with open(BINDINGS_OUTPUT, 'w') as file: |
subprocess.check_call([env['NODE_JS'], BINDINGS_GENERATOR], |
stdout=file) |