CMakeLists.txt 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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(test-shared-heap)
  5. add_definitions(-DRUN_ON_LINUX)
  6. set(WAMR_BUILD_APP_FRAMEWORK 0)
  7. set(WAMR_BUILD_AOT 1)
  8. set(WAMR_BUILD_INTERP 1)
  9. set(WAMR_BUILD_FAST_INTERP 1)
  10. set(WAMR_BUILD_JIT 0)
  11. set(WAMR_BUILD_MEMORY64 0)
  12. set(WAMR_BUILD_SHARED_HEAP 1)
  13. # Compile wasm modules
  14. set(WASI_SDK_DIR "/opt/wasi-sdk")
  15. set(WASISDK_TOOLCHAIN "${WASI_SDK_DIR}/share/cmake/wasi-sdk.cmake")
  16. include(ExternalProject)
  17. ExternalProject_Add(
  18. shared_heap_wasm_apps
  19. SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/wasm-apps
  20. BUILD_ALWAYS YES
  21. CONFIGURE_COMMAND ${CMAKE_COMMAND} -S ${CMAKE_CURRENT_SOURCE_DIR}/wasm-apps -B build
  22. -DWASI_SDK_PREFIX=${WASI_SDK_DIR}
  23. -DCMAKE_TOOLCHAIN_FILE=${WASISDK_TOOLCHAIN}
  24. BUILD_COMMAND ${CMAKE_COMMAND} --build build
  25. INSTALL_COMMAND ${CMAKE_COMMAND} --install build --prefix ${CMAKE_CURRENT_BINARY_DIR}
  26. )
  27. ExternalProject_Add(
  28. shared_heap_wasm_apps_bulk_memory
  29. SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/wasm-apps/bulk-memory
  30. BUILD_ALWAYS YES
  31. CONFIGURE_COMMAND ${CMAKE_COMMAND} -S ${CMAKE_CURRENT_SOURCE_DIR}/wasm-apps/bulk-memory -B build
  32. -DWASI_SDK_PREFIX=${WASI_SDK_DIR}
  33. -DCMAKE_TOOLCHAIN_FILE=${WASISDK_TOOLCHAIN}
  34. BUILD_COMMAND ${CMAKE_COMMAND} --build build
  35. INSTALL_COMMAND ${CMAKE_COMMAND} --install build --prefix ${CMAKE_CURRENT_BINARY_DIR}
  36. )
  37. # if only load this CMake other than load it as subdirectory
  38. include(${CMAKE_CURRENT_SOURCE_DIR}/../unit_common.cmake)
  39. include(${IWASM_DIR}/compilation/iwasm_compl.cmake)
  40. include_directories(${CMAKE_CURRENT_SOURCE_DIR})
  41. file(GLOB_RECURSE source_all ${CMAKE_CURRENT_SOURCE_DIR}/*.cc)
  42. set(UNIT_SOURCE ${source_all})
  43. set(unit_test_sources
  44. ${UNIT_SOURCE}
  45. ${WAMR_RUNTIME_LIB_SOURCE}
  46. ${UNCOMMON_SHARED_SOURCE}
  47. )
  48. # Now simply link against gtest or gtest_main as needed. Eg
  49. add_executable(shared_heap_test ${unit_test_sources})
  50. target_link_libraries(shared_heap_test gtest_main)
  51. gtest_discover_tests(shared_heap_test)