1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
|
diff --git a/CMake/folly-config.cmake.in b/CMake/folly-config.cmake.in
index 0b96f0a..d5a200f 100644
--- a/CMake/folly-config.cmake.in
+++ b/CMake/folly-config.cmake.in
@@ -29,10 +29,31 @@ endif()
set(FOLLY_LIBRARIES Folly::folly)
# Find folly's dependencies
-find_dependency(fmt)
+find_dependency(fmt CONFIG)
+find_dependency(double-conversion CONFIG)
+find_dependency(FastFloat CONFIG)
+set(z_vcpkg_folly_gflags_backup ${GFLAGS_USE_TARGET_NAMESPACE})
+set(GFLAGS_USE_TARGET_NAMESPACE ON)
+find_dependency(gflags CONFIG)
+set(GFLAGS_USE_TARGET_NAMESPACE ${z_vcpkg_folly_gflags_backup})
+find_dependency(glog CONFIG)
+find_dependency(Libevent CONFIG)
+find_dependency(ZLIB)
+if("@VCPKG_LOCK_FIND_PACKAGE_LZ4@")
+ find_dependency(lz4 CONFIG)
+endif()
+if("@VCPKG_LOCK_FIND_PACKAGE_ZSTD@")
+ find_dependency(zstd CONFIG)
+endif()
+if("@VCPKG_LOCK_FIND_PACKAGE_SNAPPY@")
+ find_dependency(Snappy CONFIG)
+endif()
+if("@VCPKG_LOCK_FIND_PACKAGE_LIBSODIUM@")
+ find_dependency(unofficial-sodium CONFIG)
+endif()
set(Boost_USE_STATIC_LIBS "@FOLLY_BOOST_LINK_STATIC@")
-find_dependency(Boost 1.51.0 MODULE
+find_dependency(Boost
COMPONENTS
context
filesystem
diff --git a/CMake/folly-config.h.cmake b/CMake/folly-config.h.cmake
index 9a309fb..7e6e05f 100644
--- a/CMake/folly-config.h.cmake
+++ b/CMake/folly-config.h.cmake
@@ -16,6 +16,9 @@
#pragma once
+#cmakedefine01 FOLLY_HAS_LIBURING
+#cmakedefine01 FOLLY_HAS_LIBAIO
+
#ifdef __APPLE__
#include <TargetConditionals.h> // @manual
#endif
diff --git a/CMake/folly-deps.cmake b/CMake/folly-deps.cmake
index 6ce4c67..a347cf0 100644
--- a/CMake/folly-deps.cmake
+++ b/CMake/folly-deps.cmake
@@ -35,7 +35,7 @@ else()
endif()
set(Boost_USE_STATIC_LIBS "${FOLLY_BOOST_LINK_STATIC}")
-find_package(Boost 1.51.0 MODULE
+find_package(Boost
COMPONENTS
context
filesystem
@@ -45,17 +45,21 @@ find_package(Boost 1.51.0 MODULE
thread
REQUIRED
)
+set(Boost_LIBRARIES Boost::boost Boost::context Boost::filesystem Boost::program_options Boost::regex Boost::system Boost::thread)
list(APPEND FOLLY_LINK_LIBRARIES ${Boost_LIBRARIES})
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIRS})
-find_package(DoubleConversion MODULE REQUIRED)
+find_package(double-conversion CONFIG REQUIRED)
+set(DOUBLE_CONVERSION_LIBRARY double-conversion::double-conversion)
list(APPEND FOLLY_LINK_LIBRARIES ${DOUBLE_CONVERSION_LIBRARY})
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${DOUBLE_CONVERSION_INCLUDE_DIR})
-find_package(FastFloat MODULE REQUIRED)
-list(APPEND FOLLY_INCLUDE_DIRECTORIES ${FASTFLOAT_INCLUDE_DIR})
+find_package(FastFloat CONFIG REQUIRED)
+list(APPEND FOLLY_LINK_LIBRARIES FastFloat::fast_float)
-find_package(Gflags MODULE)
+set(GFLAGS_USE_TARGET_NAMESPACE ON)
+find_package(LIBGFLAGS NAMES gflags REQUIRED)
+set(LIBGFLAGS_LIBRARY gflags::gflags)
set(FOLLY_HAVE_LIBGFLAGS ${LIBGFLAGS_FOUND})
if(LIBGFLAGS_FOUND)
list(APPEND FOLLY_LINK_LIBRARIES ${LIBGFLAGS_LIBRARY})
@@ -64,16 +68,22 @@ if(LIBGFLAGS_FOUND)
set(FOLLY_LIBGFLAGS_INCLUDE ${LIBGFLAGS_INCLUDE_DIR})
endif()
-find_package(Glog MODULE)
+find_package(GLOG NAMES glog REQUIRED)
+set(GLOG_LIBRARY glog::glog)
set(FOLLY_HAVE_LIBGLOG ${GLOG_FOUND})
list(APPEND FOLLY_LINK_LIBRARIES ${GLOG_LIBRARY})
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${GLOG_INCLUDE_DIR})
-find_package(LibEvent MODULE REQUIRED)
+find_package(LIBEVENT NAMES Libevent REQUIRED)
+set(LIBEVENT_LIB libevent::core libevent::extra)
+if(NOT WIN32)
+ list(APPEND LIBEVENT_LIB libevent::pthreads)
+endif()
list(APPEND FOLLY_LINK_LIBRARIES ${LIBEVENT_LIB})
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBEVENT_INCLUDE_DIR})
find_package(ZLIB MODULE)
+set(ZLIB_LIBRARIES ZLIB::ZLIB) # consistent with proxygen
set(FOLLY_HAVE_LIBZ ${ZLIB_FOUND})
if (ZLIB_FOUND)
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${ZLIB_INCLUDE_DIRS})
@@ -106,21 +116,24 @@ if (LIBLZMA_FOUND)
list(APPEND FOLLY_LINK_LIBRARIES ${LIBLZMA_LIBRARIES})
endif()
-find_package(LZ4 MODULE)
+find_package(LZ4 NAMES lz4)
+set(LZ4_LIBRARY lz4::lz4)
set(FOLLY_HAVE_LIBLZ4 ${LZ4_FOUND})
if (LZ4_FOUND)
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LZ4_INCLUDE_DIR})
list(APPEND FOLLY_LINK_LIBRARIES ${LZ4_LIBRARY})
endif()
-find_package(Zstd MODULE)
+find_package(ZSTD NAMES zstd)
+set(ZSTD_LIBRARY zstd::libzstd)
set(FOLLY_HAVE_LIBZSTD ${ZSTD_FOUND})
if(ZSTD_FOUND)
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${ZSTD_INCLUDE_DIR})
list(APPEND FOLLY_LINK_LIBRARIES ${ZSTD_LIBRARY})
endif()
-find_package(Snappy MODULE)
+find_package(SNAPPY NAMES Snappy)
+set(SNAPPY_LIBRARY Snappy::snappy)
set(FOLLY_HAVE_LIBSNAPPY ${SNAPPY_FOUND})
if (SNAPPY_FOUND)
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${SNAPPY_INCLUDE_DIR})
@@ -136,14 +149,19 @@ list(APPEND FOLLY_LINK_LIBRARIES ${LIBIBERTY_LIBRARIES})
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBIBERTY_INCLUDE_DIRS})
find_package(LibAIO)
+set(FOLLY_HAS_LIBAIO ${VCPKG_LOCK_FIND_PACKAGE_LibAIO})
list(APPEND FOLLY_LINK_LIBRARIES ${LIBAIO_LIBRARIES})
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBAIO_INCLUDE_DIRS})
find_package(LibUring)
+set(FOLLY_HAS_LIBURING ${VCPKG_LOCK_FIND_LibUring})
list(APPEND FOLLY_LINK_LIBRARIES ${LIBURING_LIBRARIES})
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBURING_INCLUDE_DIRS})
-find_package(Libsodium)
+find_package(LIBSODIUM NAMES unofficial-sodium)
+if(LIBSODIUM_FOUND)
+ set(LIBSODIUM_LIBRARIES unofficial-sodium::sodium)
+endif()
list(APPEND FOLLY_LINK_LIBRARIES ${LIBSODIUM_LIBRARIES})
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBSODIUM_INCLUDE_DIRS})
@@ -160,6 +178,8 @@ list(APPEND FOLLY_LINK_LIBRARIES ${LIBUNWIND_LIBRARIES})
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBUNWIND_INCLUDE_DIRS})
if (LIBUNWIND_FOUND)
set(FOLLY_HAVE_LIBUNWIND ON)
+ list(REMOVE_ITEM FOLLY_LINK_LIBRARIES ${LIBLZMA_LIBRARIES})
+ list(APPEND FOLLY_LINK_LIBRARIES ${LIBLZMA_LIBRARIES})
endif()
if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
list(APPEND FOLLY_LINK_LIBRARIES "execinfo")
diff --git a/folly/io/async/AsyncIO.cpp b/folly/io/async/AsyncIO.cpp
index 93cda44..ac090bb 100644
--- a/folly/io/async/AsyncIO.cpp
+++ b/folly/io/async/AsyncIO.cpp
@@ -35,7 +35,7 @@
#include <sys/eventfd.h>
#endif
-#if __has_include(<libaio.h>)
+#if FOLLY_HAS_LIBAIO
// debugging helpers
namespace {
diff --git a/folly/io/async/AsyncIO.h b/folly/io/async/AsyncIO.h
index b1a6f52..ba84609 100644
--- a/folly/io/async/AsyncIO.h
+++ b/folly/io/async/AsyncIO.h
@@ -18,7 +18,7 @@
#include <folly/experimental/io/AsyncBase.h>
-#if __has_include(<libaio.h>)
+#if FOLLY_HAS_LIBAIO
#include <libaio.h>
diff --git a/folly/io/async/Liburing.h b/folly/io/async/Liburing.h
index 8e81aaa..c7f4a67 100644
--- a/folly/io/async/Liburing.h
+++ b/folly/io/async/Liburing.h
@@ -17,7 +17,5 @@
#pragma once
#if defined(__linux__) && __has_include(<liburing.h>)
-#define FOLLY_HAS_LIBURING 1
#else
-#define FOLLY_HAS_LIBURING 0
#endif
diff --git a/folly/io/async/SimpleAsyncIO.cpp b/folly/io/async/SimpleAsyncIO.cpp
index 807a2be..551a003 100644
--- a/folly/io/async/SimpleAsyncIO.cpp
+++ b/folly/io/async/SimpleAsyncIO.cpp
@@ -25,7 +25,7 @@
namespace folly {
-#if __has_include(<libaio.h>)
+#if FOLLY_HAS_LIBAIO
static constexpr bool has_aio = true;
using aio_type = AsyncIO;
#else
|