| OLD | NEW | 
|    1 #!/usr/bin/env python |    1 #!/usr/bin/env python | 
|    2  |    2  | 
|    3 # This file is part of Adblock Plus <https://adblockplus.org/>, |    3 # This file is part of Adblock Plus <https://adblockplus.org/>, | 
|    4 # Copyright (C) 2006-2017 Eyeo GmbH |    4 # Copyright (C) 2006-2017 Eyeo GmbH | 
|    5 # |    5 # | 
|    6 # Adblock Plus is free software: you can redistribute it and/or modify |    6 # Adblock Plus is free software: you can redistribute it and/or modify | 
|    7 # it under the terms of the GNU General Public License version 3 as |    7 # it under the terms of the GNU General Public License version 3 as | 
|    8 # published by the Free Software Foundation. |    8 # published by the Free Software Foundation. | 
|    9 # |    9 # | 
|   10 # Adblock Plus is distributed in the hope that it will be useful, |   10 # Adblock Plus is distributed in the hope that it will be useful, | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
|   21 import sys |   21 import sys | 
|   22  |   22  | 
|   23 BASE_DIR = os.path.dirname(__file__) |   23 BASE_DIR = os.path.dirname(__file__) | 
|   24 SOURCE_DIR = os.path.join(BASE_DIR, 'compiled') |   24 SOURCE_DIR = os.path.join(BASE_DIR, 'compiled') | 
|   25 SOURCE_FILES = [ |   25 SOURCE_FILES = [ | 
|   26     os.path.join(path, f) |   26     os.path.join(path, f) | 
|   27     for (path, dirs, files) in os.walk(SOURCE_DIR) |   27     for (path, dirs, files) in os.walk(SOURCE_DIR) | 
|   28     for f in files |   28     for f in files | 
|   29     if f.endswith('.cpp') |   29     if f.endswith('.cpp') | 
|   30 ] |   30 ] | 
|   31 BINDINGS_FILE = os.path.join(SOURCE_DIR, 'bindings.cpp') |  | 
|   32 BINDINGS_GENERATOR = os.path.join(SOURCE_DIR, 'bindings.cpp.js') |   31 BINDINGS_GENERATOR = os.path.join(SOURCE_DIR, 'bindings.cpp.js') | 
|   33 BINDINGS_OUTPUT = os.path.join(SOURCE_DIR, 'bindings.js') |   32 BINDINGS_OUTPUT = os.path.join(SOURCE_DIR, 'bindings.js') | 
|   34 COMPILER_OUTPUT = os.path.join(BASE_DIR, 'lib', 'compiled.js') |   33 COMPILER_OUTPUT = os.path.join(BASE_DIR, 'lib', 'compiled.js') | 
|   35 GENERATION_PARAMS = { |   34 GENERATION_PARAMS = { | 
|   36     'SHELL_FILE': "'{}'".format(os.path.abspath(os.path.join(SOURCE_DIR, |   35     'SHELL_FILE': "'{}'".format(os.path.abspath(os.path.join(SOURCE_DIR, | 
|   37                                                              'shell.js'))), |   36                                                              'shell.js'))), | 
|   38     'ASM_JS': 2,  # "almost asm" |   37     'ASM_JS': 2,  # "almost asm" | 
|   39     'TOTAL_MEMORY': 16*1024*1024, |   38     'TOTAL_MEMORY': 16*1024*1024, | 
|   40     'TOTAL_STACK': 1*1024*1024, |   39     'TOTAL_STACK': 1*1024*1024, | 
|   41     'ALLOW_MEMORY_GROWTH': 1, |   40     'ALLOW_MEMORY_GROWTH': 1, | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
|   59         'EM_CONFIG': emscripten_config, |   58         'EM_CONFIG': emscripten_config, | 
|   60         'EMSCRIPTEN': scope['EMSCRIPTEN_ROOT'], |   59         'EMSCRIPTEN': scope['EMSCRIPTEN_ROOT'], | 
|   61         'PYTHON': scope.get('PYTHON', sys.executable), |   60         'PYTHON': scope.get('PYTHON', sys.executable), | 
|   62         'NODE_JS': scope.get('NODE_JS', 'node'), |   61         'NODE_JS': scope.get('NODE_JS', 'node'), | 
|   63     }) |   62     }) | 
|   64     return env |   63     return env | 
|   65  |   64  | 
|   66  |   65  | 
|   67 def generate_bindings(env): |   66 def generate_bindings(env): | 
|   68     params = [ |   67     params = [ | 
|   69         env['PYTHON'], os.path.join(env['EMSCRIPTEN'], 'emcc'), BINDINGS_FILE, |   68         env['PYTHON'], os.path.join(env['EMSCRIPTEN'], 'emcc'), | 
|   70         '-o', BINDINGS_GENERATOR, '-std=gnu++14', '-DPRINT_BINDINGS', |   69         '-o', BINDINGS_GENERATOR, '-std=gnu++14', '-DPRINT_BINDINGS', | 
|   71         '-s', 'WARN_ON_UNDEFINED_SYMBOLS=0', |   70     ] + SOURCE_FILES | 
|   72     ] |  | 
|   73     subprocess.check_call(params, env=env) |   71     subprocess.check_call(params, env=env) | 
|   74  |   72  | 
|   75     with open(BINDINGS_OUTPUT, 'w') as file: |   73     with open(BINDINGS_OUTPUT, 'w') as file: | 
|   76         subprocess.check_call([env['NODE_JS'], BINDINGS_GENERATOR], |   74         subprocess.check_call([env['NODE_JS'], BINDINGS_GENERATOR], | 
|   77                               stdout=file) |   75                               stdout=file) | 
|   78  |   76  | 
|   79  |   77  | 
|   80 def run_compiler(env, debug=False, tracing=False): |   78 def run_compiler(env, debug=False, tracing=False): | 
|   81     params = [ |   79     params = [ | 
|   82         env['PYTHON'], os.path.join(env['EMSCRIPTEN'], 'emcc'), |   80         env['PYTHON'], os.path.join(env['EMSCRIPTEN'], 'emcc'), | 
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  115     parser.add_argument( |  113     parser.add_argument( | 
|  116         '-t', '--tracing', |  114         '-t', '--tracing', | 
|  117         action='store_true', |  115         action='store_true', | 
|  118         help='Enable memory tracing' |  116         help='Enable memory tracing' | 
|  119     ) |  117     ) | 
|  120     args = parser.parse_args() |  118     args = parser.parse_args() | 
|  121  |  119  | 
|  122     env = getenv(args.emscripten_config) |  120     env = getenv(args.emscripten_config) | 
|  123     generate_bindings(env) |  121     generate_bindings(env) | 
|  124     run_compiler(env, debug=args.debug, tracing=args.tracing) |  122     run_compiler(env, debug=args.debug, tracing=args.tracing) | 
| OLD | NEW |