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/folly | |
Diffstat (limited to 'vcpkg/ports/folly')
| -rw-r--r-- | vcpkg/ports/folly/disable-uninitialized-resize-on-new-stl.patch | 34 | ||||
| -rw-r--r-- | vcpkg/ports/folly/fix-absolute-dir.patch | 14 | ||||
| -rw-r--r-- | vcpkg/ports/folly/fix-deps.patch | 225 | ||||
| -rw-r--r-- | vcpkg/ports/folly/fix-unistd-include.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/folly/portfile.cmake | 67 | ||||
| -rw-r--r-- | vcpkg/ports/folly/vcpkg.json | 101 |
6 files changed, 454 insertions, 0 deletions
diff --git a/vcpkg/ports/folly/disable-uninitialized-resize-on-new-stl.patch b/vcpkg/ports/folly/disable-uninitialized-resize-on-new-stl.patch new file mode 100644 index 0000000..6e7b6b5 --- /dev/null +++ b/vcpkg/ports/folly/disable-uninitialized-resize-on-new-stl.patch @@ -0,0 +1,34 @@ +diff --git a/folly/memory/UninitializedMemoryHacks.h b/folly/memory/UninitializedMemoryHacks.h +index daf5eb735..1ac44d6b2 100644 +--- a/folly/memory/UninitializedMemoryHacks.h ++++ b/folly/memory/UninitializedMemoryHacks.h +@@ -101,6 +101,9 @@ template < + typename std::enable_if<std::is_trivially_destructible<T>::value>::type> + inline void resizeWithoutInitialization( + std::basic_string<T>& s, std::size_t n) { ++#if defined(_MSVC_STL_UPDATE) && _MSVC_STL_UPDATE >= 202206L ++ s.resize(n); ++#else + if (n <= s.size()) { + s.resize(n); + } else { +@@ -111,6 +114,7 @@ inline void resizeWithoutInitialization( + } + detail::unsafeStringSetLargerSize(s, n); + } ++#endif // defined(_MSVC_STL_UPDATE) && _MSVC_STL_UPDATE >= 202206L + } + + /** +@@ -278,8 +282,11 @@ struct MakeUnsafeStringSetLargerSize { + } // namespace folly + + #if defined(FOLLY_DECLARE_STRING_RESIZE_WITHOUT_INIT) ++#if defined(_MSVC_STL_UPDATE) && _MSVC_STL_UPDATE >= 202206L ++#else + FOLLY_DECLARE_STRING_RESIZE_WITHOUT_INIT(char) + FOLLY_DECLARE_STRING_RESIZE_WITHOUT_INIT(wchar_t) ++#endif // defined(_MSVC_STL_UPDATE) && _MSVC_STL_UPDATE >= 202206L + #endif + + namespace folly { diff --git a/vcpkg/ports/folly/fix-absolute-dir.patch b/vcpkg/ports/folly/fix-absolute-dir.patch new file mode 100644 index 0000000..fac930a --- /dev/null +++ b/vcpkg/ports/folly/fix-absolute-dir.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt
+index bc99ce3..d887a7e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -481,9 +481,6 @@ add_library(folly_test_util
+ ${FOLLY_DIR}/test/DeterministicSchedule.cpp
+ ${FOLLY_DIR}/json/JsonTestUtil.cpp
+ )
+-target_compile_definitions(folly_test_util PUBLIC
+- FOLLY_CERTS_DIR="${FOLLY_DIR}/io/async/test/certs"
+-)
+ set_property(TARGET folly_test_util PROPERTY VERSION ${PACKAGE_VERSION})
+ target_link_libraries(folly_test_util
+ PUBLIC
diff --git a/vcpkg/ports/folly/fix-deps.patch b/vcpkg/ports/folly/fix-deps.patch new file mode 100644 index 0000000..6aa5891 --- /dev/null +++ b/vcpkg/ports/folly/fix-deps.patch @@ -0,0 +1,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 diff --git a/vcpkg/ports/folly/fix-unistd-include.patch b/vcpkg/ports/folly/fix-unistd-include.patch new file mode 100644 index 0000000..2ab22ed --- /dev/null +++ b/vcpkg/ports/folly/fix-unistd-include.patch @@ -0,0 +1,13 @@ +diff --git a/folly/debugging/symbolizer/Elf.cpp b/folly/debugging/symbolizer/Elf.cpp +index 6a7f74f..6546fe0 100644 +--- a/folly/debugging/symbolizer/Elf.cpp ++++ b/folly/debugging/symbolizer/Elf.cpp +@@ -49,6 +49,8 @@ + #define FOLLY_ELF_NATIVE_CLASS __WORDSIZE + #endif // __ELF_NATIVE_CLASS + ++#include <unistd.h> ++ + namespace folly { + namespace symbolizer { + diff --git a/vcpkg/ports/folly/portfile.cmake b/vcpkg/ports/folly/portfile.cmake new file mode 100644 index 0000000..5848336 --- /dev/null +++ b/vcpkg/ports/folly/portfile.cmake @@ -0,0 +1,67 @@ +if(VCPKG_TARGET_IS_WINDOWS) + vcpkg_check_linkage(ONLY_STATIC_LIBRARY) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO facebook/folly + REF "v${VERSION}" + SHA512 6d377c48cf1c0796da6fad34b930e9608f3cd765a675414eaad45ff46e9d0b9bb5f027b187ec135e88bb60a83cb91c07d266a6673621caf3f9961942b55276e2 + HEAD_REF main + PATCHES + fix-deps.patch + disable-uninitialized-resize-on-new-stl.patch + fix-unistd-include.patch + fix-absolute-dir.patch +) +file(REMOVE "${SOURCE_PATH}/CMake/FindFastFloat.cmake") +file(REMOVE "${SOURCE_PATH}/CMake/FindFmt.cmake") +file(REMOVE "${SOURCE_PATH}/CMake/FindLibsodium.cmake") +file(REMOVE "${SOURCE_PATH}/CMake/FindZstd.cmake") +file(REMOVE "${SOURCE_PATH}/CMake/FindSnappy.cmake") +file(REMOVE "${SOURCE_PATH}/CMake/FindLZ4.cmake") +file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindDoubleConversion.cmake") +file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGMock.cmake") +file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGflags.cmake") +file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGlog.cmake") +file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindLibEvent.cmake") +file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindSodium.cmake") +file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindZstd.cmake") + +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" MSVC_USE_STATIC_RUNTIME) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + "bzip2" VCPKG_LOCK_FIND_PACKAGE_BZip2 + "libaio" VCPKG_LOCK_FIND_PACKAGE_LibAIO + "libsodium" VCPKG_LOCK_FIND_PACKAGE_LIBSODIUM + "liburing" VCPKG_LOCK_FIND_PACKAGE_LibUring + "lz4" VCPKG_LOCK_FIND_PACKAGE_LZ4 + "snappy" VCPKG_LOCK_FIND_PACKAGE_SNAPPY + "zstd" VCPKG_LOCK_FIND_PACKAGE_ZSTD +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DMSVC_USE_STATIC_RUNTIME=${MSVC_USE_STATIC_RUNTIME} + -DCMAKE_INSTALL_DIR=share/folly + -DCMAKE_POLICY_DEFAULT_CMP0167=NEW + -DVCPKG_LOCK_FIND_PACKAGE_fmt=ON + -DVCPKG_LOCK_FIND_PACKAGE_LibDwarf=OFF + -DVCPKG_LOCK_FIND_PACKAGE_Libiberty=OFF + -DVCPKG_LOCK_FIND_PACKAGE_LibUnwind=${VCPKG_TARGET_IS_LINUX} + -DVCPKG_LOCK_FIND_PACKAGE_ZLIB=ON + ${FEATURE_OPTIONS} + MAYBE_UNUSED_VARIABLES + MSVC_USE_STATIC_RUNTIME +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() +vcpkg_fixup_pkgconfig() +vcpkg_cmake_config_fixup() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/vcpkg/ports/folly/vcpkg.json b/vcpkg/ports/folly/vcpkg.json new file mode 100644 index 0000000..99bb39d --- /dev/null +++ b/vcpkg/ports/folly/vcpkg.json @@ -0,0 +1,101 @@ +{ + "name": "folly", + "version-string": "2025.05.19.00", + "description": "An open-source C++ library developed and used at Facebook. The library is UNSTABLE on Windows", + "homepage": "https://github.com/facebook/folly", + "license": "Apache-2.0", + "supports": "(windows & x64 & !uwp & !mingw) | (!windows & !android & (x64 | arm64))", + "dependencies": [ + "boost-chrono", + "boost-context", + "boost-conversion", + "boost-crc", + "boost-date-time", + "boost-filesystem", + "boost-multi-index", + "boost-program-options", + "boost-regex", + "boost-smart-ptr", + "boost-system", + "boost-thread", + "boost-variant", + "double-conversion", + "fast-float", + "fmt", + "gflags", + "glog", + "libevent", + "liblzma", + { + "name": "libunwind", + "platform": "linux" + }, + "openssl", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + "zlib" + ], + "features": { + "bzip2": { + "description": "Support bzip2 for compression", + "dependencies": [ + "bzip2" + ] + }, + "libaio": { + "description": "Support compile with libaio", + "supports": "linux", + "dependencies": [ + "libaio" + ] + }, + "libsodium": { + "description": "Support libsodium for cryto", + "dependencies": [ + "libsodium" + ] + }, + "liburing": { + "description": "Support compile with liburing", + "supports": "linux", + "dependencies": [ + "liburing" + ] + }, + "lz4": { + "description": "Support lz4 for compression", + "dependencies": [ + "lz4" + ] + }, + "lzma": { + "description": "Support LZMA for compression", + "dependencies": [ + "liblzma" + ] + }, + "snappy": { + "description": "Support Snappy for compression", + "dependencies": [ + { + "name": "snappy", + "features": [ + "rtti" + ] + } + ] + }, + "zstd": { + "description": "Support zstd for compression", + "dependencies": [ + "zstd" + ] + } + } +} |