@@ -580,7 +580,7 @@ target_compile_definitions(Halide PUBLIC
580580
581581set (Halide_WASM_BACKEND "wabt"
582582 CACHE STRING "Which backend to use for Halide's WASM testing." )
583- set_property (CACHE Halide_WASM_BACKEND PROPERTY STRINGS "wabt;V8;OFF" )
583+ set_property (CACHE Halide_WASM_BACKEND PROPERTY STRINGS "wabt;V8;WAMR; OFF" )
584584
585585if (MSVC AND Halide_WASM_BACKEND STREQUAL "wabt" )
586586 message (WARNING "wabt is not yet supported on Windows" )
@@ -598,6 +598,31 @@ elseif (Halide_WASM_BACKEND STREQUAL "V8")
598598 _Halide_pkgdep (V8 )
599599 target_compile_definitions (Halide PRIVATE WITH_V8 )
600600 target_link_libraries (Halide PRIVATE V8::V8 )
601+ elseif (Halide_WASM_BACKEND STREQUAL "WAMR" )
602+ set (Halide_WAMR_ROOT_DIR "" CACHE PATH "Path to root directory of WAMR repository sources" )
603+
604+ if ("${Halide_WAMR_ROOT_DIR} " STREQUAL "" )
605+ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR} /../../wasm-micro-runtime/build-scripts/runtime_lib.cmake" )
606+ set (WAMR_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR} /../../wasm-micro-runtime" )
607+ else ()
608+ message (FATAL_ERROR "WAMR backend requires specifying Halide_WAMR_ROOT_DIR or cloning wasm-micro-runtime adjacent to the Halide repository." )
609+ endif ()
610+ else ()
611+ set (WAMR_ROOT_DIR "${Halide_WAMR_ROOT_DIR} " )
612+ endif ()
613+
614+ set (WAMR_BUILD_PLATFORM "linux" )
615+ set (WAMR_BUILD_TARGET "X86_64" )
616+ set (WAMR_BUILD_INTERP 1)
617+ set (WAMR_BUILD_FAST_INTERP 1)
618+ set (WAMR_BUILD_REF_TYPES 1)
619+ set (WAMR_BUILD_SIMD 1)
620+ set (WAMR_BUILD_LIB_SIMDE 1)
621+ include (${WAMR_ROOT_DIR} /build-scripts/runtime_lib.cmake )
622+ add_library (wamr_lib STATIC ${WAMR_RUNTIME_LIB_SOURCE} )
623+ target_link_libraries (Halide PRIVATE wamr_lib )
624+ target_compile_definitions (Halide PRIVATE WITH_WAMR )
625+ target_include_directories (Halide PRIVATE "${WAMR_ROOT_DIR} /core/iwasm/include" )
601626elseif (Halide_WASM_BACKEND)
602627 message (FATAL_ERROR "Unknown Halide_WASM_BACKEND `${Halide_WASM_BACKEND} `" )
603628endif ()
0 commit comments