CMakeLists.txt 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. # Copyright (C) 2024 Xiaomi 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)
  5. set(WAMR_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../..)
  6. set(WAMRC_ROOT_DIR ${WAMR_ROOT_DIR}/wamr-compiler/build)
  7. set(CMAKE_SYSTEM_PROCESSOR wasm32)
  8. set(CMAKE_SYSROOT ${WAMR_ROOT_DIR}/wamr-sdk/app/libc-builtin-sysroot)
  9. if (NOT DEFINED WASI_SDK_DIR)
  10. set(WASI_SDK_DIR "/opt/wasi-sdk")
  11. endif ()
  12. set(CMAKE_C_FLAGS "-nostdlib -pthread -Qunused-arguments")
  13. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -z stack-size=8192 -nostdlib -O0")
  14. set(CMAKE_C_COMPILER_TARGET "wasm32")
  15. set(CMAKE_C_COMPILER "${WASI_SDK_DIR}/bin/clang")
  16. set(DEFINED_SYMBOLS
  17. "${WAMR_ROOT_DIR}/wamr-sdk/app/libc-builtin-sysroot/share/defined-symbols.txt")
  18. set(CMAKE_EXE_LINKER_FLAGS
  19. "-Wl,--no-entry \
  20. -Wl,--initial-memory=65536 \
  21. -Wl,--export-all \
  22. -Wl,--allow-undefined"
  23. )
  24. add_executable(test.wasm test.c)
  25. target_link_libraries(test.wasm)
  26. add_custom_command(TARGET test.wasm POST_BUILD
  27. COMMAND ${CMAKE_COMMAND} -E copy
  28. ${CMAKE_CURRENT_BINARY_DIR}/test.wasm
  29. ${CMAKE_CURRENT_BINARY_DIR}/../
  30. COMMENT "Copy test.wasm to the same directory of google test"
  31. )
  32. add_custom_command(TARGET test.wasm POST_BUILD
  33. COMMAND ${WAMRC_ROOT_DIR}/wamrc --opt-level=0 --enable-shared-heap --bounds-checks=1
  34. -o
  35. test.aot
  36. test.wasm
  37. COMMAND ${CMAKE_COMMAND} -E copy
  38. ${CMAKE_CURRENT_BINARY_DIR}/test.aot
  39. ${CMAKE_CURRENT_BINARY_DIR}/../
  40. COMMENT "Copy test.aot to the same directory of google test"
  41. )
  42. add_executable(test_addr_conv.wasm test_addr_conv.c)
  43. target_link_libraries(test.wasm)
  44. add_custom_command(TARGET test_addr_conv.wasm POST_BUILD
  45. COMMAND ${CMAKE_COMMAND} -E copy
  46. ${CMAKE_CURRENT_BINARY_DIR}/test_addr_conv.wasm
  47. ${CMAKE_CURRENT_BINARY_DIR}/../
  48. COMMENT "Copy test_addr_conv.wasm to the same directory of google test"
  49. )
  50. add_custom_command(TARGET test_addr_conv.wasm POST_BUILD
  51. COMMAND ${WAMRC_ROOT_DIR}/wamrc --opt-level=0 --enable-shared-heap --bounds-checks=1
  52. -o
  53. test_addr_conv.aot
  54. test_addr_conv.wasm
  55. COMMAND ${CMAKE_COMMAND} -E copy
  56. ${CMAKE_CURRENT_BINARY_DIR}/test_addr_conv.aot
  57. ${CMAKE_CURRENT_BINARY_DIR}/../
  58. COMMENT "Copy test_addr_conv.aot to the same directory of google test"
  59. )