libc_uvwasi.cmake 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # Copyright (C) 2019 Intel Corporation. All rights reserved.
  2. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  3. set (LIBC_WASI_DIR ${CMAKE_CURRENT_LIST_DIR})
  4. set (LIBUV_VERSION v1.46.0)
  5. add_definitions (-DWASM_ENABLE_LIBC_WASI=1 -DWASM_ENABLE_UVWASI=1)
  6. include(FetchContent)
  7. # Point CMake at the custom modules to find libuv and uvwasi
  8. list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
  9. ## libuv
  10. find_package(LIBUV QUIET)
  11. if (LIBUV_FOUND)
  12. include_directories(${LIBUV_INCLUDE_DIR})
  13. else()
  14. FetchContent_Declare(
  15. libuv
  16. GIT_REPOSITORY https://github.com/libuv/libuv.git
  17. GIT_TAG ${LIBUV_VERSION}
  18. )
  19. FetchContent_GetProperties(libuv)
  20. if (NOT libuv_POPULATED)
  21. message("-- Fetching libuv ..")
  22. FetchContent_Populate(libuv)
  23. include_directories("${libuv_SOURCE_DIR}/include")
  24. add_subdirectory(${libuv_SOURCE_DIR} ${libuv_BINARY_DIR} EXCLUDE_FROM_ALL)
  25. set (LIBUV_LIBRARIES uv_a)
  26. set_target_properties(uv_a PROPERTIES POSITION_INDEPENDENT_CODE 1)
  27. endif()
  28. endif()
  29. ## uvwasi
  30. find_package(UVWASI QUIET)
  31. if (UVWASI_FOUND)
  32. include_directories(${UVWASI_INCLUDE_DIR})
  33. else()
  34. FetchContent_Declare(
  35. uvwasi
  36. GIT_REPOSITORY https://github.com/nodejs/uvwasi.git
  37. GIT_TAG main
  38. )
  39. FetchContent_GetProperties(uvwasi)
  40. if (NOT uvwasi_POPULATED)
  41. message("-- Fetching uvwasi ..")
  42. FetchContent_Populate(uvwasi)
  43. include_directories("${uvwasi_SOURCE_DIR}/include")
  44. add_subdirectory(${uvwasi_SOURCE_DIR} ${uvwasi_BINARY_DIR} EXCLUDE_FROM_ALL)
  45. set (UVWASI_LIBRARIES uvwasi_a)
  46. set_target_properties(uvwasi_a PROPERTIES POSITION_INDEPENDENT_CODE 1)
  47. endif()
  48. endif()
  49. set (UV_A_LIBS ${LIBUV_LIBRARIES} ${UVWASI_LIBRARIES})
  50. file (GLOB_RECURSE source_all ${LIBC_WASI_DIR}/*.c)
  51. set (LIBC_WASI_SOURCE ${source_all})