CMakeLists.txt 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. # Copyright (C) 2025 Intel Corporation. All rights reserved.
  2. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  3. # Set default build options with the ability to override from the command line
  4. if(NOT WAMR_BUILD_INTERP)
  5. set(WAMR_BUILD_INTERP 1)
  6. endif()
  7. set(WAMR_BUILD_WAMR_COMPILER 1)
  8. set(WAMR_BUILD_AOT 0)
  9. set(WAMR_BUILD_INTERP 1)
  10. set(WAMR_BUILD_JIT 0)
  11. include(${SHARED_DIR}/platform/${WAMR_BUILD_PLATFORM}/shared_platform.cmake)
  12. include(${SHARED_DIR}/mem-alloc/mem_alloc.cmake)
  13. include(${SHARED_DIR}/utils/shared_utils.cmake)
  14. include(${SHARED_DIR}/utils/uncommon/shared_uncommon.cmake)
  15. include(${IWASM_DIR}/compilation/iwasm_compl.cmake)
  16. include(${IWASM_DIR}/libraries/thread-mgr/thread_mgr.cmake)
  17. include(${IWASM_DIR}/common/iwasm_common.cmake)
  18. include(${IWASM_DIR}/common/gc/iwasm_gc.cmake)
  19. include(${IWASM_DIR}/interpreter/iwasm_interp.cmake)
  20. include(${IWASM_DIR}/aot/iwasm_aot.cmake)
  21. include(${IWASM_DIR}/compilation/iwasm_compl.cmake)
  22. include(${REPO_ROOT_DIR}/build-scripts/version.cmake)
  23. add_library(aotclib
  24. ${PLATFORM_SHARED_SOURCE}
  25. ${MEM_ALLOC_SHARED_SOURCE}
  26. ${UTILS_SHARED_SOURCE}
  27. ${UNCOMMON_SHARED_SOURCE}
  28. ${THREAD_MGR_SOURCE}
  29. ${IWASM_COMMON_SOURCE}
  30. ${IWASM_INTERP_SOURCE}
  31. ${IWASM_AOT_SOURCE}
  32. ${IWASM_GC_SOURCE}
  33. ${IWASM_COMPL_SOURCE}
  34. )
  35. target_compile_definitions(aotclib
  36. PUBLIC
  37. -DWASM_ENABLE_WAMR_COMPILER=1
  38. -DWASM_ENABLE_FAST_INTERP=0
  39. -DWASM_ENABLE_INTERP=1
  40. -DWASM_ENABLE_BULK_MEMORY=1
  41. -DWASM_ENABLE_SHARED_MEMORY=1
  42. -DWASM_ENABLE_TAIL_CALL=1
  43. -DWASM_ENABLE_SIMD=1
  44. -DWASM_ENABLE_REF_TYPES=1
  45. -DWASM_ENABLE_MEMORY64=1
  46. -DWASM_ENABLE_GC=1
  47. -DWASM_ENABLE_CUSTOM_NAME_SECTION=1
  48. -DWASM_ENABLE_AOT_STACK_FRAME=1
  49. -DWASM_ENABLE_DUMP_CALL_STACK=1
  50. -DWASM_ENABLE_PERF_PROFILING=1
  51. -DWASM_ENABLE_LOAD_CUSTOM_SECTION=1
  52. -DWASM_ENABLE_THREAD_MGR=1
  53. ${LLVM_DEFINITIONS}
  54. )
  55. target_include_directories(aotclib PUBLIC
  56. ${IWASM_DIR}/include
  57. ${SHARED_DIR}/include
  58. )
  59. target_link_directories(aotclib PUBLIC ${LLVM_LIBRARY_DIR})
  60. target_link_libraries(aotclib PUBLIC ${REQUIRED_LLVM_LIBS})
  61. if(NOT IN_OSS_FUZZ)
  62. message(STATUS "Enable ASan and UBSan in non-oss-fuzz environment")
  63. target_compile_options(aotclib PUBLIC
  64. -fprofile-instr-generate -fcoverage-mapping
  65. -fno-sanitize-recover=all
  66. -fsanitize=address,undefined
  67. -fsanitize=float-divide-by-zero,unsigned-integer-overflow,local-bounds,nullability
  68. -fno-sanitize=alignment
  69. )
  70. target_link_options(aotclib PUBLIC -fsanitize=address,undefined -fprofile-instr-generate)
  71. endif()
  72. add_executable(aot_compiler_fuzz aot_compiler_fuzz.cc)
  73. target_link_libraries(aot_compiler_fuzz PRIVATE stdc++ aotclib)