CMakeLists.txt 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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(linux_perf_sample)
  5. if(NOT CMAKE_HOST_LINUX)
  6. message(FATAL_ERROR "This sample only works on linux")
  7. endif()
  8. if(NOT CMAKE_BUILD_TYPE)
  9. set(CMAKE_BUILD_TYPE Release)
  10. endif()
  11. set(CMAKE_CXX_STANDARD 17)
  12. list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
  13. find_package(WASISDK REQUIRED)
  14. ################ runtime settings ################
  15. string (TOLOWER ${CMAKE_HOST_SYSTEM_NAME} WAMR_BUILD_PLATFORM)
  16. include(CheckPIESupported)
  17. # AOT and JIT byd default
  18. set(WAMR_BUILD_AOT 1)
  19. set(WAMR_BUILD_INTERP 0)
  20. set(WAMR_BUILD_JIT 1)
  21. # wasm32-wasi
  22. set(WAMR_BUILD_LIBC_BUILTIN 0)
  23. set(WAMR_BUILD_LIBC_WASI 1)
  24. # mvp
  25. set(WAMR_BUILD_BULK_MEMORY 1)
  26. set(WAMR_BUILD_REF_TYPES 1)
  27. set(WAMR_BUILD_SIMD 1)
  28. set(WAMR_BUILD_TAIL_CALL 1)
  29. # trap information
  30. set(WAMR_BUILD_DUMP_CALL_STACK 1)
  31. # linux perf
  32. set(WAMR_BUILD_LINUX_PERF 1)
  33. #
  34. #set(WAMR_BUILD_THREAD_MGR 0)
  35. # vmlib
  36. set(WAMR_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../..)
  37. include(${WAMR_ROOT_DIR}/build-scripts/runtime_lib.cmake)
  38. add_library(vmlib SHARED ${WAMR_RUNTIME_LIB_SOURCE})
  39. target_include_directories(vmlib INTERFACE ${WAMR_ROOT_DIR}/core/iwasm/include)
  40. target_link_libraries (vmlib ${LLVM_AVAILABLE_LIBS} -lm -ldl)
  41. ################ host ################
  42. add_executable(${PROJECT_NAME} host/demo.c)
  43. target_link_libraries(${PROJECT_NAME} vmlib)
  44. ################ aot + wasm ################
  45. include(ExternalProject)
  46. ExternalProject_Add(wasm
  47. SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/wasm"
  48. CONFIGURE_COMMAND ${CMAKE_COMMAND} -S ${CMAKE_CURRENT_SOURCE_DIR}/wasm -B build
  49. -DCMAKE_TOOLCHAIN_FILE=${WASISDK_TOOLCHAIN}
  50. BUILD_COMMAND ${CMAKE_COMMAND} --build build
  51. INSTALL_COMMAND ${CMAKE_COMMAND} --install build --prefix ${CMAKE_CURRENT_BINARY_DIR}
  52. )