wasm-micro-runtime/samples/debug-tools/wasm-apps/CMakeLists.txt
2024-04-12 11:43:40 +08:00

59 lines
1.9 KiB
CMake

# Copyright (C) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
cmake_minimum_required (VERSION 3.14)
project (debut_tools_wasm)
set (CMAKE_BUILD_TYPE Debug) # Otherwise no debug symbols (addr2line)
list (APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/../cmake)
find_package (WAMRC REQUIRED)
option(SOURCE_MAP_DEMO "Enable source map demo" OFF)
if (SOURCE_MAP_DEMO)
find_package(EMSCRIPTEN 3.1.50 REQUIRED)
endif ()
################ wasm and aot compilation ################
function (compile_sample SOURCE_FILE)
get_filename_component (FILE_NAME ${SOURCE_FILE} NAME_WLE)
## wasm
set (WASM_FILE ${FILE_NAME}.wasm)
add_executable (${FILE_NAME} ${SOURCE_FILE})
set_target_properties (${FILE_NAME} PROPERTIES SUFFIX .wasm)
## aot
set (AOT_FILE ${FILE_NAME}.aot)
add_custom_target (
${FILE_NAME}_aot
ALL
DEPENDS ${WAMRC_BIN} ${WASM_FILE}
# Use --enable-dump-call-stack to generate stack trace (addr2line)
COMMAND ${WAMRC_BIN} --size-level=0 --enable-dump-call-stack -o ${AOT_FILE} ${WASM_FILE}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
## wasm + sourcemap
if (DEFINED EMSCRIPTEN)
add_custom_target(
${FILE_NAME}_w_sourcemap
ALL
DEPENDS ${SOURCE_FILE}
COMMAND ${EMCC} -O0 -gsource-map -o ${FILE_NAME}.sourcemap.wasm ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
endif ()
## install both
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${WASM_FILE} DESTINATION wasm-apps)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${AOT_FILE} DESTINATION wasm-apps)
if (DEFINED EMSCRIPTEN)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${FILE_NAME}.sourcemap.wasm DESTINATION wasm-apps)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${FILE_NAME}.sourcemap.wasm.map DESTINATION wasm-apps)
endif ()
endfunction ()
compile_sample(trap.c)