summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBlaine Bublitz <blaine.bublitz@gmail.com>2022-01-04 09:51:41 -0700
committerGitHub <noreply@github.com>2022-01-04 08:51:41 -0800
commit1980e5570bce241945360abe8105101019f64bc6 (patch)
tree806f6d9e0efae183cad36c353fc899c673a96128 /src
parent6137b338c7fb37ba98b63c31225ec9cfda8cfa59 (diff)
downloadbinaryen-1980e5570bce241945360abe8105101019f64bc6.tar.gz
binaryen-1980e5570bce241945360abe8105101019f64bc6.tar.bz2
binaryen-1980e5570bce241945360abe8105101019f64bc6.zip
Remove python from CMake build (#4324)
Use CMake's configure_file() instead.
Diffstat (limited to 'src')
-rw-r--r--src/passes/CMakeLists.txt17
-rw-r--r--src/passes/WasmIntrinsics.cpp.in9
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;
+}