iwasm_aot.cmake 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. # Copyright (C) 2019 Intel Corporation. All rights reserved.
  2. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  3. set (IWASM_AOT_DIR ${CMAKE_CURRENT_LIST_DIR})
  4. add_definitions (-DWASM_ENABLE_AOT=1)
  5. include_directories (${IWASM_AOT_DIR})
  6. file (GLOB c_source_all ${IWASM_AOT_DIR}/*.c)
  7. if (WAMR_BUILD_TARGET STREQUAL "X86_64" OR WAMR_BUILD_TARGET STREQUAL "AMD_64")
  8. set (arch_source ${IWASM_AOT_DIR}/arch/aot_reloc_x86_64.c)
  9. elseif (WAMR_BUILD_TARGET STREQUAL "X86_32")
  10. set (arch_source ${IWASM_AOT_DIR}/arch/aot_reloc_x86_32.c)
  11. elseif (WAMR_BUILD_TARGET MATCHES "AARCH64.*")
  12. set (arch_source ${IWASM_AOT_DIR}/arch/aot_reloc_aarch64.c)
  13. elseif (WAMR_BUILD_TARGET MATCHES "ARM.*")
  14. set (arch_source ${IWASM_AOT_DIR}/arch/aot_reloc_arm.c)
  15. elseif (WAMR_BUILD_TARGET MATCHES "THUMB.*")
  16. set (arch_source ${IWASM_AOT_DIR}/arch/aot_reloc_thumb.c)
  17. elseif (WAMR_BUILD_TARGET STREQUAL "MIPS")
  18. set (arch_source ${IWASM_AOT_DIR}/arch/aot_reloc_mips.c)
  19. elseif (WAMR_BUILD_TARGET STREQUAL "XTENSA")
  20. set (arch_source ${IWASM_AOT_DIR}/arch/aot_reloc_xtensa.c)
  21. elseif (WAMR_BUILD_TARGET MATCHES "RISCV*")
  22. set (arch_source ${IWASM_AOT_DIR}/arch/aot_reloc_riscv.c)
  23. elseif (WAMR_BUILD_TARGET STREQUAL "ARC")
  24. set (arch_source ${IWASM_AOT_DIR}/arch/aot_reloc_arc.c)
  25. else ()
  26. message (FATAL_ERROR "Build target isn't set")
  27. endif ()
  28. if (WAMR_BUILD_DEBUG_AOT EQUAL 1)
  29. add_definitions(-DWASM_ENABLE_DEBUG_AOT=1)
  30. file(GLOB debug_source ${IWASM_AOT_DIR}/debug/*.c)
  31. endif()
  32. if ((WAMR_BUILD_TARGET STREQUAL "X86_64" OR WAMR_BUILD_TARGET STREQUAL "AMD_64")
  33. AND (WAMR_BUILD_PLATFORM STREQUAL "windows")
  34. AND (NOT WAMR_DISABLE_HW_BOUND_CHECK EQUAL 1))
  35. include(FetchContent)
  36. FetchContent_Declare(
  37. zycore
  38. GIT_REPOSITORY https://github.com/zyantific/zycore-c.git
  39. )
  40. FetchContent_GetProperties(zycore)
  41. if (NOT zycore_POPULATED)
  42. message ("-- Fetching zycore ..")
  43. FetchContent_Populate(zycore)
  44. include_directories("${zycore_SOURCE_DIR}/include")
  45. include_directories("${zycore_BINARY_DIR}")
  46. add_definitions(-DZYCORE_STATIC_BUILD=1)
  47. add_subdirectory(${zycore_SOURCE_DIR} ${zycore_BINARY_DIR} EXCLUDE_FROM_ALL)
  48. file (GLOB_RECURSE c_source_zycore ${zycore_SOURCE_DIR}/src/*.c)
  49. endif ()
  50. FetchContent_Declare(
  51. zydis
  52. GIT_REPOSITORY https://github.com/zyantific/zydis.git
  53. GIT_TAG e14a07895136182a5b53e181eec3b1c6e0b434de
  54. )
  55. FetchContent_GetProperties(zydis)
  56. if (NOT zydis_POPULATED)
  57. message ("-- Fetching zydis ..")
  58. FetchContent_Populate(zydis)
  59. option(ZYDIS_FEATURE_ENCODER "" OFF)
  60. option(ZYDIS_BUILD_TOOLS "" OFF)
  61. option(ZYDIS_BUILD_EXAMPLES "" OFF)
  62. option(ZYDIS_BUILD_MAN "" OFF)
  63. option(ZYDIS_BUILD_DOXYGEN "" OFF)
  64. include_directories("${zydis_BINARY_DIR}")
  65. include_directories("${zydis_SOURCE_DIR}/include")
  66. include_directories("${zydis_SOURCE_DIR}/src")
  67. add_definitions(-DZYDIS_STATIC_BUILD=1)
  68. add_subdirectory(${zydis_SOURCE_DIR} ${zydis_BINARY_DIR} EXCLUDE_FROM_ALL)
  69. file (GLOB_RECURSE c_source_zydis ${zydis_SOURCE_DIR}/src/*.c)
  70. endif ()
  71. endif ()
  72. set (IWASM_AOT_SOURCE ${c_source_all} ${arch_source} ${debug_source}
  73. ${c_source_zycore} ${c_source_zydis})