aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/getdns
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/getdns')
-rw-r--r--vcpkg/ports/getdns/disable-docs.patch40
-rw-r--r--vcpkg/ports/getdns/fix-include.patch30
-rw-r--r--vcpkg/ports/getdns/fix-libuv-deps.patch33
-rw-r--r--vcpkg/ports/getdns/portfile.cmake52
-rw-r--r--vcpkg/ports/getdns/vcpkg.json30
5 files changed, 185 insertions, 0 deletions
diff --git a/vcpkg/ports/getdns/disable-docs.patch b/vcpkg/ports/getdns/disable-docs.patch
new file mode 100644
index 0000000..3d0670e
--- /dev/null
+++ b/vcpkg/ports/getdns/disable-docs.patch
@@ -0,0 +1,40 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9170be7..def3758 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1036,9 +1036,9 @@ configure_file(src/version.c.in version.c)
+
+ set(version ${PACKAGE_VERSION})
+ set(date ${API_VERSION})
+-file(GLOB mans doc/*.3.in)
+-file(MAKE_DIRECTORY man3)
+-foreach (man ${mans})
++#file(GLOB mans doc/*.3.in)
++#file(MAKE_DIRECTORY man3)
++if (FALSE)
+ get_filename_component(out ${man} NAME_WE)
+ configure_file(${man} man3/${out}.3 @ONLY)
+
+@@ -1058,7 +1058,7 @@ foreach (man ${mans})
+ configure_file(${man} man3/${alt}.3 @ONLY)
+ endif ()
+ endforeach()
+-endforeach()
++endif()
+
+ set(prefix ${CMAKE_INSTALL_PREFIX})
+ cmake_path(APPEND libdir_for_pc_file "\${prefix}" "${CMAKE_INSTALL_LIBDIR}")
+@@ -1098,10 +1098,10 @@ if (BUILD_GETDNS_SERVER_MON)
+ endif ()
+
+ install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/getdns DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+-install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man3 DESTINATION ${CMAKE_INSTALL_MANDIR})
++#install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man3 DESTINATION ${CMAKE_INSTALL_MANDIR})
+
+-install(FILES AUTHORS ChangeLog COPYING LICENSE NEWS README.md DESTINATION ${CMAKE_INSTALL_DOCDIR})
+-install(FILES spec/index.html DESTINATION ${CMAKE_INSTALL_DOCDIR}/spec)
++#install(FILES AUTHORS ChangeLog COPYING LICENSE NEWS README.md DESTINATION ${CMAKE_INSTALL_DOCDIR})
++#install(FILES spec/index.html DESTINATION ${CMAKE_INSTALL_DOCDIR}/spec)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/getdns.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+
+ install(CODE "message(\"\
diff --git a/vcpkg/ports/getdns/fix-include.patch b/vcpkg/ports/getdns/fix-include.patch
new file mode 100644
index 0000000..27ea5fa
--- /dev/null
+++ b/vcpkg/ports/getdns/fix-include.patch
@@ -0,0 +1,30 @@
+diff --git a/src/gldns/parse.c b/src/gldns/parse.c
+index 367fa80..79fa527 100644
+--- a/src/gldns/parse.c
++++ b/src/gldns/parse.c
+@@ -13,7 +13,7 @@
+ #include "gldns/gbuffer.h"
+
+ #include <limits.h>
+-#include <strings.h>
++#include <stdlib.h>
+
+ gldns_lookup_table gldns_directive_types[] = {
+ { GLDNS_DIR_TTL, "$TTL" },
+diff --git a/src/gldns/parseutil.c b/src/gldns/parseutil.c
+index 293496a..bcd8e6f 100644
+--- a/src/gldns/parseutil.c
++++ b/src/gldns/parseutil.c
+@@ -14,8 +14,12 @@
+
+ #include "config.h"
+ #include "gldns/parseutil.h"
++#ifdef HAVE_SYS_TIME_H
+ #include <sys/time.h>
++#endif
++#ifdef HAVE_TIME_H
+ #include <time.h>
++#endif
+ #include <ctype.h>
+
+ gldns_lookup_table *
diff --git a/vcpkg/ports/getdns/fix-libuv-deps.patch b/vcpkg/ports/getdns/fix-libuv-deps.patch
new file mode 100644
index 0000000..71720ce
--- /dev/null
+++ b/vcpkg/ports/getdns/fix-libuv-deps.patch
@@ -0,0 +1,33 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c5b711e..6bd9ee2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -872,7 +872,7 @@ endif ()
+
+ # libuv extension.
+ if (USE_LIBUV)
+- find_package(Libuv)
++ find_package(libuv CONFIG REQUIRED)
+ if (Libuv_FOUND)
+ # Check for new-style callbacks.
+ try_compile(HAVE_NEW_UV_TIMER_CB
+@@ -894,8 +894,7 @@ if (USE_LIBUV)
+ set_property(TARGET uv_objects PROPERTY C_STANDARD 11)
+ if (ENABLE_STATIC)
+ add_library(getdns_ext_uv STATIC $<TARGET_OBJECTS:uv_objects>)
+- target_include_directories(getdns_ext_uv PRIVATE Libuv::Libuv)
+- target_link_libraries(getdns_ext_uv PUBLIC getdns Libuv::Libuv)
++ target_link_libraries(getdns_ext_uv PUBLIC getdns $<IF:$<TARGET_EXISTS:libuv::uv_a>,libuv::uv_a,libuv::uv>)
+ if (Libunbound_FOUND)
+ target_link_libraries(getdns_ext_uv PUBLIC Libunbound::Libunbound)
+ endif ()
+@@ -903,8 +902,7 @@ if (USE_LIBUV)
+ endif ()
+ if (ENABLE_SHARED)
+ add_library(getdns_ext_uv_shared SHARED $<TARGET_OBJECTS:uv_objects>)
+- target_include_directories(getdns_ext_uv_shared PRIVATE Libuv::Libuv)
+- target_link_libraries(getdns_ext_uv_shared PUBLIC getdns_shared Libuv::Libuv)
++ target_link_libraries(getdns_ext_uv_shared PUBLIC getdns $<IF:$<TARGET_EXISTS:libuv::uv_a>,libuv::uv_a,libuv::uv>)
+ if (Libunbound_FOUND)
+ target_link_libraries(getdns_ext_uv_shared PUBLIC Libunbound::Libunbound)
+ endif ()
diff --git a/vcpkg/ports/getdns/portfile.cmake b/vcpkg/ports/getdns/portfile.cmake
new file mode 100644
index 0000000..64eccdf
--- /dev/null
+++ b/vcpkg/ports/getdns/portfile.cmake
@@ -0,0 +1,52 @@
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" GETDNS_ENABLE_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" GETDNS_ENABLE_SHARED)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://getdnsapi.net/dist/getdns-${VERSION}.tar.gz"
+ FILENAME "getdns-${VERSION}.tar.gz"
+ SHA512 d5725a24378b6fe0018daefdaba5565d2d4d51109ef66609fc34270a0a69accb95f5f895d0cdfc5caca51d2ec586db126f367439f05aed12507395af26739e2f
+)
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+ PATCHES
+ disable-docs.patch
+ fix-include.patch
+ fix-libuv-deps.patch
+)
+
+if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
+ set(VCPKG_CXX_FLAGS "/D_CRT_DECLARE_NONSTDC_NAMES ${VCPKG_CXX_FLAGS}")
+ set(VCPKG_C_FLAGS "/D_CRT_DECLARE_NONSTDC_NAMES ${VCPKG_C_FLAGS}")
+endif()
+
+vcpkg_check_features(
+ OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ libevent BUILD_LIBEVENT2
+ libuv BUILD_LIBUV
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ DISABLE_PARALLEL_CONFIGURE
+ OPTIONS
+ -DBUILD_GETDNS_QUERY=OFF
+ -DBUILD_GETDNS_SERVER_MON=OFF
+ -DENABLE_STATIC=${GETDNS_ENABLE_STATIC}
+ -DENABLE_SHARED=${GETDNS_ENABLE_SHARED}
+ ${FEATURE_OPTIONS}
+ -DBUILD_TESTING=OFF
+ -DENABLE_STUB_ONLY=ON #if setting ON, it will require libunbound to build on Unix platform.
+)
+vcpkg_cmake_install()
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+vcpkg_fixup_pkgconfig()
+
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
diff --git a/vcpkg/ports/getdns/vcpkg.json b/vcpkg/ports/getdns/vcpkg.json
new file mode 100644
index 0000000..92ee276
--- /dev/null
+++ b/vcpkg/ports/getdns/vcpkg.json
@@ -0,0 +1,30 @@
+{
+ "name": "getdns",
+ "version": "1.7.3",
+ "description": "GetDNS is a modern asynchronous DNS API",
+ "homepage": "https://getdnsapi.net/",
+ "license": "BSD-3-Clause",
+ "supports": "!uwp",
+ "dependencies": [
+ "libidn2",
+ "openssl",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ }
+ ],
+ "features": {
+ "libevent": {
+ "description": "libevent event loop integration",
+ "dependencies": [
+ "libevent"
+ ]
+ },
+ "libuv": {
+ "description": "libuv event loop integration",
+ "dependencies": [
+ "libuv"
+ ]
+ }
+ }
+}