aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/folly
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/folly
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/folly')
-rw-r--r--vcpkg/ports/folly/disable-uninitialized-resize-on-new-stl.patch34
-rw-r--r--vcpkg/ports/folly/fix-absolute-dir.patch14
-rw-r--r--vcpkg/ports/folly/fix-deps.patch225
-rw-r--r--vcpkg/ports/folly/fix-unistd-include.patch13
-rw-r--r--vcpkg/ports/folly/portfile.cmake67
-rw-r--r--vcpkg/ports/folly/vcpkg.json101
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"
+ ]
+ }
+ }
+}