CMakeLists.txt 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. cmake_minimum_required (VERSION 2.8)
  2. project (simple)
  3. set (TARGET_PLATFORM "linux")
  4. # Reset default linker flags
  5. set (CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
  6. set (CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
  7. # Enable repl mode if want to test spec cases
  8. # add_definitions(-DWASM_ENABLE_REPL)
  9. if (NOT ("$ENV{VALGRIND}" STREQUAL "YES"))
  10. add_definitions(-DNVALGRIND)
  11. endif ()
  12. # Currently build as 32-bit by default.
  13. set (BUILD_AS_64BIT_SUPPORT "NO")
  14. if (CMAKE_SIZEOF_VOID_P EQUAL 8)
  15. if (${BUILD_AS_64BIT_SUPPORT} STREQUAL "YES")
  16. # Add -fPIC flag if build as 64-bit
  17. set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
  18. set (CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS} -fPIC")
  19. else ()
  20. add_definitions (-m32)
  21. set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -m32")
  22. set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -m32")
  23. endif ()
  24. endif ()
  25. if (NOT CMAKE_BUILD_TYPE)
  26. SET(CMAKE_BUILD_TYPE Debug)
  27. endif (NOT CMAKE_BUILD_TYPE)
  28. message ("CMAKE_BUILD_TYPE = " ${CMAKE_BUILD_TYPE})
  29. if (NOT PLATFORM)
  30. SET(PLATFORM linux)
  31. endif (NOT PLATFORM)
  32. message ("PLATFORM = " ${PLATFORM})
  33. set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-sections")
  34. set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffunction-sections -fdata-sections -Wall -Wno-unused-parameter -Wno-pedantic")
  35. set(WAMR_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../..)
  36. set(WASM_DIR ${WAMR_ROOT_DIR}/core/iwasm)
  37. set(APP_MGR_DIR ${WAMR_ROOT_DIR}/core/app-mgr)
  38. set(SHARED_DIR ${WAMR_ROOT_DIR}/core/shared-lib)
  39. enable_language (ASM)
  40. include (${WASM_DIR}/runtime/platform/${TARGET_PLATFORM}/platform.cmake)
  41. include (${WASM_DIR}/runtime/utils/utils.cmake)
  42. include (${WASM_DIR}/runtime/vmcore-wasm/vmcore.cmake)
  43. include (${WASM_DIR}/lib/native/base/wasm_lib_base.cmake)
  44. include (${WASM_DIR}/lib/native/libc/wasm_libc.cmake)
  45. include (${WASM_DIR}/lib/native/extension/sensor/wasm_lib_sensor.cmake)
  46. include (${WASM_DIR}/lib/native-interface/native_interface.cmake)
  47. include (${APP_MGR_DIR}/app-manager/app_mgr.cmake)
  48. include (${APP_MGR_DIR}/app-mgr-shared/app_mgr_shared.cmake)
  49. include (${SHARED_DIR}/platform/${TARGET_PLATFORM}/shared_platform.cmake)
  50. include (${SHARED_DIR}/utils/shared_utils.cmake)
  51. include (${SHARED_DIR}/mem-alloc/mem_alloc.cmake)
  52. include (${SHARED_DIR}/coap/lib_coap.cmake)
  53. include_directories(${SHARED_DIR}/include)
  54. #Note: uncomment below line to use UART mode
  55. #add_definitions (-DCONNECTION_UART)
  56. add_definitions (-DWASM_ENABLE_BASE_LIB)
  57. add_definitions (-Dattr_container_malloc=bh_malloc)
  58. add_definitions (-Dattr_container_free=bh_free)
  59. add_library (vmlib
  60. ${WASM_PLATFORM_LIB_SOURCE}
  61. ${WASM_UTILS_LIB_SOURCE}
  62. ${VMCORE_LIB_SOURCE}
  63. ${WASM_LIBC_SOURCE}
  64. ${APP_MGR_SOURCE}
  65. ${WASM_LIB_BASE_SOURCE}
  66. ${WASM_LIB_EXT_SOURCE}
  67. ${WASM_LIB_SENSOR_SOURCE}
  68. ${PLATFORM_SHARED_SOURCE}
  69. ${UTILS_SHARED_SOURCE}
  70. ${MEM_ALLOC_SHARED_SOURCE}
  71. ${NATIVE_INTERFACE_SOURCE}
  72. )
  73. add_executable (simple src/main.c src/iwasm_main.c src/ext_lib_export.c)
  74. target_link_libraries (simple vmlib -lm -ldl -lpthread)