diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/passes/CMakeLists.txt | 17 | ||||
-rw-r--r-- | src/passes/WasmIntrinsics.cpp.in | 9 |
2 files changed, 20 insertions, 6 deletions
diff --git a/src/passes/CMakeLists.txt b/src/passes/CMakeLists.txt index bc09736a4..e24072424 100644 --- a/src/passes/CMakeLists.txt +++ b/src/passes/CMakeLists.txt @@ -1,10 +1,15 @@ -# Python 3.5 is the version shipped in Ubuntu Xenial -find_package(PythonInterp 3.5 REQUIRED) +file(READ wasm-intrinsics.wat WASM_INTRINSICS_WAT HEX) -add_custom_command( - OUTPUT WasmIntrinsics.cpp - COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/scripts/embedwat.py ${PROJECT_SOURCE_DIR}/src/passes/wasm-intrinsics.wat ${CMAKE_CURRENT_BINARY_DIR}/WasmIntrinsics.cpp - DEPENDS ${PROJECT_SOURCE_DIR}/scripts/embedwat.py wasm-intrinsics.wat) +string(REGEX MATCHALL "([A-Fa-f0-9][A-Fa-f0-9])" SEPARATED_HEX ${WASM_INTRINSICS_WAT}) + +set(WASM_INTRINSICS_SIZE 1) +foreach (hex IN LISTS SEPARATED_HEX) + string(APPEND WASM_INTRINSICS_EMBED "0x${hex},") + math(EXPR WASM_INTRINSICS_SIZE "${WASM_INTRINSICS_SIZE}+1") +endforeach () +string(APPEND WASM_INTRINSICS_EMBED "0x00") + +configure_file(WasmIntrinsics.cpp.in WasmIntrinsics.cpp @ONLY) FILE(GLOB passes_HEADERS *.h) set(passes_SOURCES diff --git a/src/passes/WasmIntrinsics.cpp.in b/src/passes/WasmIntrinsics.cpp.in new file mode 100644 index 000000000..46216842d --- /dev/null +++ b/src/passes/WasmIntrinsics.cpp.in @@ -0,0 +1,9 @@ +#include "passes/intrinsics-module.h" + +static const char theModule[@WASM_INTRINSICS_SIZE@] = { +@WASM_INTRINSICS_EMBED@ +}; + +namespace wasm { +const char* IntrinsicsModuleWast = theModule; +} |