blob: e988a9347ea66a645371febaf6d4ac66f3e02201 [file] [log] [blame]
# Maintainer: Philippe Renon <philippe.renon@yahoo.fr>
_realname=rocksdb
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=6.12.7
pkgrel=1
pkgdesc="A library that provides an embeddable, persistent key-value store for fast storage (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
url="https://rocksdb.org/"
license=("Apache")
depends=("${MINGW_PACKAGE_PREFIX}-bzip2"
"${MINGW_PACKAGE_PREFIX}-intel-tbb"
"${MINGW_PACKAGE_PREFIX}-lz4"
"${MINGW_PACKAGE_PREFIX}-snappy"
"${MINGW_PACKAGE_PREFIX}-zlib"
"${MINGW_PACKAGE_PREFIX}-zstd")
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-ninja"
"${MINGW_PACKAGE_PREFIX}-gcc")
options=('staticlibs' 'strip')
source=(${_realname}-${pkgver}.tar.gz::"https://github.com/facebook/${_realname}/archive/v${pkgver}.tar.gz"
"0004-fix-generating-and-install-import-lib.patch"
"0005-fix-cast-between-incompatible-pointers.patch"
"0006-cmake-build.patch"
"0007-mingw-fix-build-flags.patch"
"0008-fix-threads.patch")
sha256sums=('fee38528108b6b49f813b9f055584b123ff0debbc3f39584d4a663c46075a6e9'
'0f857c6d215b010bc9b47d526e7b5e5faabd380b35449f5d46e4c1556680cfc6'
'f0ce06542820a45eee74316f4b84a921f266032666a07e25284680ad1cc041da'
'e3ca227ef5751fe558135720ee911c9747fb77a6d6b84a2f4001ccff7c224ee1'
'14ed48fde07d6165316e467fa13f908f00a7efc3449c67a1256ff37cb4c88039'
'677fc71881f360826094d0ac024b7cbf2af89cc2bcf352b673cc0628a1959eee')
prepare() {
cd "${srcdir}/${_realname}-${pkgver}"
patch -p1 -i "${srcdir}/0004-fix-generating-and-install-import-lib.patch"
patch -p1 -i "${srcdir}/0005-fix-cast-between-incompatible-pointers.patch"
patch -p1 -i "${srcdir}/0006-cmake-build.patch"
patch -p1 -i "${srcdir}/0007-mingw-fix-build-flags.patch"
patch -p1 -i "${srcdir}/0008-fix-threads.patch"
}
build() {
[[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST}
mkdir ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST}
declare -a extra_config
if check_option "debug" "n"; then
# tests don't compile in Release mode
extra_config+=("-DCMAKE_BUILD_TYPE=Release" "-DWITH_TESTS=OFF" "-DWITH_GFLAGS=OFF")
else
# not tested + needs gflags dependency
extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
fi
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
${MINGW_PREFIX}/bin/cmake \
-G"Ninja" \
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
"${extra_config[@]}" \
-DWITH_ZLIB=ON \
-DWITH_BZ2=ON \
-DWITH_LZ4=ON \
-DWITH_ZSTD=ON \
-DWITH_TBB=OFF \
-DWITH_SNAPPY=ON \
-DUSE_RTTI=ON \
-DPORTABLE=ON \
-DROCKSDB_INSTALL_ON_WINDOWS=ON \
../${_realname}-${pkgver}
ninja
}
package() {
cd "${srcdir}/build-${MINGW_CHOST}"
DESTDIR=${pkgdir} ninja install
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
for _f in "${pkgdir}${MINGW_PREFIX}"/lib/cmake/${_realname}/*.cmake; do
sed -e "s|${PREFIX_WIN}|\$\{_IMPORT_PREFIX\}|g" -i ${_f}
sed -e "s|${MINGW_PREFIX}|\$\{_IMPORT_PREFIX\}|g" -i ${_f}
done
install -Dm644 "${srcdir}/${_realname}-${pkgver}"/LICENSE.Apache "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE
install -Dm644 "${srcdir}/${_realname}-${pkgver}"/LICENSE.leveldb "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE.leveldb
install -Dm644 "${srcdir}/${_realname}-${pkgver}"/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING"
}