diff options
author | Daniel Wirtz <dcode@dcode.io> | 2020-05-07 21:58:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-07 12:58:25 -0700 |
commit | f23bf9a4cd45b7ed03805f217f6c4f645a513822 (patch) | |
tree | 90eac139217b610252faa914d293f6277be5d520 | |
parent | a489568e3641d2431eba94518add65fd928ab86d (diff) | |
download | binaryen-f23bf9a4cd45b7ed03805f217f6c4f645a513822.tar.gz binaryen-f23bf9a4cd45b7ed03805f217f6c4f645a513822.tar.bz2 binaryen-f23bf9a4cd45b7ed03805f217f6c4f645a513822.zip |
Mimic MODULARIZE_INSTANCE (#2838)
Turned out that the behavior of MODULARIZE_INSTANCE, which has
been removed from Emscripten lately, cannot be easily reproduced
using MODULARIZE. So, instead of modularizing and attempting to
undo it, this just uses some good old wrapper code to achieve the same.
-rw-r--r-- | .github/workflows/ci.yml | 4 | ||||
-rw-r--r-- | CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/js/binaryen.js-extern-post.js | 8 | ||||
-rw-r--r-- | src/js/binaryen.js-extern-pre.js | 2 |
4 files changed, 16 insertions, 4 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3613e841a..05d080be9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -199,8 +199,8 @@ jobs: mkdir $HOME/emsdk git clone --depth 1 https://github.com/emscripten-core/emsdk.git $HOME/emsdk $HOME/emsdk/emsdk update-tags - $HOME/emsdk/emsdk install 1.39.14 - $HOME/emsdk/emsdk activate 1.39.14 + $HOME/emsdk/emsdk install tot + $HOME/emsdk/emsdk activate tot echo "::add-path::$HOME/emsdk" - name: emcc-tests run: | diff --git a/CMakeLists.txt b/CMakeLists.txt index d5291c83b..dc2e74435 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -382,11 +382,12 @@ if(EMSCRIPTEN) add_executable(binaryen_wasm ${binaryen_emscripten_SOURCES}) target_link_libraries(binaryen_wasm wasm asmjs emscripten-optimizer passes ir cfg support wasm) - target_link_libraries(binaryen_wasm "-s MODULARIZE_INSTANCE=1") target_link_libraries(binaryen_wasm "-s NO_FILESYSTEM=0") target_link_libraries(binaryen_wasm "-s NODERAWFS=0") target_link_libraries(binaryen_wasm "-s EXPORT_NAME=binaryen") target_link_libraries(binaryen_wasm "--post-js ${CMAKE_CURRENT_SOURCE_DIR}/src/js/binaryen.js-post.js") + target_link_libraries(binaryen_wasm "--extern-pre-js ${CMAKE_CURRENT_SOURCE_DIR}/src/js/binaryen.js-extern-pre.js") + target_link_libraries(binaryen_wasm "--extern-post-js ${CMAKE_CURRENT_SOURCE_DIR}/src/js/binaryen.js-extern-post.js") target_link_libraries(binaryen_wasm optimized "--closure 1") target_link_libraries(binaryen_wasm optimized "--llvm-lto 1") target_link_libraries(binaryen_wasm debug "--profiling") @@ -404,11 +405,12 @@ if(EMSCRIPTEN) # only valid with fastcomp and WASM=0 target_link_libraries(binaryen_js "-s ELIMINATE_DUPLICATE_FUNCTIONS=1") endif() - target_link_libraries(binaryen_js "-s MODULARIZE_INSTANCE=1") target_link_libraries(binaryen_js "-s NO_FILESYSTEM=0") target_link_libraries(binaryen_js "-s NODERAWFS=0") target_link_libraries(binaryen_js "-s EXPORT_NAME=binaryen") target_link_libraries(binaryen_js "--post-js ${CMAKE_CURRENT_SOURCE_DIR}/src/js/binaryen.js-post.js") + target_link_libraries(binaryen_js "--extern-pre-js ${CMAKE_CURRENT_SOURCE_DIR}/src/js/binaryen.js-extern-pre.js") + target_link_libraries(binaryen_js "--extern-post-js ${CMAKE_CURRENT_SOURCE_DIR}/src/js/binaryen.js-extern-post.js") target_link_libraries(binaryen_js optimized "--closure 1") target_link_libraries(binaryen_js optimized "--llvm-lto 1") target_link_libraries(binaryen_js debug "--profiling") diff --git a/src/js/binaryen.js-extern-post.js b/src/js/binaryen.js-extern-post.js new file mode 100644 index 000000000..60d900fab --- /dev/null +++ b/src/js/binaryen.js-extern-post.js @@ -0,0 +1,8 @@ + +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = binaryen; +else if (typeof define === 'function' && define['amd']) + define([], function() { return binaryen; }); +else if (typeof exports === 'object') + exports["binaryen"] = binaryen;
\ No newline at end of file diff --git a/src/js/binaryen.js-extern-pre.js b/src/js/binaryen.js-extern-pre.js new file mode 100644 index 000000000..ded7d3296 --- /dev/null +++ b/src/js/binaryen.js-extern-pre.js @@ -0,0 +1,2 @@ +var binaryen = {}; +(function() {
\ No newline at end of file |