CMakeLists.txt 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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(linking_samples)
  5. set(CMAKE_BUILD_TYPE Debug)
  6. list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
  7. find_package(WASISDK REQUIRED)
  8. include(CTest)
  9. enable_testing()
  10. ################ runtime settings ################
  11. string (TOLOWER ${CMAKE_HOST_SYSTEM_NAME} WAMR_BUILD_PLATFORM)
  12. include(CheckPIESupported)
  13. # AOT and JIT byd default
  14. if(NOT WAMR_BUILD_AOT)
  15. set(WAMR_BUILD_AOT 0)
  16. endif()
  17. set(WAMR_BUILD_INTERP 1)
  18. set(WAMR_BUILD_JIT 0)
  19. # wasm32-wasi
  20. set(WAMR_BUILD_LIBC_BUILTIN 0)
  21. set(WAMR_BUILD_LIBC_WASI 1)
  22. # mvp
  23. set(WAMR_BUILD_BULK_MEMORY 1)
  24. set(WAMR_BUILD_REF_TYPES 1)
  25. set(WAMR_BUILD_SIMD 1)
  26. set(WAMR_BUILD_TAIL_CALL 1)
  27. set(WAMR_BUILD_THREAD_MGR 0)
  28. set(WAMR_BUILD_LIB_WASI_THREADS 0)
  29. ## below two prevent valgrind from crashing
  30. #TODO: there is a crash if turn it on
  31. set(WAMR_DISABLE_HW_BOUND_CHECK 0)
  32. set(WAMR_DISABLE_STACK_HW_BOUND_CHECK 1)
  33. set(WAMR_DISABLE_WRITE_GS_BASE 1)
  34. # vmlib
  35. set(WAMR_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../..)
  36. include(${WAMR_ROOT_DIR}/build-scripts/runtime_lib.cmake)
  37. add_library(vmlib SHARED ${WAMR_RUNTIME_LIB_SOURCE})
  38. target_include_directories(vmlib INTERFACE ${WAMR_ROOT_DIR}/core/iwasm/include)
  39. target_link_libraries(vmlib ${LLVM_AVAILABLE_LIBS} -lm -ldl)
  40. ################ samples ################
  41. add_subdirectory(import-memory)
  42. add_subdirectory(import-table)
  43. ################ wasm and/or aot ################
  44. include(ExternalProject)
  45. ExternalProject_Add(wasm
  46. SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/wasm"
  47. CONFIGURE_COMMAND ${CMAKE_COMMAND} -S ${CMAKE_CURRENT_SOURCE_DIR}/wasm -B build
  48. -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
  49. -DCMAKE_TOOLCHAIN_FILE=${WASISDK_TOOLCHAIN}
  50. -DWAMR_BUILD_AOT=${WAMR_BUILD_AOT}
  51. BUILD_COMMAND ${CMAKE_COMMAND} --build build
  52. INSTALL_COMMAND ${CMAKE_COMMAND} --install build --prefix ${CMAKE_CURRENT_BINARY_DIR}
  53. EXCLUDE_FROM_ALL NO
  54. )