CMakeLists.txt 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # Copyright (C) 2019 Intel Corporation. All rights reserved.
  2. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  3. cmake_minimum_required(VERSION 3.14)
  4. project(wasm-apps-wasm64)
  5. set(WAMR_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../..)
  6. # Find WAMRC
  7. set(WAMRC_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../..)
  8. find_program(WAMRC_BIN wamrc HINTS ${CMAKE_CURRENT_SOURCE_DIR}/../../../../wamr-compiler/build REQUIRED)
  9. # Set WAMRC flags for memory64
  10. set(WAMRC_SHARED_HEAP_FLAGS --opt-level=3 --bounds-checks=1 --enable-shared-heap)
  11. set(WAMRC_SHARED_HEAP_CHAIN_FLAGS --opt-level=3 --bounds-checks=1 --enable-shared-chain)
  12. #
  13. # C -> Wasm
  14. #
  15. add_executable(test64.wasm ../test.c)
  16. target_compile_options(test64.wasm PUBLIC -nostdlib -O0 -pthread --target=wasm64)
  17. target_link_options(test64.wasm PRIVATE
  18. -nostdlib
  19. LINKER:--no-entry
  20. LINKER:--initial-memory=65536
  21. LINKER:--export-all
  22. LINKER:--allow-undefined
  23. )
  24. # Compile AOT files (combined target)
  25. add_custom_target(compile_aot ALL
  26. COMMAND ${WAMRC_BIN} ${WAMRC_SHARED_HEAP_FLAGS} -o test64.aot test64.wasm
  27. COMMAND ${WAMRC_BIN} ${WAMRC_SHARED_HEAP_CHAIN_FLAGS} -o test64_chain.aot test64.wasm
  28. DEPENDS test64.wasm
  29. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  30. )
  31. # Install WASM file
  32. set(WASM_FILES
  33. ${CMAKE_CURRENT_BINARY_DIR}/test64.wasm
  34. )
  35. install(FILES ${WASM_FILES} DESTINATION .)
  36. # Install AOT files
  37. set(AOT_FILES
  38. ${CMAKE_CURRENT_BINARY_DIR}/test64.aot
  39. ${CMAKE_CURRENT_BINARY_DIR}/test64_chain.aot
  40. )
  41. install(FILES ${AOT_FILES} DESTINATION .)