@crossbind/port-curl-ios 2.0.0-beta.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +12 -0
  3. package/crossbind-port-curl.podspec +15 -0
  4. package/crossbind.build.js +1 -0
  5. package/crossbind.config.js +7 -0
  6. package/curl.xcframework/Info.plist +47 -0
  7. package/curl.xcframework/ios-arm64/Headers/curl/curl.h +3347 -0
  8. package/curl.xcframework/ios-arm64/Headers/curl/curlver.h +78 -0
  9. package/curl.xcframework/ios-arm64/Headers/curl/easy.h +123 -0
  10. package/curl.xcframework/ios-arm64/Headers/curl/header.h +74 -0
  11. package/curl.xcframework/ios-arm64/Headers/curl/mprintf.h +85 -0
  12. package/curl.xcframework/ios-arm64/Headers/curl/multi.h +560 -0
  13. package/curl.xcframework/ios-arm64/Headers/curl/options.h +70 -0
  14. package/curl.xcframework/ios-arm64/Headers/curl/stdcheaders.h +35 -0
  15. package/curl.xcframework/ios-arm64/Headers/curl/system.h +399 -0
  16. package/curl.xcframework/ios-arm64/Headers/curl/typecheck-gcc.h +960 -0
  17. package/curl.xcframework/ios-arm64/Headers/curl/urlapi.h +155 -0
  18. package/curl.xcframework/ios-arm64/Headers/curl/websockets.h +98 -0
  19. package/curl.xcframework/ios-arm64/libcurl.a +0 -0
  20. package/curl.xcframework/ios-arm64-simulator/Headers/curl/curl.h +3347 -0
  21. package/curl.xcframework/ios-arm64-simulator/Headers/curl/curlver.h +78 -0
  22. package/curl.xcframework/ios-arm64-simulator/Headers/curl/easy.h +123 -0
  23. package/curl.xcframework/ios-arm64-simulator/Headers/curl/header.h +74 -0
  24. package/curl.xcframework/ios-arm64-simulator/Headers/curl/mprintf.h +85 -0
  25. package/curl.xcframework/ios-arm64-simulator/Headers/curl/multi.h +560 -0
  26. package/curl.xcframework/ios-arm64-simulator/Headers/curl/options.h +70 -0
  27. package/curl.xcframework/ios-arm64-simulator/Headers/curl/stdcheaders.h +35 -0
  28. package/curl.xcframework/ios-arm64-simulator/Headers/curl/system.h +399 -0
  29. package/curl.xcframework/ios-arm64-simulator/Headers/curl/typecheck-gcc.h +960 -0
  30. package/curl.xcframework/ios-arm64-simulator/Headers/curl/urlapi.h +155 -0
  31. package/curl.xcframework/ios-arm64-simulator/Headers/curl/websockets.h +98 -0
  32. package/curl.xcframework/ios-arm64-simulator/libcurl.a +0 -0
  33. package/dist/prebuilt/CMakeLists.txt +57 -0
  34. package/dist/prebuilt/ios-iphoneos-mt-release/crossbind-emccflags.fingerprint +1 -0
  35. package/dist/prebuilt/ios-iphoneos-mt-release/include/curl/curl.h +3347 -0
  36. package/dist/prebuilt/ios-iphoneos-mt-release/include/curl/curlver.h +78 -0
  37. package/dist/prebuilt/ios-iphoneos-mt-release/include/curl/easy.h +123 -0
  38. package/dist/prebuilt/ios-iphoneos-mt-release/include/curl/header.h +74 -0
  39. package/dist/prebuilt/ios-iphoneos-mt-release/include/curl/mprintf.h +85 -0
  40. package/dist/prebuilt/ios-iphoneos-mt-release/include/curl/multi.h +560 -0
  41. package/dist/prebuilt/ios-iphoneos-mt-release/include/curl/options.h +70 -0
  42. package/dist/prebuilt/ios-iphoneos-mt-release/include/curl/stdcheaders.h +35 -0
  43. package/dist/prebuilt/ios-iphoneos-mt-release/include/curl/system.h +399 -0
  44. package/dist/prebuilt/ios-iphoneos-mt-release/include/curl/typecheck-gcc.h +960 -0
  45. package/dist/prebuilt/ios-iphoneos-mt-release/include/curl/urlapi.h +155 -0
  46. package/dist/prebuilt/ios-iphoneos-mt-release/include/curl/websockets.h +98 -0
  47. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/CURLConfig.cmake +220 -0
  48. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/CURLConfigVersion.cmake +71 -0
  49. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/CURLTargets-release.cmake +19 -0
  50. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/CURLTargets.cmake +108 -0
  51. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindBrotli.cmake +96 -0
  52. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindCares.cmake +132 -0
  53. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindGSS.cmake +264 -0
  54. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindGnuTLS.cmake +92 -0
  55. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindLDAP.cmake +115 -0
  56. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindLibbacktrace.cmake +61 -0
  57. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindLibgsasl.cmake +91 -0
  58. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindLibidn2.cmake +92 -0
  59. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindLibpsl.cmake +92 -0
  60. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindLibssh.cmake +118 -0
  61. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindLibssh2.cmake +117 -0
  62. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindLibuv.cmake +102 -0
  63. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindMbedTLS.cmake +137 -0
  64. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindNGHTTP2.cmake +116 -0
  65. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindNGHTTP3.cmake +116 -0
  66. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindNGTCP2.cmake +187 -0
  67. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindNettle.cmake +97 -0
  68. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindQuiche.cmake +80 -0
  69. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindRustls.cmake +116 -0
  70. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindWolfSSL.cmake +135 -0
  71. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/CURL/FindZstd.cmake +144 -0
  72. package/dist/prebuilt/ios-iphoneos-mt-release/lib/libcurl.a +0 -0
  73. package/dist/prebuilt/ios-iphoneos-mt-release/lib/pkgconfig/libcurl.pc +41 -0
  74. package/dist/prebuilt/ios-iphoneos-mt-release/share/man/man1/curl-config.1 +90 -0
  75. package/dist/prebuilt/ios-iphonesimulator-mt-release/crossbind-emccflags.fingerprint +1 -0
  76. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/curl/curl.h +3347 -0
  77. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/curl/curlver.h +78 -0
  78. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/curl/easy.h +123 -0
  79. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/curl/header.h +74 -0
  80. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/curl/mprintf.h +85 -0
  81. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/curl/multi.h +560 -0
  82. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/curl/options.h +70 -0
  83. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/curl/stdcheaders.h +35 -0
  84. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/curl/system.h +399 -0
  85. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/curl/typecheck-gcc.h +960 -0
  86. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/curl/urlapi.h +155 -0
  87. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/curl/websockets.h +98 -0
  88. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/CURLConfig.cmake +220 -0
  89. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/CURLConfigVersion.cmake +71 -0
  90. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/CURLTargets-release.cmake +19 -0
  91. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/CURLTargets.cmake +108 -0
  92. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindBrotli.cmake +96 -0
  93. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindCares.cmake +132 -0
  94. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindGSS.cmake +264 -0
  95. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindGnuTLS.cmake +92 -0
  96. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindLDAP.cmake +115 -0
  97. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindLibbacktrace.cmake +61 -0
  98. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindLibgsasl.cmake +91 -0
  99. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindLibidn2.cmake +92 -0
  100. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindLibpsl.cmake +92 -0
  101. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindLibssh.cmake +118 -0
  102. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindLibssh2.cmake +117 -0
  103. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindLibuv.cmake +102 -0
  104. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindMbedTLS.cmake +137 -0
  105. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindNGHTTP2.cmake +116 -0
  106. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindNGHTTP3.cmake +116 -0
  107. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindNGTCP2.cmake +187 -0
  108. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindNettle.cmake +97 -0
  109. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindQuiche.cmake +80 -0
  110. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindRustls.cmake +116 -0
  111. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindWolfSSL.cmake +135 -0
  112. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/CURL/FindZstd.cmake +144 -0
  113. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/libcurl.a +0 -0
  114. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/pkgconfig/libcurl.pc +41 -0
  115. package/dist/prebuilt/ios-iphonesimulator-mt-release/share/man/man1/curl-config.1 +90 -0
  116. package/package.json +34 -0
@@ -0,0 +1,96 @@
1
+ #***************************************************************************
2
+ # _ _ ____ _
3
+ # Project ___| | | | _ \| |
4
+ # / __| | | | |_) | |
5
+ # | (__| |_| | _ <| |___
6
+ # \___|\___/|_| \_\_____|
7
+ #
8
+ # Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
9
+ #
10
+ # This software is licensed as described in the file COPYING, which
11
+ # you should have received as part of this distribution. The terms
12
+ # are also available at https://curl.se/docs/copyright.html.
13
+ #
14
+ # You may opt to use, copy, modify, merge, publish, distribute and/or sell
15
+ # copies of the Software, and permit persons to whom the Software is
16
+ # furnished to do so, under the terms of the COPYING file.
17
+ #
18
+ # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19
+ # KIND, either express or implied.
20
+ #
21
+ # SPDX-License-Identifier: curl
22
+ #
23
+ ###########################################################################
24
+ # Find the brotli library
25
+ #
26
+ # Input variables:
27
+ #
28
+ # - `BROTLI_INCLUDE_DIR`: Absolute path to brotli include directory.
29
+ # - `BROTLICOMMON_LIBRARY`: Absolute path to `brotlicommon` library.
30
+ # - `BROTLIDEC_LIBRARY`: Absolute path to `brotlidec` library.
31
+ # - `BROTLI_USE_STATIC_LIBS`: Configure for static brotli libraries.
32
+ #
33
+ # Defines:
34
+ #
35
+ # - `BROTLI_FOUND`: System has brotli.
36
+ # - `BROTLI_VERSION`: Version of brotli.
37
+ # - `CURL::brotli`: brotli library target.
38
+
39
+ set(_brotli_pc_requires "libbrotlidec" "libbrotlicommon") # order is significant: brotlidec then brotlicommon
40
+
41
+ if(CURL_USE_PKGCONFIG AND
42
+ NOT DEFINED BROTLI_INCLUDE_DIR AND
43
+ NOT DEFINED BROTLICOMMON_LIBRARY AND
44
+ NOT DEFINED BROTLIDEC_LIBRARY)
45
+ find_package(PkgConfig QUIET)
46
+ pkg_check_modules(_brotli ${_brotli_pc_requires})
47
+ endif()
48
+
49
+ if(_brotli_FOUND)
50
+ set(Brotli_FOUND TRUE)
51
+ set(BROTLI_FOUND TRUE)
52
+ set(BROTLI_VERSION ${_brotli_libbrotlicommon_VERSION})
53
+ if(BROTLI_USE_STATIC_LIBS)
54
+ set(_brotli_CFLAGS "${_brotli_STATIC_CFLAGS}")
55
+ set(_brotli_INCLUDE_DIRS "${_brotli_STATIC_INCLUDE_DIRS}")
56
+ set(_brotli_LIBRARY_DIRS "${_brotli_STATIC_LIBRARY_DIRS}")
57
+ set(_brotli_LIBRARIES "${_brotli_STATIC_LIBRARIES}")
58
+ endif()
59
+ message(STATUS "Found Brotli (via pkg-config): ${_brotli_INCLUDE_DIRS} (found version \"${BROTLI_VERSION}\")")
60
+ else()
61
+ find_path(BROTLI_INCLUDE_DIR "brotli/decode.h")
62
+ if(BROTLI_USE_STATIC_LIBS)
63
+ find_library(BROTLICOMMON_LIBRARY NAMES "brotlicommon-static" "brotlicommon")
64
+ find_library(BROTLIDEC_LIBRARY NAMES "brotlidec-static" "brotlidec")
65
+ else()
66
+ find_library(BROTLICOMMON_LIBRARY NAMES "brotlicommon")
67
+ find_library(BROTLIDEC_LIBRARY NAMES "brotlidec")
68
+ endif()
69
+
70
+ include(FindPackageHandleStandardArgs)
71
+ find_package_handle_standard_args(Brotli
72
+ REQUIRED_VARS
73
+ BROTLI_INCLUDE_DIR
74
+ BROTLIDEC_LIBRARY
75
+ BROTLICOMMON_LIBRARY
76
+ )
77
+
78
+ if(BROTLI_FOUND)
79
+ set(_brotli_INCLUDE_DIRS ${BROTLI_INCLUDE_DIR})
80
+ set(_brotli_LIBRARIES ${BROTLIDEC_LIBRARY} ${BROTLICOMMON_LIBRARY})
81
+ endif()
82
+
83
+ mark_as_advanced(BROTLI_INCLUDE_DIR BROTLIDEC_LIBRARY BROTLICOMMON_LIBRARY)
84
+ endif()
85
+
86
+ if(BROTLI_FOUND)
87
+ if(NOT TARGET CURL::brotli)
88
+ add_library(CURL::brotli INTERFACE IMPORTED)
89
+ set_target_properties(CURL::brotli PROPERTIES
90
+ INTERFACE_LIBCURL_PC_MODULES "${_brotli_pc_requires}"
91
+ INTERFACE_COMPILE_OPTIONS "${_brotli_CFLAGS}"
92
+ INTERFACE_INCLUDE_DIRECTORIES "${_brotli_INCLUDE_DIRS}"
93
+ INTERFACE_LINK_DIRECTORIES "${_brotli_LIBRARY_DIRS}"
94
+ INTERFACE_LINK_LIBRARIES "${_brotli_LIBRARIES}")
95
+ endif()
96
+ endif()
@@ -0,0 +1,132 @@
1
+ #***************************************************************************
2
+ # _ _ ____ _
3
+ # Project ___| | | | _ \| |
4
+ # / __| | | | |_) | |
5
+ # | (__| |_| | _ <| |___
6
+ # \___|\___/|_| \_\_____|
7
+ #
8
+ # Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
9
+ #
10
+ # This software is licensed as described in the file COPYING, which
11
+ # you should have received as part of this distribution. The terms
12
+ # are also available at https://curl.se/docs/copyright.html.
13
+ #
14
+ # You may opt to use, copy, modify, merge, publish, distribute and/or sell
15
+ # copies of the Software, and permit persons to whom the Software is
16
+ # furnished to do so, under the terms of the COPYING file.
17
+ #
18
+ # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19
+ # KIND, either express or implied.
20
+ #
21
+ # SPDX-License-Identifier: curl
22
+ #
23
+ ###########################################################################
24
+ # Find the c-ares library
25
+ #
26
+ # Input variables:
27
+ #
28
+ # - `CARES_INCLUDE_DIR`: Absolute path to c-ares include directory.
29
+ # - `CARES_LIBRARY`: Absolute path to `cares` library.
30
+ # - `CARES_USE_STATIC_LIBS`: Configure for static c-ares libraries.
31
+ #
32
+ # Defines:
33
+ #
34
+ # - `CARES_FOUND`: System has c-ares.
35
+ # - `CARES_VERSION`: Version of c-ares.
36
+ # - `CURL::cares`: c-ares library target.
37
+
38
+ set(_cares_pc_requires "libcares")
39
+
40
+ if(NOT DEFINED CARES_INCLUDE_DIR AND
41
+ NOT DEFINED CARES_LIBRARY)
42
+ if(CURL_USE_PKGCONFIG)
43
+ find_package(PkgConfig QUIET)
44
+ pkg_check_modules(_cares ${_cares_pc_requires})
45
+ endif()
46
+ if(NOT _cares_FOUND AND CURL_USE_CMAKECONFIG)
47
+ find_package(c-ares CONFIG QUIET)
48
+ endif()
49
+ endif()
50
+
51
+ if(_cares_FOUND)
52
+ set(Cares_FOUND TRUE)
53
+ set(CARES_FOUND TRUE)
54
+ set(CARES_VERSION ${_cares_VERSION})
55
+ if(CARES_USE_STATIC_LIBS)
56
+ set(_cares_CFLAGS "${_cares_STATIC_CFLAGS}")
57
+ set(_cares_INCLUDE_DIRS "${_cares_STATIC_INCLUDE_DIRS}")
58
+ set(_cares_LIBRARY_DIRS "${_cares_STATIC_LIBRARY_DIRS}")
59
+ set(_cares_LIBRARIES "${_cares_STATIC_LIBRARIES}")
60
+ endif()
61
+ message(STATUS "Found Cares (via pkg-config): ${_cares_INCLUDE_DIRS} (found version \"${CARES_VERSION}\")")
62
+ elseif(c-ares_CONFIG)
63
+ set(Cares_FOUND TRUE)
64
+ set(CARES_FOUND TRUE)
65
+ set(CARES_VERSION ${c-ares_VERSION})
66
+ if(CARES_USE_STATIC_LIBS)
67
+ set(_cares_LIBRARIES c-ares::cares_static)
68
+ else()
69
+ set(_cares_LIBRARIES c-ares::cares)
70
+ endif()
71
+ message(STATUS "Found Cares (via CMake Config): ${c-ares_CONFIG} (found version \"${CARES_VERSION}\")")
72
+ else()
73
+ find_path(CARES_INCLUDE_DIR NAMES "ares.h")
74
+ if(CARES_USE_STATIC_LIBS)
75
+ set(_cares_CFLAGS "-DCARES_STATICLIB")
76
+ find_library(CARES_LIBRARY NAMES ${CARES_NAMES} "cares_static" "cares")
77
+ else()
78
+ find_library(CARES_LIBRARY NAMES ${CARES_NAMES} "cares")
79
+ endif()
80
+
81
+ unset(CARES_VERSION CACHE)
82
+ if(CARES_INCLUDE_DIR AND EXISTS "${CARES_INCLUDE_DIR}/ares_version.h")
83
+ set(_version_regex1 "#[\t ]*define[\t ]+ARES_VERSION_MAJOR[\t ]+([0-9]+).*")
84
+ set(_version_regex2 "#[\t ]*define[\t ]+ARES_VERSION_MINOR[\t ]+([0-9]+).*")
85
+ set(_version_regex3 "#[\t ]*define[\t ]+ARES_VERSION_PATCH[\t ]+([0-9]+).*")
86
+ file(STRINGS "${CARES_INCLUDE_DIR}/ares_version.h" _version_str1 REGEX "${_version_regex1}")
87
+ file(STRINGS "${CARES_INCLUDE_DIR}/ares_version.h" _version_str2 REGEX "${_version_regex2}")
88
+ file(STRINGS "${CARES_INCLUDE_DIR}/ares_version.h" _version_str3 REGEX "${_version_regex3}")
89
+ string(REGEX REPLACE "${_version_regex1}" "\\1" _version_str1 "${_version_str1}")
90
+ string(REGEX REPLACE "${_version_regex2}" "\\1" _version_str2 "${_version_str2}")
91
+ string(REGEX REPLACE "${_version_regex3}" "\\1" _version_str3 "${_version_str3}")
92
+ set(CARES_VERSION "${_version_str1}.${_version_str2}.${_version_str3}")
93
+ unset(_version_regex1)
94
+ unset(_version_regex2)
95
+ unset(_version_regex3)
96
+ unset(_version_str1)
97
+ unset(_version_str2)
98
+ unset(_version_str3)
99
+ endif()
100
+
101
+ include(FindPackageHandleStandardArgs)
102
+ find_package_handle_standard_args(Cares
103
+ REQUIRED_VARS
104
+ CARES_INCLUDE_DIR
105
+ CARES_LIBRARY
106
+ VERSION_VAR
107
+ CARES_VERSION
108
+ )
109
+
110
+ if(CARES_FOUND)
111
+ set(_cares_INCLUDE_DIRS ${CARES_INCLUDE_DIR})
112
+ set(_cares_LIBRARIES ${CARES_LIBRARY})
113
+ endif()
114
+
115
+ mark_as_advanced(CARES_INCLUDE_DIR CARES_LIBRARY)
116
+ endif()
117
+
118
+ if(CARES_FOUND)
119
+ if(WIN32)
120
+ list(APPEND _cares_LIBRARIES "iphlpapi") # for if_indextoname and others
121
+ endif()
122
+
123
+ if(NOT TARGET CURL::cares)
124
+ add_library(CURL::cares INTERFACE IMPORTED)
125
+ set_target_properties(CURL::cares PROPERTIES
126
+ INTERFACE_LIBCURL_PC_MODULES "${_cares_pc_requires}"
127
+ INTERFACE_COMPILE_OPTIONS "${_cares_CFLAGS}"
128
+ INTERFACE_INCLUDE_DIRECTORIES "${_cares_INCLUDE_DIRS}"
129
+ INTERFACE_LINK_DIRECTORIES "${_cares_LIBRARY_DIRS}"
130
+ INTERFACE_LINK_LIBRARIES "${_cares_LIBRARIES}")
131
+ endif()
132
+ endif()
@@ -0,0 +1,264 @@
1
+ #***************************************************************************
2
+ # _ _ ____ _
3
+ # Project ___| | | | _ \| |
4
+ # / __| | | | |_) | |
5
+ # | (__| |_| | _ <| |___
6
+ # \___|\___/|_| \_\_____|
7
+ #
8
+ # Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
9
+ #
10
+ # This software is licensed as described in the file COPYING, which
11
+ # you should have received as part of this distribution. The terms
12
+ # are also available at https://curl.se/docs/copyright.html.
13
+ #
14
+ # You may opt to use, copy, modify, merge, publish, distribute and/or sell
15
+ # copies of the Software, and permit persons to whom the Software is
16
+ # furnished to do so, under the terms of the COPYING file.
17
+ #
18
+ # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19
+ # KIND, either express or implied.
20
+ #
21
+ # SPDX-License-Identifier: curl
22
+ #
23
+ ###########################################################################
24
+ # Find the GSS Kerberos library
25
+ #
26
+ # Input variables:
27
+ #
28
+ # - `GSS_ROOT_DIR`: Absolute path to the root installation of GSS. (also supported as environment)
29
+ #
30
+ # Defines:
31
+ #
32
+ # - `GSS_FOUND`: System has GSS.
33
+ # - `GSS_VERSION`: Version of GSS.
34
+ # - `CURL::gss`: GSS library target.
35
+ # - `INTERFACE_CURL_GSS_FLAVOR`: Custom property. "GNU" or "MIT" if detected.
36
+
37
+ set(_gnu_modname "gss")
38
+ set(_mit_modname "mit-krb5-gssapi")
39
+
40
+ include(CheckIncludeFile)
41
+ include(CheckIncludeFiles)
42
+ include(CheckTypeSize)
43
+
44
+ set(_gss_root_hints "${GSS_ROOT_DIR}" "$ENV{GSS_ROOT_DIR}")
45
+
46
+ set(_gss_CFLAGS "")
47
+ set(_gss_LIBRARY_DIRS "")
48
+
49
+ # Try to find library using system pkg-config if user did not specify root dir
50
+ if(NOT GSS_ROOT_DIR AND NOT "$ENV{GSS_ROOT_DIR}")
51
+ if(CURL_USE_PKGCONFIG)
52
+ find_package(PkgConfig QUIET)
53
+ pkg_search_module(_gss ${_mit_modname} ${_gnu_modname})
54
+ list(APPEND _gss_root_hints "${_gss_PREFIX}")
55
+ set(_gss_version "${_gss_VERSION}")
56
+ endif()
57
+ if(WIN32)
58
+ list(APPEND _gss_root_hints "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MIT\\Kerberos;InstallDir]")
59
+ endif()
60
+ endif()
61
+
62
+ if(NOT _gss_FOUND) # Not found by pkg-config. Let us take more traditional approach.
63
+ find_file(_gss_configure_script NAMES "krb5-config" PATH_SUFFIXES "bin" HINTS ${_gss_root_hints}
64
+ NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH)
65
+ # If not found in user-supplied directories, maybe system knows better
66
+ find_file(_gss_configure_script NAMES "krb5-config" PATH_SUFFIXES "bin")
67
+
68
+ if(_gss_configure_script)
69
+
70
+ set(_gss_INCLUDE_DIRS "")
71
+ set(_gss_LIBRARIES "")
72
+
73
+ execute_process(COMMAND ${_gss_configure_script} "--cflags" "gssapi"
74
+ OUTPUT_VARIABLE _gss_cflags_raw
75
+ RESULT_VARIABLE _gss_configure_failed
76
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
77
+ message(STATUS "FindGSS krb5-config --cflags: ${_gss_cflags_raw}")
78
+
79
+ if(NOT _gss_configure_failed) # 0 means success
80
+ # Should also work in an odd case when multiple directories are given.
81
+ string(STRIP "${_gss_cflags_raw}" _gss_cflags_raw)
82
+ string(REGEX REPLACE " +-(I)" ";-\\1" _gss_cflags_raw "${_gss_cflags_raw}")
83
+ string(REGEX REPLACE " +-([^I][^ \\t;]*)" ";-\\1" _gss_cflags_raw "${_gss_cflags_raw}")
84
+
85
+ foreach(_flag IN LISTS _gss_cflags_raw)
86
+ if(_flag MATCHES "^-I")
87
+ string(REGEX REPLACE "^-I" "" _flag "${_flag}")
88
+ list(APPEND _gss_INCLUDE_DIRS "${_flag}")
89
+ else()
90
+ list(APPEND _gss_CFLAGS "${_flag}")
91
+ endif()
92
+ endforeach()
93
+ endif()
94
+
95
+ execute_process(COMMAND ${_gss_configure_script} "--libs" "gssapi"
96
+ OUTPUT_VARIABLE _gss_lib_flags
97
+ RESULT_VARIABLE _gss_configure_failed
98
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
99
+ message(STATUS "FindGSS krb5-config --libs: ${_gss_lib_flags}")
100
+
101
+ if(NOT _gss_configure_failed) # 0 means success
102
+ # This script gives us libraries and link directories.
103
+ string(STRIP "${_gss_lib_flags}" _gss_lib_flags)
104
+ string(REGEX REPLACE " +-(L|l)" ";-\\1" _gss_lib_flags "${_gss_lib_flags}")
105
+ string(REGEX REPLACE " +-([^Ll][^ \\t;]*)" ";-\\1" _gss_lib_flags "${_gss_lib_flags}")
106
+
107
+ foreach(_flag IN LISTS _gss_lib_flags)
108
+ if(_flag MATCHES "^-l")
109
+ string(REGEX REPLACE "^-l" "" _flag "${_flag}")
110
+ list(APPEND _gss_LIBRARIES "${_flag}")
111
+ elseif(_flag MATCHES "^-L")
112
+ string(REGEX REPLACE "^-L" "" _flag "${_flag}")
113
+ list(APPEND _gss_LIBRARY_DIRS "${_flag}")
114
+ endif()
115
+ endforeach()
116
+ endif()
117
+
118
+ execute_process(COMMAND ${_gss_configure_script} "--version"
119
+ OUTPUT_VARIABLE _gss_version
120
+ RESULT_VARIABLE _gss_configure_failed
121
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
122
+
123
+ # Older versions may not have the "--version" parameter. In this case we do not care.
124
+ if(_gss_configure_failed)
125
+ set(_gss_version 0)
126
+ else()
127
+ # Strip prefix string to leave the version number only
128
+ string(REPLACE "Kerberos 5 release " "" _gss_version "${_gss_version}")
129
+ endif()
130
+
131
+ execute_process(COMMAND ${_gss_configure_script} "--vendor"
132
+ OUTPUT_VARIABLE _gss_vendor
133
+ RESULT_VARIABLE _gss_configure_failed
134
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
135
+
136
+ # Older versions may not have the "--vendor" parameter. In this case we do not care.
137
+ if(NOT _gss_configure_failed AND NOT _gss_vendor MATCHES "Heimdal|heimdal")
138
+ set(_gss_flavor "MIT") # assume a default, should not really matter
139
+ endif()
140
+
141
+ else() # Either there is no config script or we are on a platform that does not provide one (Windows?)
142
+
143
+ find_path(_gss_INCLUDE_DIRS NAMES "gssapi/gssapi.h" HINTS ${_gss_root_hints} PATH_SUFFIXES "include" "inc")
144
+
145
+ if(_gss_INCLUDE_DIRS) # We have found something
146
+ set(_gss_libdir_suffixes "")
147
+
148
+ cmake_push_check_state()
149
+ list(APPEND CMAKE_REQUIRED_INCLUDES "${_gss_INCLUDE_DIRS}")
150
+ check_include_files("gssapi/gssapi_generic.h;gssapi/gssapi_krb5.h" _gss_have_mit_headers)
151
+ cmake_pop_check_state()
152
+
153
+ if(_gss_have_mit_headers)
154
+ set(_gss_flavor "MIT")
155
+ if(WIN32)
156
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
157
+ list(APPEND _gss_libdir_suffixes "lib/AMD64")
158
+ set(_gss_libname "gssapi64")
159
+ else()
160
+ list(APPEND _gss_libdir_suffixes "lib/i386")
161
+ set(_gss_libname "gssapi32")
162
+ endif()
163
+ else()
164
+ list(APPEND _gss_libdir_suffixes "lib" "lib64") # those suffixes are not checked for HINTS
165
+ set(_gss_libname "gssapi_krb5")
166
+ endif()
167
+ endif()
168
+ else()
169
+ find_path(_gss_INCLUDE_DIRS NAMES "gss.h" HINTS ${_gss_root_hints} PATH_SUFFIXES "include")
170
+
171
+ if(_gss_INCLUDE_DIRS)
172
+ set(_gss_flavor "GNU")
173
+ set(_gss_pc_requires ${_gnu_modname})
174
+ set(_gss_libname "gss")
175
+ endif()
176
+ endif()
177
+
178
+ # If we have headers, look up libraries
179
+ if(_gss_flavor)
180
+ set(_gss_libdir_hints ${_gss_root_hints})
181
+ if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.20)
182
+ cmake_path(GET _gss_INCLUDE_DIRS PARENT_PATH _gss_calculated_potential_root)
183
+ else()
184
+ get_filename_component(_gss_calculated_potential_root "${_gss_INCLUDE_DIRS}" DIRECTORY)
185
+ endif()
186
+ list(APPEND _gss_libdir_hints ${_gss_calculated_potential_root})
187
+
188
+ find_library(_gss_LIBRARIES NAMES ${_gss_libname} HINTS ${_gss_libdir_hints} PATH_SUFFIXES ${_gss_libdir_suffixes})
189
+ endif()
190
+ endif()
191
+ if(NOT _gss_flavor)
192
+ message(FATAL_ERROR "GNU or MIT GSS is required")
193
+ endif()
194
+ else()
195
+ if(_gss_MODULE_NAME STREQUAL _gnu_modname)
196
+ set(_gss_flavor "GNU")
197
+ set(_gss_pc_requires ${_gnu_modname})
198
+ elseif(_gss_MODULE_NAME STREQUAL _mit_modname)
199
+ set(_gss_flavor "MIT")
200
+ set(_gss_pc_requires ${_mit_modname})
201
+ else()
202
+ message(FATAL_ERROR "GNU or MIT GSS is required")
203
+ endif()
204
+ message(STATUS "Found GSS/${_gss_flavor} (via pkg-config): ${_gss_INCLUDE_DIRS} (found version \"${_gss_version}\")")
205
+ endif()
206
+
207
+ set(GSS_VERSION ${_gss_version})
208
+
209
+ if(NOT GSS_VERSION)
210
+ if(_gss_flavor STREQUAL "MIT" AND WIN32)
211
+ if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.24)
212
+ cmake_host_system_information(RESULT _mit_version QUERY WINDOWS_REGISTRY
213
+ "HKLM/SOFTWARE/MIT/Kerberos/SDK/CurrentVersion" VALUE "VersionString")
214
+ else()
215
+ get_filename_component(_mit_version
216
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MIT\\Kerberos\\SDK\\CurrentVersion;VersionString]" NAME CACHE)
217
+ endif()
218
+ set(GSS_VERSION "${_mit_version}")
219
+ elseif(_gss_flavor STREQUAL "GNU")
220
+ if(_gss_INCLUDE_DIRS AND EXISTS "${_gss_INCLUDE_DIRS}/gss.h")
221
+ set(_version_regex "#[\t ]*define[\t ]+GSS_VERSION[\t ]+\"([^\"]*)\"")
222
+ file(STRINGS "${_gss_INCLUDE_DIRS}/gss.h" _version_str REGEX "${_version_regex}")
223
+ string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
224
+ set(GSS_VERSION "${_version_str}")
225
+ unset(_version_regex)
226
+ unset(_version_str)
227
+ endif()
228
+ endif()
229
+ endif()
230
+
231
+ include(FindPackageHandleStandardArgs)
232
+ find_package_handle_standard_args(GSS
233
+ REQUIRED_VARS
234
+ _gss_flavor
235
+ _gss_LIBRARIES
236
+ VERSION_VAR
237
+ GSS_VERSION
238
+ FAIL_MESSAGE
239
+ "Could NOT find GSS, try to set the absolute path to GSS installation root directory in the environment variable GSS_ROOT_DIR"
240
+ )
241
+
242
+ mark_as_advanced(
243
+ _gss_CFLAGS
244
+ _gss_FOUND
245
+ _gss_INCLUDE_DIRS
246
+ _gss_LIBRARIES
247
+ _gss_LIBRARY_DIRS
248
+ _gss_MODULE_NAME
249
+ _gss_PREFIX
250
+ _gss_version
251
+ )
252
+
253
+ if(GSS_FOUND)
254
+ if(NOT TARGET CURL::gss)
255
+ add_library(CURL::gss INTERFACE IMPORTED)
256
+ set_target_properties(CURL::gss PROPERTIES
257
+ INTERFACE_CURL_GSS_FLAVOR "${_gss_flavor}"
258
+ INTERFACE_LIBCURL_PC_MODULES "${_gss_pc_requires}"
259
+ INTERFACE_COMPILE_OPTIONS "${_gss_CFLAGS}"
260
+ INTERFACE_INCLUDE_DIRECTORIES "${_gss_INCLUDE_DIRS}"
261
+ INTERFACE_LINK_DIRECTORIES "${_gss_LIBRARY_DIRS}"
262
+ INTERFACE_LINK_LIBRARIES "${_gss_LIBRARIES}")
263
+ endif()
264
+ endif()
@@ -0,0 +1,92 @@
1
+ #***************************************************************************
2
+ # _ _ ____ _
3
+ # Project ___| | | | _ \| |
4
+ # / __| | | | |_) | |
5
+ # | (__| |_| | _ <| |___
6
+ # \___|\___/|_| \_\_____|
7
+ #
8
+ # Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
9
+ #
10
+ # This software is licensed as described in the file COPYING, which
11
+ # you should have received as part of this distribution. The terms
12
+ # are also available at https://curl.se/docs/copyright.html.
13
+ #
14
+ # You may opt to use, copy, modify, merge, publish, distribute and/or sell
15
+ # copies of the Software, and permit persons to whom the Software is
16
+ # furnished to do so, under the terms of the COPYING file.
17
+ #
18
+ # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19
+ # KIND, either express or implied.
20
+ #
21
+ # SPDX-License-Identifier: curl
22
+ #
23
+ ###########################################################################
24
+ # Find the GnuTLS library
25
+ #
26
+ # Input variables:
27
+ #
28
+ # - `GNUTLS_INCLUDE_DIR`: Absolute path to GnuTLS include directory.
29
+ # - `GNUTLS_LIBRARY`: Absolute path to `gnutls` library.
30
+ #
31
+ # Defines:
32
+ #
33
+ # - `GNUTLS_FOUND`: System has GnuTLS.
34
+ # - `GNUTLS_VERSION`: Version of GnuTLS.
35
+ # - `CURL::gnutls`: GnuTLS library target.
36
+
37
+ set(_gnutls_pc_requires "gnutls")
38
+
39
+ if(CURL_USE_PKGCONFIG AND
40
+ NOT DEFINED GNUTLS_INCLUDE_DIR AND
41
+ NOT DEFINED GNUTLS_LIBRARY)
42
+ find_package(PkgConfig QUIET)
43
+ pkg_check_modules(_gnutls ${_gnutls_pc_requires})
44
+ endif()
45
+
46
+ if(_gnutls_FOUND)
47
+ set(GnuTLS_FOUND TRUE)
48
+ set(GNUTLS_FOUND TRUE)
49
+ set(GNUTLS_VERSION ${_gnutls_VERSION})
50
+ message(STATUS "Found GnuTLS (via pkg-config): ${_gnutls_INCLUDE_DIRS} (found version \"${GNUTLS_VERSION}\")")
51
+ else()
52
+ find_path(GNUTLS_INCLUDE_DIR NAMES "gnutls/gnutls.h")
53
+ find_library(GNUTLS_LIBRARY NAMES "gnutls" "libgnutls")
54
+
55
+ unset(GNUTLS_VERSION CACHE)
56
+ if(GNUTLS_INCLUDE_DIR AND EXISTS "${GNUTLS_INCLUDE_DIR}/gnutls/gnutls.h")
57
+ set(_version_regex "#[\t ]*define[\t ]+GNUTLS_VERSION[\t ]+\"([^\"]*)\"")
58
+ file(STRINGS "${GNUTLS_INCLUDE_DIR}/gnutls/gnutls.h" _version_str REGEX "${_version_regex}")
59
+ string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
60
+ set(GNUTLS_VERSION "${_version_str}")
61
+ unset(_version_regex)
62
+ unset(_version_str)
63
+ endif()
64
+
65
+ include(FindPackageHandleStandardArgs)
66
+ find_package_handle_standard_args(GnuTLS
67
+ REQUIRED_VARS
68
+ GNUTLS_INCLUDE_DIR
69
+ GNUTLS_LIBRARY
70
+ VERSION_VAR
71
+ GNUTLS_VERSION
72
+ )
73
+
74
+ if(GNUTLS_FOUND)
75
+ set(_gnutls_INCLUDE_DIRS ${GNUTLS_INCLUDE_DIR})
76
+ set(_gnutls_LIBRARIES ${GNUTLS_LIBRARY})
77
+ endif()
78
+
79
+ mark_as_advanced(GNUTLS_INCLUDE_DIR GNUTLS_LIBRARY)
80
+ endif()
81
+
82
+ if(GNUTLS_FOUND)
83
+ if(NOT TARGET CURL::gnutls)
84
+ add_library(CURL::gnutls INTERFACE IMPORTED)
85
+ set_target_properties(CURL::gnutls PROPERTIES
86
+ INTERFACE_LIBCURL_PC_MODULES "${_gnutls_pc_requires}"
87
+ INTERFACE_COMPILE_OPTIONS "${_gnutls_CFLAGS}"
88
+ INTERFACE_INCLUDE_DIRECTORIES "${_gnutls_INCLUDE_DIRS}"
89
+ INTERFACE_LINK_DIRECTORIES "${_gnutls_LIBRARY_DIRS}"
90
+ INTERFACE_LINK_LIBRARIES "${_gnutls_LIBRARIES}")
91
+ endif()
92
+ endif()