| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- # 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)
|