@@ -529,92 +529,44 @@ endif()
529529# binaryen.js
530530#
531531# Note that we can't emit binaryen.js directly, as there is libbinaryen already
532- # declared earlier, so we create binaryen_wasm/js .js, which must then be copied.
532+ # declared earlier, so we create binaryen_js .js, which must then be copied.
533533if (EMSCRIPTEN)
534- # binaryen.js WebAssembly variant
535- add_executable (binaryen_wasm ${binaryen_HEADERS} )
534+ add_executable (binaryen_js ${binaryen_HEADERS} )
536535 # For the emscripten build we link against libbinaryen wih `--whole-archive`.
537536 # Without this, the EMSCRIPTEN_KEEPALIVE symbols within the library would
538537 # be ignored.
539- target_link_libraries (binaryen_wasm PRIVATE "$<LINK_LIBRARY:WHOLE_ARCHIVE,binaryen>" )
540- target_link_libraries (binaryen_wasm PRIVATE "-sFILESYSTEM" )
541- target_link_libraries (binaryen_wasm PRIVATE "-sEXPORT_NAME=Binaryen" )
542- target_link_libraries (binaryen_wasm PRIVATE "-sNODERAWFS=0" )
543- # Do not error on the repeated NODERAWFS argument
544- target_link_libraries (binaryen_wasm PRIVATE "-Wno-unused-command-line-argument" )
545- # Emit a single file for convenience of people using binaryen.js as a library,
546- # so they only need to distribute a single file.
547- if (EMSCRIPTEN_ENABLE_SINGLE_FILE)
548- target_link_libraries (binaryen_wasm PRIVATE "-sSINGLE_FILE" )
549- endif ()
550- target_link_libraries (binaryen_wasm PRIVATE "-sEXPORT_ES6" )
551- target_link_libraries (binaryen_wasm PRIVATE "-sEXPORTED_RUNTIME_METHODS=stringToUTF8OnStack,stringToAscii" )
552- target_link_libraries (binaryen_wasm PRIVATE "-sEXPORTED_FUNCTIONS=_malloc,_free" )
553- target_link_libraries (binaryen_wasm PRIVATE "--post-js=${CMAKE_CURRENT_SOURCE_DIR} /src/js/binaryen.js-post.js" )
554- target_link_libraries (binaryen_wasm PRIVATE "-msign-ext" )
555- target_link_libraries (binaryen_wasm PRIVATE "-mbulk-memory" )
556- target_link_libraries (binaryen_wasm PRIVATE optimized "--closure=1" )
557- # TODO: Fix closure warnings! (#5062)
558- target_link_libraries (binaryen_wasm PRIVATE optimized "-Wno-error=closure" )
559- if (BYN_ENABLE_LTO)
560- target_link_libraries (binaryen_wasm PRIVATE optimized "-flto" )
561- endif ()
562- target_link_libraries (binaryen_wasm PRIVATE debug "--profiling" )
563- # Avoid catching exit as that can confuse error reporting in Node,
564- # see https://github.com/emscripten-core/emscripten/issues/17228
565- target_link_libraries (binaryen_wasm PRIVATE "-sNODEJS_CATCH_EXIT=0" )
566- install (TARGETS binaryen_wasm DESTINATION ${CMAKE_INSTALL_BINDIR} )
567-
568- # binaryen.js JavaScript variant
569- add_executable (binaryen_js ${binaryen_HEADERS} )
570538 target_link_libraries (binaryen_js PRIVATE "$<LINK_LIBRARY:WHOLE_ARCHIVE,binaryen>" )
571- target_link_libraries (binaryen_js PRIVATE "-sWASM=0" )
572- target_link_libraries (binaryen_js PRIVATE "-sWASM_ASYNC_COMPILATION=0" )
573-
574- if (${CMAKE_CXX_COMPILER_VERSION} STREQUAL "6.0.1" )
575- # only valid with fastcomp and WASM=0
576- target_link_libraries (binaryen_js PRIVATE "-sELIMINATE_DUPLICATE_FUNCTIONS" )
577- endif ()
578- # Disabling filesystem and setting web environment for js_of_ocaml
579- # so it doesn't try to detect the "node" environment
580- if (JS_OF_OCAML)
581- target_link_libraries (binaryen_js PRIVATE "-sFILESYSTEM=0" )
582- target_link_libraries (binaryen_js PRIVATE "-sENVIRONMENT=web,worker" )
583- else ()
584- target_link_libraries (binaryen_js PRIVATE "-sFILESYSTEM=1" )
585- endif ()
539+ target_link_libraries (binaryen_js PRIVATE "-sFILESYSTEM" )
540+ target_link_libraries (binaryen_js PRIVATE "-sEXPORT_NAME=Binaryen" )
586541 target_link_libraries (binaryen_js PRIVATE "-sNODERAWFS=0" )
587542 # Do not error on the repeated NODERAWFS argument
588543 target_link_libraries (binaryen_js PRIVATE "-Wno-unused-command-line-argument" )
544+ # Emit a single file for convenience of people using binaryen.js as a library,
545+ # so they only need to distribute a single file.
589546 if (EMSCRIPTEN_ENABLE_SINGLE_FILE)
590547 target_link_libraries (binaryen_js PRIVATE "-sSINGLE_FILE" )
591548 endif ()
592- target_link_libraries (binaryen_js PRIVATE "-sEXPORT_NAME=Binaryen" )
593- # Currently, js_of_ocaml can only process ES5 code
594549 if (JS_OF_OCAML)
595- target_link_libraries (binaryen_js PRIVATE "-sEXPORT_ES6=0" )
550+ # js_of_ocaml needs a specified variable with special comment to provide the library to consumer
551+ target_link_libraries (binaryen_js PRIVATE "--extern-pre-js=${CMAKE_CURRENT_SOURCE_DIR} /src/js/binaryen.jsoo-extern-pre.js" )
552+ # Currently, js_of_ocaml can only process ES5 code
553+ target_link_libraries (binaryen_js PRIVATE optimized "--closure-args=\" --language_out=ECMASCRIPT5\" " )
596554 else ()
597- target_link_libraries (binaryen_js PRIVATE "-sEXPORT_ES6=1" )
555+ # Currently, js_of_ocaml can only process ES5 code
556+ target_link_libraries (binaryen_js PRIVATE "-sEXPORT_ES6" )
598557 endif ()
599558 target_link_libraries (binaryen_js PRIVATE "-sEXPORTED_RUNTIME_METHODS=stringToUTF8OnStack,stringToAscii" )
600559 target_link_libraries (binaryen_js PRIVATE "-sEXPORTED_FUNCTIONS=_malloc,_free" )
601560 target_link_libraries (binaryen_js PRIVATE "--post-js=${CMAKE_CURRENT_SOURCE_DIR} /src/js/binaryen.js-post.js" )
602- # js_of_ocaml needs a specified variable with special comment to provide the library to consumers
603- if (JS_OF_OCAML)
604- target_link_libraries (binaryen_js PRIVATE "--extern-pre-js=${CMAKE_CURRENT_SOURCE_DIR} /src/js/binaryen.jsoo-extern-pre.js" )
605- endif ()
561+ target_link_libraries (binaryen_js PRIVATE "-msign-ext" )
562+ target_link_libraries (binaryen_js PRIVATE "-mbulk-memory" )
606563 target_link_libraries (binaryen_js PRIVATE optimized "--closure=1" )
607- # Currently, js_of_ocaml can only process ES5 code
608- if (JS_OF_OCAML)
609- target_link_libraries (binaryen_js PRIVATE optimized "--closure-args=\" --language_out=ECMASCRIPT5\" " )
610- endif ()
611564 # TODO: Fix closure warnings! (#5062)
612565 target_link_libraries (binaryen_js PRIVATE optimized "-Wno-error=closure" )
613566 if (BYN_ENABLE_LTO)
614567 target_link_libraries (binaryen_js PRIVATE optimized "-flto" )
615568 endif ()
616569 target_link_libraries (binaryen_js PRIVATE debug "--profiling" )
617- target_link_libraries (binaryen_js PRIVATE debug "-sASSERTIONS" )
618570 # Avoid catching exit as that can confuse error reporting in Node,
619571 # see https://github.com/emscripten-core/emscripten/issues/17228
620572 target_link_libraries (binaryen_js PRIVATE "-sNODEJS_CATCH_EXIT=0" )
0 commit comments