CMakeLists.txt 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # Copyright (C) 2019 Intel Corporation. All rights reserved.
  2. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  3. cmake_minimum_required(VERSION 2.8)
  4. project(runtime-sdk)
  5. SET (CMAKE_C_FLAGS "-O3")
  6. set (CMAKE_BUILD_TYPE Release)
  7. add_definitions(-DBH_MALLOC=wasm_runtime_malloc)
  8. add_definitions(-DBH_FREE=wasm_runtime_free)
  9. if (NOT DEFINED WAMR_BUILD_SDK_PROFILE)
  10. set (WAMR_BUILD_SDK_PROFILE "default")
  11. endif ()
  12. if (NOT DEFINED CONFIG_PATH)
  13. set (CONFIG_PATH ${CMAKE_CURRENT_LIST_DIR}/../wamr_config_default.cmake)
  14. endif ()
  15. if (NOT EXISTS "${CONFIG_PATH}")
  16. message (FATAL_ERROR "${CONFIG_PATH} not exist")
  17. endif ()
  18. include(${CONFIG_PATH})
  19. if (NOT DEFINED OUT_DIR)
  20. set (OUT_DIR "${CMAKE_CURRENT_LIST_DIR}/../out/${WAMR_BUILD_SDK_PROFILE}")
  21. endif ()
  22. set (RUNTIME_SDK_DIR "${OUT_DIR}/runtime-sdk")
  23. include(${CMAKE_CURRENT_LIST_DIR}/../../build-scripts/runtime_lib.cmake)
  24. # build vmlib
  25. add_library(vmlib ${WAMR_RUNTIME_LIB_SOURCE})
  26. # copy vmlib.a to ${SDK_ROOT}/out/runtime-sdk/lib
  27. add_custom_command(
  28. TARGET vmlib POST_BUILD
  29. COMMAND ${CMAKE_COMMAND} -E make_directory ${RUNTIME_SDK_DIR}/lib
  30. COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/*.a ${RUNTIME_SDK_DIR}/lib
  31. )
  32. # copy headers to ${SDK_ROOT}/out/runtime-sdk/include
  33. FOREACH (header IN LISTS RUNTIME_LIB_HEADER_LIST)
  34. execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${RUNTIME_SDK_DIR}/include)
  35. execute_process(COMMAND ${CMAKE_COMMAND} -E copy "${header}" ${RUNTIME_SDK_DIR}/include)
  36. ENDFOREACH (header)
  37. if (DEFINED EXTRA_SDK_INCLUDE_PATH)
  38. execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${EXTRA_SDK_INCLUDE_PATH} ${RUNTIME_SDK_DIR}/include)
  39. endif ()
  40. # config.h is not needed when building a runtime product with pre-built library
  41. # erase the file to avoid compile error
  42. file (WRITE ${RUNTIME_SDK_DIR}/include/config.h "")