CMakeLists.txt 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. # Copyright (C) 2021 Intel Corporation and others. All rights reserved.
  2. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  3. # Set WAMR's build options
  4. if (NOT CMAKE_BUILD_EARLY_EXPANSION)
  5. if (CONFIG_IDF_TARGET_ARCH_RISCV)
  6. if (CONFIG_IDF_TARGET_ESP32P4)
  7. set (WAMR_BUILD_TARGET "RISCV32_ILP32F")
  8. else ()
  9. set (WAMR_BUILD_TARGET "RISCV32_ILP32")
  10. endif ()
  11. elseif (CONFIG_IDF_TARGET_ARCH_XTENSA)
  12. set (WAMR_BUILD_TARGET "XTENSA")
  13. else ()
  14. message (FATAL_ERROR "Arch ${CONFIG_IDF_TARGET_ARCH} is not supported")
  15. endif ()
  16. set (WAMR_BUILD_PLATFORM "esp-idf")
  17. if (CONFIG_WAMR_BUILD_DEBUG)
  18. set (CMAKE_BUILD_TYPE Debug)
  19. else ()
  20. set (CMAKE_BUILD_TYPE Release)
  21. endif ()
  22. if (CONFIG_WAMR_ENABLE_INTERP)
  23. set (WAMR_BUILD_INTERP 1)
  24. endif ()
  25. if (CONFIG_WAMR_INTERP_FAST)
  26. set (WAMR_BUILD_FAST_INTERP 1)
  27. endif ()
  28. if (CONFIG_WAMR_ENABLE_AOT)
  29. set (WAMR_BUILD_AOT 1)
  30. endif ()
  31. if (CONFIG_WAMR_ENABLE_LIBC_BUILTIN)
  32. set (WAMR_BUILD_LIBC_BUILTIN 1)
  33. endif ()
  34. if (CONFIG_WAMR_INTERP_LOADER_MINI)
  35. set (WAMR_BUILD_MINI_LOADER 1)
  36. endif ()
  37. if (CONFIG_WAMR_ENABLE_MULTI_MODULE)
  38. set (WAMR_BUILD_MULTI_MODULE 1)
  39. endif ()
  40. if (CONFIG_WAMR_ENABLE_SHARED_MEMORY)
  41. set (WAMR_BUILD_SHARED_MEMORY 1)
  42. endif ()
  43. if (CONFIG_WAMR_ENABLE_MEMORY_PROFILING)
  44. set (WAMR_BUILD_MEMORY_PROFILING 1)
  45. endif ()
  46. if (CONFIG_WAMR_ENABLE_PERF_PROFILING)
  47. set (WAMR_BUILD_PERF_PROFILING 1)
  48. endif ()
  49. if (CONFIG_WAMR_ENABLE_REF_TYPES)
  50. set (WAMR_BUILD_REF_TYPES 1)
  51. endif ()
  52. if (CONFIG_WAMR_ENABLE_LIBC_WASI)
  53. set (WAMR_BUILD_LIBC_WASI 1)
  54. endif ()
  55. if (CONFIG_WAMR_ENABLE_LIB_PTHREAD)
  56. set (WAMR_BUILD_LIB_PTHREAD 1)
  57. endif ()
  58. set (WAMR_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..)
  59. include (${WAMR_ROOT_DIR}/build-scripts/runtime_lib.cmake)
  60. list (APPEND srcs "${WAMR_RUNTIME_LIB_SOURCE}"
  61. "${PLATFORM_SHARED_SOURCE}")
  62. set (include_dirs "${IWASM_DIR}/include"
  63. "${UTILS_SHARED_DIR}"
  64. "${PLATFORM_SHARED_DIR}"
  65. "${PLATFORM_SHARED_DIR}/../include"
  66. "${IWASM_COMMON_DIR}")
  67. endif ()
  68. idf_component_register(SRCS ${srcs}
  69. INCLUDE_DIRS ${include_dirs}
  70. REQUIRES pthread lwip esp_timer
  71. KCONFIG ${CMAKE_CURRENT_LIST_DIR}/Kconfig)
  72. target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")
  73. if (CONFIG_IDF_TARGET_ARCH_RISCV)
  74. if (CONFIG_IDF_TARGET_ESP32P4)
  75. target_compile_definitions(${COMPONENT_LIB} PUBLIC -DBUILD_TARGET_RISCV32_ILP32F=1)
  76. else ()
  77. target_compile_definitions(${COMPONENT_LIB} PUBLIC -DBUILD_TARGET_RISCV32_ILP32=1)
  78. endif ()
  79. elseif (CONFIG_IDF_TARGET_ARCH_XTENSA)
  80. target_compile_definitions(${COMPONENT_LIB} PUBLIC -DBUILD_TARGET_XTENSA=1)
  81. endif ()
  82. if (CONFIG_WAMR_ENABLE_AOT)
  83. target_compile_definitions(${COMPONENT_LIB} PUBLIC -DWASM_ENABLE_AOT=1)
  84. endif ()
  85. if (CONFIG_WAMR_ENABLE_INTERP)
  86. target_compile_definitions(${COMPONENT_LIB} PUBLIC -DWASM_ENABLE_INTERP=1)
  87. endif ()