@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,102 @@
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 libuv library
25
+ #
26
+ # Input variables:
27
+ #
28
+ # - `LIBUV_INCLUDE_DIR`: Absolute path to libuv include directory.
29
+ # - `LIBUV_LIBRARY`: Absolute path to `libuv` library.
30
+ #
31
+ # Defines:
32
+ #
33
+ # - `LIBUV_FOUND`: System has libuv.
34
+ # - `LIBUV_VERSION`: Version of libuv.
35
+ # - `CURL::libuv`: libuv library target.
36
+
37
+ set(_libuv_pc_requires "libuv")
38
+
39
+ if(CURL_USE_PKGCONFIG AND
40
+ NOT DEFINED LIBUV_INCLUDE_DIR AND
41
+ NOT DEFINED LIBUV_LIBRARY)
42
+ find_package(PkgConfig QUIET)
43
+ pkg_check_modules(_libuv ${_libuv_pc_requires})
44
+ endif()
45
+
46
+ if(_libuv_FOUND)
47
+ set(Libuv_FOUND TRUE)
48
+ set(LIBUV_FOUND TRUE)
49
+ set(LIBUV_VERSION ${_libuv_VERSION})
50
+ message(STATUS "Found Libuv (via pkg-config): ${_libuv_INCLUDE_DIRS} (found version \"${LIBUV_VERSION}\")")
51
+ else()
52
+ find_path(LIBUV_INCLUDE_DIR NAMES "uv.h")
53
+ find_library(LIBUV_LIBRARY NAMES "uv" "libuv")
54
+
55
+ unset(LIBUV_VERSION CACHE)
56
+ if(LIBUV_INCLUDE_DIR AND EXISTS "${LIBUV_INCLUDE_DIR}/uv/version.h")
57
+ set(_version_regex1 "#[\t ]*define[\t ]+UV_VERSION_MAJOR[\t ]+([0-9]+).*")
58
+ set(_version_regex2 "#[\t ]*define[\t ]+UV_VERSION_MINOR[\t ]+([0-9]+).*")
59
+ set(_version_regex3 "#[\t ]*define[\t ]+UV_VERSION_PATCH[\t ]+([0-9]+).*")
60
+ file(STRINGS "${LIBUV_INCLUDE_DIR}/uv/version.h" _version_str1 REGEX "${_version_regex1}")
61
+ file(STRINGS "${LIBUV_INCLUDE_DIR}/uv/version.h" _version_str2 REGEX "${_version_regex2}")
62
+ file(STRINGS "${LIBUV_INCLUDE_DIR}/uv/version.h" _version_str3 REGEX "${_version_regex3}")
63
+ string(REGEX REPLACE "${_version_regex1}" "\\1" _version_str1 "${_version_str1}")
64
+ string(REGEX REPLACE "${_version_regex2}" "\\1" _version_str2 "${_version_str2}")
65
+ string(REGEX REPLACE "${_version_regex3}" "\\1" _version_str3 "${_version_str3}")
66
+ set(LIBUV_VERSION "${_version_str1}.${_version_str2}.${_version_str3}")
67
+ unset(_version_regex1)
68
+ unset(_version_regex2)
69
+ unset(_version_regex3)
70
+ unset(_version_str1)
71
+ unset(_version_str2)
72
+ unset(_version_str3)
73
+ endif()
74
+
75
+ include(FindPackageHandleStandardArgs)
76
+ find_package_handle_standard_args(Libuv
77
+ REQUIRED_VARS
78
+ LIBUV_INCLUDE_DIR
79
+ LIBUV_LIBRARY
80
+ VERSION_VAR
81
+ LIBUV_VERSION
82
+ )
83
+
84
+ if(LIBUV_FOUND)
85
+ set(_libuv_INCLUDE_DIRS ${LIBUV_INCLUDE_DIR})
86
+ set(_libuv_LIBRARIES ${LIBUV_LIBRARY})
87
+ endif()
88
+
89
+ mark_as_advanced(LIBUV_INCLUDE_DIR LIBUV_LIBRARY)
90
+ endif()
91
+
92
+ if(LIBUV_FOUND)
93
+ if(NOT TARGET CURL::libuv)
94
+ add_library(CURL::libuv INTERFACE IMPORTED)
95
+ set_target_properties(CURL::libuv PROPERTIES
96
+ INTERFACE_LIBCURL_PC_MODULES "${_libuv_pc_requires}"
97
+ INTERFACE_COMPILE_OPTIONS "${_libuv_CFLAGS}"
98
+ INTERFACE_INCLUDE_DIRECTORIES "${_libuv_INCLUDE_DIRS}"
99
+ INTERFACE_LINK_DIRECTORIES "${_libuv_LIBRARY_DIRS}"
100
+ INTERFACE_LINK_LIBRARIES "${_libuv_LIBRARIES}")
101
+ endif()
102
+ endif()
@@ -0,0 +1,137 @@
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 mbedTLS library
25
+ #
26
+ # Input variables:
27
+ #
28
+ # - `MBEDTLS_INCLUDE_DIR`: Absolute path to mbedTLS include directory.
29
+ # - `MBEDTLS_LIBRARY`: Absolute path to `mbedtls` library.
30
+ # - `MBEDX509_LIBRARY`: Absolute path to `mbedx509` library.
31
+ # - `MBEDCRYPTO_LIBRARY`: Absolute path to `mbedcrypto` library.
32
+ # - `MBEDTLS_USE_STATIC_LIBS`: Configure for static mbedTLS libraries.
33
+ #
34
+ # Defines:
35
+ #
36
+ # - `MBEDTLS_FOUND`: System has mbedTLS.
37
+ # - `MBEDTLS_VERSION`: Version of mbedTLS.
38
+ # - `CURL::mbedtls`: mbedTLS library target.
39
+
40
+ if(DEFINED MBEDTLS_INCLUDE_DIRS AND NOT DEFINED MBEDTLS_INCLUDE_DIR)
41
+ message(WARNING "MBEDTLS_INCLUDE_DIRS is deprecated, use MBEDTLS_INCLUDE_DIR instead.")
42
+ set(MBEDTLS_INCLUDE_DIR "${MBEDTLS_INCLUDE_DIRS}")
43
+ unset(MBEDTLS_INCLUDE_DIRS)
44
+ endif()
45
+
46
+ set(_mbedtls_pc_requires "mbedtls" "mbedx509" "mbedcrypto")
47
+
48
+ if(NOT DEFINED MBEDTLS_INCLUDE_DIR AND
49
+ NOT DEFINED MBEDTLS_LIBRARY AND
50
+ NOT DEFINED MBEDX509_LIBRARY AND
51
+ NOT DEFINED MBEDCRYPTO_LIBRARY)
52
+ if(CURL_USE_PKGCONFIG)
53
+ find_package(PkgConfig QUIET)
54
+ pkg_check_modules(_mbedtls ${_mbedtls_pc_requires})
55
+ endif()
56
+ if(NOT _mbedtls_FOUND AND CURL_USE_CMAKECONFIG)
57
+ find_package(MbedTLS CONFIG QUIET)
58
+ endif()
59
+ endif()
60
+
61
+ if(_mbedtls_FOUND)
62
+ set(MbedTLS_FOUND TRUE)
63
+ set(MBEDTLS_FOUND TRUE)
64
+ set(MBEDTLS_VERSION ${_mbedtls_mbedtls_VERSION})
65
+ if(MBEDTLS_USE_STATIC_LIBS)
66
+ set(_mbedtls_CFLAGS "${_mbedtls_STATIC_CFLAGS}")
67
+ set(_mbedtls_INCLUDE_DIRS "${_mbedtls_STATIC_INCLUDE_DIRS}")
68
+ set(_mbedtls_LIBRARY_DIRS "${_mbedtls_STATIC_LIBRARY_DIRS}")
69
+ set(_mbedtls_LIBRARIES "${_mbedtls_STATIC_LIBRARIES}")
70
+ endif()
71
+ message(STATUS "Found MbedTLS (via pkg-config): ${_mbedtls_INCLUDE_DIRS} (found version \"${MBEDTLS_VERSION}\")")
72
+ elseif(MbedTLS_CONFIG)
73
+ set(MbedTLS_FOUND TRUE)
74
+ set(MBEDTLS_FOUND TRUE)
75
+ set(MBEDTLS_VERSION ${MbedTLS_VERSION})
76
+ if(MBEDTLS_VERSION GREATER_EQUAL 4.0.0)
77
+ set(_mbedtls_LIBRARIES MbedTLS::tfpsacrypto)
78
+ else()
79
+ set(_mbedtls_LIBRARIES MbedTLS::mbedcrypto)
80
+ endif()
81
+ list(APPEND _mbedtls_LIBRARIES MbedTLS::mbedx509 MbedTLS::mbedtls)
82
+ message(STATUS "Found MbedTLS (via CMake Config): ${MbedTLS_CONFIG} (found version \"${MBEDTLS_VERSION}\")")
83
+ else()
84
+ set(_mbedtls_pc_requires "") # Depend on pkg-config only when found via pkg-config
85
+
86
+ find_path(MBEDTLS_INCLUDE_DIR NAMES "mbedtls/ssl.h")
87
+ if(MBEDTLS_USE_STATIC_LIBS)
88
+ find_library(MBEDTLS_LIBRARY NAMES "mbedtls_static" "libmbedtls_static" "mbedtls" "libmbedtls")
89
+ find_library(MBEDX509_LIBRARY NAMES "mbedx509_static" "libmbedx509_static" "mbedx509" "libmbedx509")
90
+ find_library(MBEDCRYPTO_LIBRARY NAMES "mbedcrypto_static" "libmbedcrypto_static" "mbedcrypto" "libmbedcrypto"
91
+ "tfpsacrypto_static" "libtfpsacrypto_static" "tfpsacrypto" "libtfpsacrypto")
92
+ else()
93
+ find_library(MBEDTLS_LIBRARY NAMES "mbedtls" "libmbedtls")
94
+ find_library(MBEDX509_LIBRARY NAMES "mbedx509" "libmbedx509")
95
+ find_library(MBEDCRYPTO_LIBRARY NAMES "mbedcrypto" "libmbedcrypto" "tfpsacrypto" "libtfpsacrypto")
96
+ endif()
97
+
98
+ unset(MBEDTLS_VERSION CACHE)
99
+ if(MBEDTLS_INCLUDE_DIR AND EXISTS "${MBEDTLS_INCLUDE_DIR}/mbedtls/build_info.h")
100
+ set(_version_regex "#[\t ]*define[\t ]+MBEDTLS_VERSION_STRING[\t ]+\"([0-9.]+)\"")
101
+ file(STRINGS "${MBEDTLS_INCLUDE_DIR}/mbedtls/build_info.h" _version_str REGEX "${_version_regex}")
102
+ string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
103
+ set(MBEDTLS_VERSION "${_version_str}")
104
+ unset(_version_regex)
105
+ unset(_version_str)
106
+ endif()
107
+
108
+ include(FindPackageHandleStandardArgs)
109
+ find_package_handle_standard_args(MbedTLS
110
+ REQUIRED_VARS
111
+ MBEDTLS_INCLUDE_DIR
112
+ MBEDTLS_LIBRARY
113
+ MBEDX509_LIBRARY
114
+ MBEDCRYPTO_LIBRARY
115
+ VERSION_VAR
116
+ MBEDTLS_VERSION
117
+ )
118
+
119
+ if(MBEDTLS_FOUND)
120
+ set(_mbedtls_INCLUDE_DIRS ${MBEDTLS_INCLUDE_DIR})
121
+ set(_mbedtls_LIBRARIES ${MBEDTLS_LIBRARY} ${MBEDX509_LIBRARY} ${MBEDCRYPTO_LIBRARY})
122
+ endif()
123
+
124
+ mark_as_advanced(MBEDTLS_INCLUDE_DIR MBEDTLS_LIBRARY MBEDX509_LIBRARY MBEDCRYPTO_LIBRARY)
125
+ endif()
126
+
127
+ if(MBEDTLS_FOUND)
128
+ if(NOT TARGET CURL::mbedtls)
129
+ add_library(CURL::mbedtls INTERFACE IMPORTED)
130
+ set_target_properties(CURL::mbedtls PROPERTIES
131
+ INTERFACE_LIBCURL_PC_MODULES "${_mbedtls_pc_requires}"
132
+ INTERFACE_COMPILE_OPTIONS "${_mbedtls_CFLAGS}"
133
+ INTERFACE_INCLUDE_DIRECTORIES "${_mbedtls_INCLUDE_DIRS}"
134
+ INTERFACE_LINK_DIRECTORIES "${_mbedtls_LIBRARY_DIRS}"
135
+ INTERFACE_LINK_LIBRARIES "${_mbedtls_LIBRARIES}")
136
+ endif()
137
+ endif()
@@ -0,0 +1,116 @@
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 nghttp2 library
25
+ #
26
+ # Input variables:
27
+ #
28
+ # - `NGHTTP2_INCLUDE_DIR`: Absolute path to nghttp2 include directory.
29
+ # - `NGHTTP2_LIBRARY`: Absolute path to `nghttp2` library.
30
+ # - `NGHTTP2_USE_STATIC_LIBS`: Configure for static nghttp2 libraries.
31
+ #
32
+ # Defines:
33
+ #
34
+ # - `NGHTTP2_FOUND`: System has nghttp2.
35
+ # - `NGHTTP2_VERSION`: Version of nghttp2.
36
+ # - `CURL::nghttp2`: nghttp2 library target.
37
+
38
+ set(_nghttp2_pc_requires "libnghttp2")
39
+
40
+ if(NOT DEFINED NGHTTP2_INCLUDE_DIR AND
41
+ NOT DEFINED NGHTTP2_LIBRARY)
42
+ if(CURL_USE_PKGCONFIG)
43
+ find_package(PkgConfig QUIET)
44
+ pkg_check_modules(_nghttp2 ${_nghttp2_pc_requires})
45
+ endif()
46
+ if(NOT _nghttp2_FOUND AND CURL_USE_CMAKECONFIG)
47
+ find_package(nghttp2 CONFIG QUIET)
48
+ endif()
49
+ endif()
50
+
51
+ if(_nghttp2_FOUND)
52
+ set(NGHTTP2_FOUND TRUE)
53
+ set(NGHTTP2_VERSION ${_nghttp2_VERSION})
54
+ if(NGHTTP2_USE_STATIC_LIBS)
55
+ set(_nghttp2_CFLAGS "${_nghttp2_STATIC_CFLAGS}")
56
+ set(_nghttp2_INCLUDE_DIRS "${_nghttp2_STATIC_INCLUDE_DIRS}")
57
+ set(_nghttp2_LIBRARY_DIRS "${_nghttp2_STATIC_LIBRARY_DIRS}")
58
+ set(_nghttp2_LIBRARIES "${_nghttp2_STATIC_LIBRARIES}")
59
+ endif()
60
+ message(STATUS "Found NGHTTP2 (via pkg-config): ${_nghttp2_INCLUDE_DIRS} (found version \"${NGHTTP2_VERSION}\")")
61
+ elseif(nghttp2_CONFIG)
62
+ set(NGHTTP2_FOUND TRUE)
63
+ set(NGHTTP2_VERSION ${nghttp2_VERSION})
64
+ if(NGHTTP2_USE_STATIC_LIBS OR NOT TARGET nghttp2::nghttp2)
65
+ set(_nghttp2_LIBRARIES nghttp2::nghttp2_static)
66
+ else()
67
+ set(_nghttp2_LIBRARIES nghttp2::nghttp2)
68
+ endif()
69
+ message(STATUS "Found NGHTTP2 (via CMake Config): ${nghttp2_CONFIG} (found version \"${NGHTTP2_VERSION}\")")
70
+ else()
71
+ find_path(NGHTTP2_INCLUDE_DIR NAMES "nghttp2/nghttp2.h")
72
+ if(NGHTTP2_USE_STATIC_LIBS)
73
+ set(_nghttp2_CFLAGS "-DNGHTTP2_STATICLIB")
74
+ find_library(NGHTTP2_LIBRARY NAMES "nghttp2_static" "nghttp2")
75
+ else()
76
+ find_library(NGHTTP2_LIBRARY NAMES "nghttp2" "nghttp2_static")
77
+ endif()
78
+
79
+ unset(NGHTTP2_VERSION CACHE)
80
+ if(NGHTTP2_INCLUDE_DIR AND EXISTS "${NGHTTP2_INCLUDE_DIR}/nghttp2/nghttp2ver.h")
81
+ set(_version_regex "#[\t ]*define[\t ]+NGHTTP2_VERSION[\t ]+\"([^\"]*)\"")
82
+ file(STRINGS "${NGHTTP2_INCLUDE_DIR}/nghttp2/nghttp2ver.h" _version_str REGEX "${_version_regex}")
83
+ string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
84
+ set(NGHTTP2_VERSION "${_version_str}")
85
+ unset(_version_regex)
86
+ unset(_version_str)
87
+ endif()
88
+
89
+ include(FindPackageHandleStandardArgs)
90
+ find_package_handle_standard_args(NGHTTP2
91
+ REQUIRED_VARS
92
+ NGHTTP2_INCLUDE_DIR
93
+ NGHTTP2_LIBRARY
94
+ VERSION_VAR
95
+ NGHTTP2_VERSION
96
+ )
97
+
98
+ if(NGHTTP2_FOUND)
99
+ set(_nghttp2_INCLUDE_DIRS ${NGHTTP2_INCLUDE_DIR})
100
+ set(_nghttp2_LIBRARIES ${NGHTTP2_LIBRARY})
101
+ endif()
102
+
103
+ mark_as_advanced(NGHTTP2_INCLUDE_DIR NGHTTP2_LIBRARY)
104
+ endif()
105
+
106
+ if(NGHTTP2_FOUND)
107
+ if(NOT TARGET CURL::nghttp2)
108
+ add_library(CURL::nghttp2 INTERFACE IMPORTED)
109
+ set_target_properties(CURL::nghttp2 PROPERTIES
110
+ INTERFACE_LIBCURL_PC_MODULES "${_nghttp2_pc_requires}"
111
+ INTERFACE_COMPILE_OPTIONS "${_nghttp2_CFLAGS}"
112
+ INTERFACE_INCLUDE_DIRECTORIES "${_nghttp2_INCLUDE_DIRS}"
113
+ INTERFACE_LINK_DIRECTORIES "${_nghttp2_LIBRARY_DIRS}"
114
+ INTERFACE_LINK_LIBRARIES "${_nghttp2_LIBRARIES}")
115
+ endif()
116
+ endif()
@@ -0,0 +1,116 @@
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 nghttp3 library
25
+ #
26
+ # Input variables:
27
+ #
28
+ # - `NGHTTP3_INCLUDE_DIR`: Absolute path to nghttp3 include directory.
29
+ # - `NGHTTP3_LIBRARY`: Absolute path to `nghttp3` library.
30
+ # - `NGHTTP3_USE_STATIC_LIBS`: Configure for static nghttp3 libraries.
31
+ #
32
+ # Defines:
33
+ #
34
+ # - `NGHTTP3_FOUND`: System has nghttp3.
35
+ # - `NGHTTP3_VERSION`: Version of nghttp3.
36
+ # - `CURL::nghttp3`: nghttp3 library target.
37
+
38
+ set(_nghttp3_pc_requires "libnghttp3")
39
+
40
+ if(NOT DEFINED NGHTTP3_INCLUDE_DIR AND
41
+ NOT DEFINED NGHTTP3_LIBRARY)
42
+ if(CURL_USE_PKGCONFIG)
43
+ find_package(PkgConfig QUIET)
44
+ pkg_check_modules(_nghttp3 ${_nghttp3_pc_requires})
45
+ endif()
46
+ if(NOT _nghttp3_FOUND AND CURL_USE_CMAKECONFIG)
47
+ find_package(nghttp3 CONFIG QUIET)
48
+ endif()
49
+ endif()
50
+
51
+ if(_nghttp3_FOUND)
52
+ set(NGHTTP3_FOUND TRUE)
53
+ set(NGHTTP3_VERSION ${_nghttp3_VERSION})
54
+ if(NGHTTP3_USE_STATIC_LIBS)
55
+ set(_nghttp3_CFLAGS "${_nghttp3_STATIC_CFLAGS}")
56
+ set(_nghttp3_INCLUDE_DIRS "${_nghttp3_STATIC_INCLUDE_DIRS}")
57
+ set(_nghttp3_LIBRARY_DIRS "${_nghttp3_STATIC_LIBRARY_DIRS}")
58
+ set(_nghttp3_LIBRARIES "${_nghttp3_STATIC_LIBRARIES}")
59
+ endif()
60
+ message(STATUS "Found NGHTTP3 (via pkg-config): ${_nghttp3_INCLUDE_DIRS} (found version \"${NGHTTP3_VERSION}\")")
61
+ elseif(nghttp3_CONFIG)
62
+ set(NGHTTP3_FOUND TRUE)
63
+ set(NGHTTP3_VERSION ${nghttp3_VERSION})
64
+ if(NGHTTP3_USE_STATIC_LIBS OR NOT TARGET nghttp3::nghttp3)
65
+ set(_nghttp3_LIBRARIES nghttp3::nghttp3_static)
66
+ else()
67
+ set(_nghttp3_LIBRARIES nghttp3::nghttp3)
68
+ endif()
69
+ message(STATUS "Found NGHTTP3 (via CMake Config): ${nghttp3_CONFIG} (found version \"${NGHTTP3_VERSION}\")")
70
+ else()
71
+ find_path(NGHTTP3_INCLUDE_DIR NAMES "nghttp3/nghttp3.h")
72
+ if(NGHTTP3_USE_STATIC_LIBS)
73
+ set(_nghttp3_CFLAGS "-DNGHTTP3_STATICLIB")
74
+ find_library(NGHTTP3_LIBRARY NAMES "nghttp3_static" "nghttp3")
75
+ else()
76
+ find_library(NGHTTP3_LIBRARY NAMES "nghttp3")
77
+ endif()
78
+
79
+ unset(NGHTTP3_VERSION CACHE)
80
+ if(NGHTTP3_INCLUDE_DIR AND EXISTS "${NGHTTP3_INCLUDE_DIR}/nghttp3/version.h")
81
+ set(_version_regex "#[\t ]*define[\t ]+NGHTTP3_VERSION[\t ]+\"([^\"]*)\"")
82
+ file(STRINGS "${NGHTTP3_INCLUDE_DIR}/nghttp3/version.h" _version_str REGEX "${_version_regex}")
83
+ string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
84
+ set(NGHTTP3_VERSION "${_version_str}")
85
+ unset(_version_regex)
86
+ unset(_version_str)
87
+ endif()
88
+
89
+ include(FindPackageHandleStandardArgs)
90
+ find_package_handle_standard_args(NGHTTP3
91
+ REQUIRED_VARS
92
+ NGHTTP3_INCLUDE_DIR
93
+ NGHTTP3_LIBRARY
94
+ VERSION_VAR
95
+ NGHTTP3_VERSION
96
+ )
97
+
98
+ if(NGHTTP3_FOUND)
99
+ set(_nghttp3_INCLUDE_DIRS ${NGHTTP3_INCLUDE_DIR})
100
+ set(_nghttp3_LIBRARIES ${NGHTTP3_LIBRARY})
101
+ endif()
102
+
103
+ mark_as_advanced(NGHTTP3_INCLUDE_DIR NGHTTP3_LIBRARY)
104
+ endif()
105
+
106
+ if(NGHTTP3_FOUND)
107
+ if(NOT TARGET CURL::nghttp3)
108
+ add_library(CURL::nghttp3 INTERFACE IMPORTED)
109
+ set_target_properties(CURL::nghttp3 PROPERTIES
110
+ INTERFACE_LIBCURL_PC_MODULES "${_nghttp3_pc_requires}"
111
+ INTERFACE_COMPILE_OPTIONS "${_nghttp3_CFLAGS}"
112
+ INTERFACE_INCLUDE_DIRECTORIES "${_nghttp3_INCLUDE_DIRS}"
113
+ INTERFACE_LINK_DIRECTORIES "${_nghttp3_LIBRARY_DIRS}"
114
+ INTERFACE_LINK_LIBRARIES "${_nghttp3_LIBRARIES}")
115
+ endif()
116
+ endif()
@@ -0,0 +1,187 @@
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 ngtcp2 library
25
+ #
26
+ # This module accepts optional COMPONENTS to control the crypto library (these are
27
+ # mutually exclusive):
28
+ #
29
+ # - BoringSSL: Use `libngtcp2_crypto_boringssl`. (also for AWS-LC)
30
+ # - GnuTLS: Use `libngtcp2_crypto_gnutls`.
31
+ # - LibreSSL: Use `libngtcp2_crypto_libressl`. (requires ngtcp2 1.15.0+)
32
+ # - ossl: Use `libngtcp2_crypto_ossl`.
33
+ # - quictls: Use `libngtcp2_crypto_quictls`. (also for LibreSSL with ngtcp2 <1.15.0)
34
+ # - wolfSSL: Use `libngtcp2_crypto_wolfssl`.
35
+ #
36
+ # Input variables:
37
+ #
38
+ # - `NGTCP2_INCLUDE_DIR`: Absolute path to ngtcp2 include directory.
39
+ # - `NGTCP2_LIBRARY`: Absolute path to `ngtcp2` library.
40
+ # - `NGTCP2_CRYPTO_BORINGSSL_LIBRARY`: Absolute path to `ngtcp2_crypto_boringssl` library.
41
+ # - `NGTCP2_CRYPTO_GNUTLS_LIBRARY`: Absolute path to `ngtcp2_crypto_gnutls` library.
42
+ # - `NGTCP2_CRYPTO_LIBRESSL_LIBRARY`: Absolute path to `ngtcp2_crypto_libressl` library.
43
+ # - `NGTCP2_CRYPTO_OSSL_LIBRARY`: Absolute path to `ngtcp2_crypto_ossl` library.
44
+ # - `NGTCP2_CRYPTO_QUICTLS_LIBRARY`: Absolute path to `ngtcp2_crypto_quictls` library.
45
+ # - `NGTCP2_CRYPTO_WOLFSSL_LIBRARY`: Absolute path to `ngtcp2_crypto_wolfssl` library.
46
+ # - `NGTCP2_USE_STATIC_LIBS`: Configure for static ngtcp2 libraries.
47
+ #
48
+ # Defines:
49
+ #
50
+ # - `NGTCP2_FOUND`: System has ngtcp2.
51
+ # - `NGTCP2_VERSION`: Version of ngtcp2.
52
+ # - `NGTCP2_CRYPTO_BACKEND`: Name of the crypto library component. (Empty if COMPONENTS was not used.)
53
+ # - `CURL::ngtcp2`: ngtcp2 library target.
54
+
55
+ set(NGTCP2_CRYPTO_BACKEND "")
56
+ if(NGTCP2_FIND_COMPONENTS)
57
+ foreach(_component IN LISTS NGTCP2_FIND_COMPONENTS)
58
+ if(_component MATCHES "^(BoringSSL|GnuTLS|LibreSSL|ossl|quictls|wolfSSL)")
59
+ if(NGTCP2_CRYPTO_BACKEND)
60
+ message(FATAL_ERROR "NGTCP2: Only one crypto library can be selected")
61
+ endif()
62
+ set(NGTCP2_CRYPTO_BACKEND ${_component})
63
+ endif()
64
+ endforeach()
65
+
66
+ if(NGTCP2_CRYPTO_BACKEND)
67
+ string(TOLOWER "ngtcp2_crypto_${NGTCP2_CRYPTO_BACKEND}" _crypto_library_lower)
68
+ string(TOUPPER "ngtcp2_crypto_${NGTCP2_CRYPTO_BACKEND}" _crypto_library_upper)
69
+ endif()
70
+ endif()
71
+
72
+ set(_ngtcp2_pc_requires "libngtcp2")
73
+ if(NGTCP2_CRYPTO_BACKEND)
74
+ list(APPEND _ngtcp2_pc_requires "lib${_crypto_library_lower}")
75
+ endif()
76
+
77
+ set(_tried_pkgconfig FALSE)
78
+ if(NOT DEFINED NGTCP2_INCLUDE_DIR AND
79
+ NOT DEFINED NGTCP2_LIBRARY)
80
+ if(CURL_USE_PKGCONFIG)
81
+ find_package(PkgConfig QUIET)
82
+ pkg_check_modules(_ngtcp2 ${_ngtcp2_pc_requires})
83
+ set(_tried_pkgconfig TRUE)
84
+ endif()
85
+ if(NOT _ngtcp2_FOUND AND CURL_USE_CMAKECONFIG AND NGTCP2_CRYPTO_BACKEND)
86
+ find_package(ngtcp2 CONFIG QUIET)
87
+ # Skip using it if the crypto library target is not available
88
+ if(ngtcp2_CONFIG AND
89
+ NOT TARGET ngtcp2::${_crypto_library_lower}_static AND
90
+ NOT TARGET ngtcp2::${_crypto_library_lower})
91
+ unset(ngtcp2_CONFIG)
92
+ endif()
93
+ endif()
94
+ endif()
95
+
96
+ if(_ngtcp2_FOUND)
97
+ set(NGTCP2_FOUND TRUE)
98
+ set(NGTCP2_VERSION ${_ngtcp2_libngtcp2_VERSION})
99
+ if(NGTCP2_USE_STATIC_LIBS)
100
+ set(_ngtcp2_CFLAGS "${_ngtcp2_STATIC_CFLAGS}")
101
+ set(_ngtcp2_INCLUDE_DIRS "${_ngtcp2_STATIC_INCLUDE_DIRS}")
102
+ set(_ngtcp2_LIBRARY_DIRS "${_ngtcp2_STATIC_LIBRARY_DIRS}")
103
+ set(_ngtcp2_LIBRARIES "${_ngtcp2_STATIC_LIBRARIES}")
104
+ endif()
105
+ message(STATUS "Found NGTCP2 (via pkg-config): ${_ngtcp2_INCLUDE_DIRS} (found version \"${NGTCP2_VERSION}\")")
106
+ elseif(ngtcp2_CONFIG)
107
+ set(NGTCP2_FOUND TRUE)
108
+ set(NGTCP2_VERSION ${ngtcp2_VERSION})
109
+ if(NGTCP2_USE_STATIC_LIBS OR NOT TARGET ngtcp2::ngtcp2)
110
+ set(_ngtcp2_LIBRARIES ngtcp2::ngtcp2_static ngtcp2::${_crypto_library_lower}_static)
111
+ else()
112
+ set(_ngtcp2_LIBRARIES ngtcp2::ngtcp2 ngtcp2::${_crypto_library_lower})
113
+ endif()
114
+ message(STATUS "Found NGTCP2 (via CMake Config): ${ngtcp2_CONFIG} (found version \"${NGTCP2_VERSION}\")")
115
+ else()
116
+ find_path(NGTCP2_INCLUDE_DIR NAMES "ngtcp2/ngtcp2.h")
117
+ if(NGTCP2_USE_STATIC_LIBS)
118
+ set(_ngtcp2_CFLAGS "-DNGTCP2_STATICLIB")
119
+ find_library(NGTCP2_LIBRARY NAMES "ngtcp2_static" "ngtcp2")
120
+ else()
121
+ find_library(NGTCP2_LIBRARY NAMES "ngtcp2")
122
+ endif()
123
+
124
+ unset(NGTCP2_VERSION CACHE)
125
+ if(NGTCP2_INCLUDE_DIR AND EXISTS "${NGTCP2_INCLUDE_DIR}/ngtcp2/version.h")
126
+ set(_version_regex "#[\t ]*define[\t ]+NGTCP2_VERSION[\t ]+\"([^\"]*)\"")
127
+ file(STRINGS "${NGTCP2_INCLUDE_DIR}/ngtcp2/version.h" _version_str REGEX "${_version_regex}")
128
+ string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
129
+ set(NGTCP2_VERSION "${_version_str}")
130
+ unset(_version_regex)
131
+ unset(_version_str)
132
+ endif()
133
+
134
+ if(NGTCP2_CRYPTO_BACKEND)
135
+ if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.20)
136
+ cmake_path(GET NGTCP2_LIBRARY PARENT_PATH _ngtcp2_library_dir)
137
+ else()
138
+ get_filename_component(_ngtcp2_library_dir "${NGTCP2_LIBRARY}" DIRECTORY)
139
+ endif()
140
+ if(NGTCP2_USE_STATIC_LIBS)
141
+ find_library(${_crypto_library_upper}_LIBRARY NAMES ${_crypto_library_lower}_static ${_crypto_library_lower}
142
+ HINTS ${_ngtcp2_library_dir})
143
+ else()
144
+ find_library(${_crypto_library_upper}_LIBRARY NAMES ${_crypto_library_lower}
145
+ HINTS ${_ngtcp2_library_dir})
146
+ endif()
147
+
148
+ if(${_crypto_library_upper}_LIBRARY)
149
+ set(NGTCP2_${NGTCP2_CRYPTO_BACKEND}_FOUND TRUE)
150
+ set(NGTCP2_CRYPTO_LIBRARY ${${_crypto_library_upper}_LIBRARY})
151
+ endif()
152
+ endif()
153
+
154
+ include(FindPackageHandleStandardArgs)
155
+ find_package_handle_standard_args(NGTCP2
156
+ REQUIRED_VARS
157
+ NGTCP2_INCLUDE_DIR
158
+ NGTCP2_LIBRARY
159
+ VERSION_VAR
160
+ NGTCP2_VERSION
161
+ HANDLE_COMPONENTS
162
+ )
163
+
164
+ if(NGTCP2_FOUND)
165
+ set(_ngtcp2_INCLUDE_DIRS ${NGTCP2_INCLUDE_DIR})
166
+ set(_ngtcp2_LIBRARIES ${NGTCP2_LIBRARY} ${NGTCP2_CRYPTO_LIBRARY})
167
+ endif()
168
+
169
+ mark_as_advanced(NGTCP2_INCLUDE_DIR NGTCP2_LIBRARY NGTCP2_CRYPTO_LIBRARY)
170
+
171
+ if(NOT NGTCP2_FOUND AND _tried_pkgconfig) # reset variables to allow another round of detection
172
+ unset(NGTCP2_INCLUDE_DIR CACHE)
173
+ unset(NGTCP2_LIBRARY CACHE)
174
+ endif()
175
+ endif()
176
+
177
+ if(NGTCP2_FOUND)
178
+ if(NOT TARGET CURL::ngtcp2)
179
+ add_library(CURL::ngtcp2 INTERFACE IMPORTED)
180
+ set_target_properties(CURL::ngtcp2 PROPERTIES
181
+ INTERFACE_LIBCURL_PC_MODULES "${_ngtcp2_pc_requires}"
182
+ INTERFACE_COMPILE_OPTIONS "${_ngtcp2_CFLAGS}"
183
+ INTERFACE_INCLUDE_DIRECTORIES "${_ngtcp2_INCLUDE_DIRS}"
184
+ INTERFACE_LINK_DIRECTORIES "${_ngtcp2_LIBRARY_DIRS}"
185
+ INTERFACE_LINK_LIBRARIES "${_ngtcp2_LIBRARIES}")
186
+ endif()
187
+ endif()