CMakeLists.txt 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. add_library(uv.hdll
  2. uv.c
  3. )
  4. if(WIN32)
  5. target_sources(uv.hdll
  6. PRIVATE
  7. ${INCLUDES_BASE_DIR}/libuv/src/fs-poll.c
  8. ${INCLUDES_BASE_DIR}/libuv/src/inet.c
  9. ${INCLUDES_BASE_DIR}/libuv/src/threadpool.c
  10. ${INCLUDES_BASE_DIR}/libuv/src/uv-common.c
  11. ${INCLUDES_BASE_DIR}/libuv/src/version.c
  12. ${INCLUDES_BASE_DIR}/libuv/src/win/async.c
  13. ${INCLUDES_BASE_DIR}/libuv/src/win/core.c
  14. ${INCLUDES_BASE_DIR}/libuv/src/win/dl.c
  15. ${INCLUDES_BASE_DIR}/libuv/src/win/error.c
  16. ${INCLUDES_BASE_DIR}/libuv/src/win/fs-event.c
  17. ${INCLUDES_BASE_DIR}/libuv/src/win/fs.c
  18. ${INCLUDES_BASE_DIR}/libuv/src/win/getaddrinfo.c
  19. ${INCLUDES_BASE_DIR}/libuv/src/win/getnameinfo.c
  20. ${INCLUDES_BASE_DIR}/libuv/src/win/handle.c
  21. ${INCLUDES_BASE_DIR}/libuv/src/win/loop-watcher.c
  22. ${INCLUDES_BASE_DIR}/libuv/src/win/pipe.c
  23. ${INCLUDES_BASE_DIR}/libuv/src/win/poll.c
  24. ${INCLUDES_BASE_DIR}/libuv/src/win/process-stdio.c
  25. ${INCLUDES_BASE_DIR}/libuv/src/win/process.c
  26. ${INCLUDES_BASE_DIR}/libuv/src/win/req.c
  27. ${INCLUDES_BASE_DIR}/libuv/src/win/signal.c
  28. ${INCLUDES_BASE_DIR}/libuv/src/win/snprintf.c
  29. ${INCLUDES_BASE_DIR}/libuv/src/win/stream.c
  30. ${INCLUDES_BASE_DIR}/libuv/src/win/tcp.c
  31. ${INCLUDES_BASE_DIR}/libuv/src/win/thread.c
  32. ${INCLUDES_BASE_DIR}/libuv/src/win/timer.c
  33. ${INCLUDES_BASE_DIR}/libuv/src/win/tty.c
  34. ${INCLUDES_BASE_DIR}/libuv/src/win/udp.c
  35. ${INCLUDES_BASE_DIR}/libuv/src/win/util.c
  36. ${INCLUDES_BASE_DIR}/libuv/src/win/winapi.c
  37. ${INCLUDES_BASE_DIR}/libuv/src/win/winsock.c
  38. )
  39. elseif(DOWNLOAD_DEPENDENCIES)
  40. FetchContent_Declare(libuv-project
  41. URL https://github.com/libuv/libuv/archive/refs/tags/v1.51.0.tar.gz
  42. URL_HASH SHA256=27e55cf7083913bfb6826ca78cde9de7647cded648d35f24163f2d31bb9f51cd
  43. EXCLUDE_FROM_ALL
  44. )
  45. set(_OLD_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
  46. set(BUILD_SHARED_LIBS OFF)
  47. set(LIBUV_BUILD_SHARED OFF CACHE INTERNAL "")
  48. set(LIBUV_BUILD_TESTS OFF CACHE INTERNAL "")
  49. FetchContent_MakeAvailable(libuv-project)
  50. set(BUILD_SHARED_LIBS ${_OLD_BUILD_SHARED_LIBS})
  51. add_library(LibUV::LibUV ALIAS uv_a)
  52. else()
  53. find_package(LibUV)
  54. endif()
  55. set_as_hdll(uv)
  56. target_link_libraries(uv.hdll
  57. libhl
  58. )
  59. if(WIN32)
  60. target_include_directories(uv.hdll
  61. PRIVATE
  62. ${INCLUDES_BASE_DIR}/libuv/include
  63. )
  64. target_link_libraries(uv.hdll
  65. psapi
  66. iphlpapi
  67. userenv
  68. )
  69. target_compile_definitions(uv.hdll
  70. PRIVATE
  71. UV_EXPORTS
  72. BUILDING_UV_SHARED
  73. )
  74. else()
  75. target_link_libraries(uv.hdll
  76. LibUV::LibUV
  77. )
  78. endif()
  79. install(
  80. TARGETS
  81. uv.hdll
  82. DESTINATION ${HDLL_DESTINATION}
  83. )