diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/libuv | |
Diffstat (limited to 'vcpkg/ports/libuv')
| -rw-r--r-- | vcpkg/ports/libuv/fix-build-type.patch | 44 | ||||
| -rw-r--r-- | vcpkg/ports/libuv/portfile.cmake | 40 | ||||
| -rw-r--r-- | vcpkg/ports/libuv/ssize_t.patch | 14 | ||||
| -rw-r--r-- | vcpkg/ports/libuv/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/libuv/vcpkg.json | 18 |
5 files changed, 120 insertions, 0 deletions
diff --git a/vcpkg/ports/libuv/fix-build-type.patch b/vcpkg/ports/libuv/fix-build-type.patch new file mode 100644 index 0000000..f6ef653 --- /dev/null +++ b/vcpkg/ports/libuv/fix-build-type.patch @@ -0,0 +1,44 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5e8e016..b3c3f18 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -465,7 +465,7 @@ if(LIBUV_BUILD_SHARED) + endif() + target_link_libraries(uv ${uv_libraries}) + set_target_properties(uv PROPERTIES OUTPUT_NAME "uv") +-endif() ++else() + + add_library(uv_a STATIC ${uv_sources}) + target_compile_definitions(uv_a PRIVATE ${uv_defines}) +@@ -485,6 +485,7 @@ set_target_properties(uv_a PROPERTIES OUTPUT_NAME "uv") + if(WIN32) + set_target_properties(uv_a PROPERTIES PREFIX "lib") + endif() ++endif() + + if(LIBUV_BUILD_TESTS) + # Small hack: use ${uv_test_sources} now to get the runner skeleton, +@@ -755,10 +756,6 @@ configure_file(libuv-static.pc.in libuv-static.pc @ONLY) + install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR}) + install(FILES LICENSE-extra DESTINATION ${CMAKE_INSTALL_DOCDIR}) +-install(FILES ${PROJECT_BINARY_DIR}/libuv-static.pc +- DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +-install(TARGETS uv_a EXPORT libuvConfig +- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(EXPORT libuvConfig + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libuv + NAMESPACE libuv::) +@@ -775,6 +772,11 @@ if(LIBUV_BUILD_SHARED) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++else() ++install(FILES ${PROJECT_BINARY_DIR}/libuv-static.pc ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) ++install(TARGETS uv_a EXPORT libuvConfig ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + + if(MSVC) diff --git a/vcpkg/ports/libuv/portfile.cmake b/vcpkg/ports/libuv/portfile.cmake new file mode 100644 index 0000000..297d052 --- /dev/null +++ b/vcpkg/ports/libuv/portfile.cmake @@ -0,0 +1,40 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO libuv/libuv + REF "v${VERSION}" + SHA512 cf3ca916fc3a762a194dac86718a5a7fe24f230e34172a48f9b3401ad72fbc1cf21b46ceaba956cdf6783d323e518d40f8632fff965943869819a1c26992a3c1 + HEAD_REF v1.x + PATCHES + fix-build-type.patch + ssize_t.patch +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LIBUV_BUILD_SHARED) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DLIBUV_BUILD_TESTS=OFF + -DLIBUV_BUILD_BENCH=OFF + -DLIBUV_BUILD_SHARED=${LIBUV_BUILD_SHARED} + -DQEMU=OFF + -DASAN=OFF + -DTSAN=OFF +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libuv) +vcpkg_fixup_pkgconfig() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/uv.h" "defined(USING_UV_SHARED)" "1") +else() + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/uv.h" "defined(USING_UV_SHARED)" "0") +endif() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include") + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/libuv/ssize_t.patch b/vcpkg/ports/libuv/ssize_t.patch new file mode 100644 index 0000000..aae8d66 --- /dev/null +++ b/vcpkg/ports/libuv/ssize_t.patch @@ -0,0 +1,14 @@ +diff --git a/include/uv/win.h b/include/uv/win.h
+index 12ac53b4..6e1abd5b 100644
+--- a/include/uv/win.h
++++ b/include/uv/win.h
+@@ -24,7 +24,9 @@
+ #endif
+
+ #if !defined(_SSIZE_T_) && !defined(_SSIZE_T_DEFINED)
++# ifndef ssize_t
+ typedef intptr_t ssize_t;
++# endif
+ # define SSIZE_MAX INTPTR_MAX
+ # define _SSIZE_T_
+ # define _SSIZE_T_DEFINED
diff --git a/vcpkg/ports/libuv/usage b/vcpkg/ports/libuv/usage new file mode 100644 index 0000000..60de86a --- /dev/null +++ b/vcpkg/ports/libuv/usage @@ -0,0 +1,4 @@ +libuv provides CMake targets:
+
+ find_package(libuv CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE $<IF:$<TARGET_EXISTS:libuv::uv_a>,libuv::uv_a,libuv::uv>)
diff --git a/vcpkg/ports/libuv/vcpkg.json b/vcpkg/ports/libuv/vcpkg.json new file mode 100644 index 0000000..ec74ccc --- /dev/null +++ b/vcpkg/ports/libuv/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "libuv", + "version-semver": "1.51.0", + "description": "libuv is a multi-platform support library with a focus on asynchronous I/O.", + "homepage": "https://github.com/libuv/libuv", + "license": "BSD-3-Clause", + "supports": "!uwp", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |