# Maintainer: Alexey Pavlov _realname=folly pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2026.01.26.00 pkgrel=1 pkgdesc="An open-source C++ library developed and used at Facebook (mingw-w64)" arch=('any') _use_nglog=yes mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') url='https://github.com/facebook/folly' msys2_repository_url='https://github.com/facebook/folly' msys2_references=( "cpe: cpe:/a:facebook:folly" ) license=('spdx:Apache-2.0') depends=("${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-bzip2" "${MINGW_PACKAGE_PREFIX}-double-conversion" "${MINGW_PACKAGE_PREFIX}-fmt" $([[ "$_use_nglog" == "yes" ]] && echo "${MINGW_PACKAGE_PREFIX}-ng-log" || echo "${MINGW_PACKAGE_PREFIX}-glog") #"${MINGW_PACKAGE_PREFIX}-jemalloc" #"${MINGW_PACKAGE_PREFIX}-libbacktrace" # Libraries seems not provide needed functions for symbolizer. #"${MINGW_PACKAGE_PREFIX}-libdwarf" "${MINGW_PACKAGE_PREFIX}-libunwind" "${MINGW_PACKAGE_PREFIX}-libevent" "${MINGW_PACKAGE_PREFIX}-libsodium" "${MINGW_PACKAGE_PREFIX}-lz4" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-snappy" "${MINGW_PACKAGE_PREFIX}-xz" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-zstd") makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ninja" "${MINGW_PACKAGE_PREFIX}-fast_float" $([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] && echo "${MINGW_PACKAGE_PREFIX}-winpthreads-stub") # GCC toolchain implicitly include and its defines, so it not possible to build without pthread ) source=("https://github.com/facebook/folly/archive/v${pkgver}/${_realname}-${pkgver}.tar.gz" folly.patch folly-nglog.patch) sha256sums=('51949b1211a905e6d15b4ea13cf91fc149cff6eca8e5125a7e368bf16f154d96' '81a191f04c4b21eadd5ac0aaa0871a2eca264401a3c96d6c78ec44aa748579ff' 'c60461eeed4d839e360e439c784e85baf6fb019286ade6a4402facb5fdceb1a8') #options=(debug !strip) prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/folly.patch if [[ "${_use_nglog}" == "yes" ]]; then patch -p1 -i ${srcdir}/folly-nglog.patch fi # Use packages config scripts to properly find targets rm -f build/fbcode_builder/CMake/FindDoubleConversion.cmake rm -f build/fbcode_builder/CMake/FindGflags.cmake rm -f build/fbcode_builder/CMake/FindGlog.cmake rm -f build/fbcode_builder/CMake/FindLibevent.cmake rm -f CMake/FindFastFloat.cmake rm -f CMake/FindFmt.cmake rm -f CMake/FindLZ4.cmake rm -f CMake/FindSnappy.cmake } build() { mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}" declare -a extra_config if check_option "debug" "n"; then extra_config+=("-DCMAKE_BUILD_TYPE=Release") else extra_config+=("-DCMAKE_BUILD_TYPE=Debug") fi MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ "${MINGW_PREFIX}"/bin/cmake.exe \ -GNinja \ -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \ -DPYTHON_EXTENSIONS=OFF \ -DBUILD_WITH_JEMALLOC=OFF \ -DUSE_STATIC_DEPS_ON_UNIX=ON \ -DCMAKE_POLICY_DEFAULT_CMP0167=NEW \ -DBUILD_TESTS=OFF \ -DBUILD_SLOW_TESTS=OFF \ "${extra_config[@]}" \ ../${_realname}-${pkgver} "${MINGW_PREFIX}"/bin/cmake.exe --build . } package() { cd "${srcdir}/build-${MSYSTEM}" DESTDIR="${pkgdir}" "${MINGW_PREFIX}"/bin/cmake.exe --install . install -d "$pkgdir${MINGW_PREFIX}"/share/licenses/${_realname} install -Dm644 "${srcdir}"/${_realname}-${pkgver}/LICENSE* -t "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}" sed -s "s|$(cygpath -m ${MINGW_PREFIX})|${MINGW_PREFIX}|g" -i "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/lib${_realname}.pc" }