| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- # Copyright (C) 2024 Xiaomi Corporation. All rights reserved.
- # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- cmake_minimum_required(VERSION 3.14)
- project(wasm-apps)
- set(WAMR_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../..)
- # Find WAMRC
- set(WAMRC_ROOT_DIR ${WAMR_ROOT_DIR}/wamr-compiler)
- find_program(WAMRC_BIN wamrc HINTS ${WAMRC_ROOT_DIR}/build REQUIRED)
- # Set architecture-specific WAMRC flags
- if (WAMR_BUILD_TARGET STREQUAL "X86_32")
- set(WAMRC_SHARED_HEAP_FLAGS --opt-level=3 --bounds-checks=1 --enable-shared-heap --target=i386)
- set(WAMRC_SHARED_HEAP_CHAIN_FLAGS --opt-level=3 --bounds-checks=1 --enable-shared-chain --target=i386)
- else ()
- set(WAMRC_SHARED_HEAP_FLAGS --opt-level=3 --bounds-checks=1 --enable-shared-heap)
- set(WAMRC_SHARED_HEAP_CHAIN_FLAGS --opt-level=3 --bounds-checks=1 --enable-shared-chain)
- endif ()
- #
- # C -> Wasm
- #
- add_executable(test.wasm test.c)
- target_compile_options(test.wasm PUBLIC -nostdlib -O0 -pthread)
- target_link_options(test.wasm PRIVATE
- -nostdlib
- LINKER:--no-entry
- LINKER:--initial-memory=65536
- LINKER:--allow-undefined
- LINKER:--export-all
- -z stack-size=1024
- )
- add_executable(test_addr_conv.wasm test_addr_conv.c)
- target_compile_options(test_addr_conv.wasm PUBLIC -nostdlib -O0 -pthread)
- target_link_options(test_addr_conv.wasm PRIVATE
- -nostdlib
- LINKER:--no-entry
- LINKER:--initial-memory=65536
- LINKER:--allow-undefined
- LINKER:--export-all
- -z stack-size=1024
- )
- # Compile AOT files (combined target)
- add_custom_target(compile_aot ALL
- COMMAND ${WAMRC_BIN} ${WAMRC_SHARED_HEAP_FLAGS} -o test.aot test.wasm
- COMMAND ${WAMRC_BIN} ${WAMRC_SHARED_HEAP_CHAIN_FLAGS} -o test_chain.aot test.wasm
- COMMAND ${WAMRC_BIN} ${WAMRC_SHARED_HEAP_FLAGS} -o test_addr_conv.aot test_addr_conv.wasm
- COMMAND ${WAMRC_BIN} ${WAMRC_SHARED_HEAP_CHAIN_FLAGS} -o test_addr_conv_chain.aot test_addr_conv.wasm
- DEPENDS test.wasm test_addr_conv.wasm
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- )
- # Install WASM files
- set(WASM_FILES
- ${CMAKE_CURRENT_BINARY_DIR}/test.wasm
- ${CMAKE_CURRENT_BINARY_DIR}/test_addr_conv.wasm
- )
- install(FILES ${WASM_FILES} DESTINATION .)
- # Install AOT files
- set(AOT_FILES
- ${CMAKE_CURRENT_BINARY_DIR}/test.aot
- ${CMAKE_CURRENT_BINARY_DIR}/test_chain.aot
- ${CMAKE_CURRENT_BINARY_DIR}/test_addr_conv.aot
- ${CMAKE_CURRENT_BINARY_DIR}/test_addr_conv_chain.aot
- )
- install(FILES ${AOT_FILES} DESTINATION .)
|