blob: 79518f22b320cead34a099bf7370258a7683d56a [file] [log] [blame]
# Maintainer: Kouhei Sutou <kou@clear-code.com>
_realname=arrow
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=4.0.1
pkgrel=1
pkgdesc="Apache Arrow is a cross-language development platform for in-memory data (mingw-w64)"
arch=(any)
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
url="https://arrow.apache.org/"
license=("Apache-2.0")
depends=("${MINGW_PACKAGE_PREFIX}-aws-sdk-cpp"
"${MINGW_PACKAGE_PREFIX}-brotli"
"${MINGW_PACKAGE_PREFIX}-bzip2"
"${MINGW_PACKAGE_PREFIX}-double-conversion"
"${MINGW_PACKAGE_PREFIX}-flatbuffers"
"${MINGW_PACKAGE_PREFIX}-gflags"
"${MINGW_PACKAGE_PREFIX}-gobject-introspection"
"${MINGW_PACKAGE_PREFIX}-grpc"
"${MINGW_PACKAGE_PREFIX}-libutf8proc"
"${MINGW_PACKAGE_PREFIX}-lz4"
"${MINGW_PACKAGE_PREFIX}-openssl"
"${MINGW_PACKAGE_PREFIX}-protobuf"
"${MINGW_PACKAGE_PREFIX}-python-numpy"
"${MINGW_PACKAGE_PREFIX}-re2"
"${MINGW_PACKAGE_PREFIX}-snappy"
"${MINGW_PACKAGE_PREFIX}-thrift"
"${MINGW_PACKAGE_PREFIX}-uriparser"
"${MINGW_PACKAGE_PREFIX}-zlib"
"${MINGW_PACKAGE_PREFIX}-zstd")
makedepends=("${MINGW_PACKAGE_PREFIX}-boost"
"${MINGW_PACKAGE_PREFIX}-clang"
"${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-gcc"
"${MINGW_PACKAGE_PREFIX}-gtk-doc"
"${MINGW_PACKAGE_PREFIX}-llvm"
"${MINGW_PACKAGE_PREFIX}-meson"
"${MINGW_PACKAGE_PREFIX}-ninja"
"${MINGW_PACKAGE_PREFIX}-polly"
"${MINGW_PACKAGE_PREFIX}-rapidjson")
options=("staticlibs" "strip" "!buildflags")
source=("apache-arrow-${pkgver}.tar.gz"::"https://www.apache.org/dyn/closer.lua?action=download&filename=arrow/arrow-${pkgver}/apache-arrow-${pkgver}.tar.gz")
sha256sums=("75ccbfa276b925c6b1c978a920ff2f30c4b0d3fdf8b51777915b6f69a211896e")
cmake_build_type=release
meson_build_type=debugoptimized
source_dir=apache-${_realname}-${pkgver}
cpp_build_dir=build-${CARCH}-cpp
c_glib_build_dir=build-${CARCH}-c-glib
build() {
[[ -d ${cpp_build_dir} ]] && rm -rf ${cpp_build_dir}
mkdir -p ${cpp_build_dir}
pushd ${cpp_build_dir}
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
${MINGW_PREFIX}/bin/cmake.exe \
../${source_dir}/cpp \
-DARROW_BUILD_UTILITIES=ON \
-DARROW_FLIGHT=ON \
-DARROW_GANDIVA=ON \
-DARROW_PACKAGE_KIND=${MINGW_PACKAGE_PREFIX} \
-DARROW_PACKAGE_PREFIX=${MINGW_PREFIX} \
-DARROW_PARQUET=ON \
-DARROW_PYTHON=ON \
-DARROW_S3=ON \
-DARROW_USE_GLOG=OFF \
-DARROW_WITH_BROTLI=ON \
-DARROW_WITH_BZ2=ON \
-DARROW_WITH_LZ4=ON \
-DARROW_WITH_SNAPPY=ON \
-DARROW_WITH_ZLIB=ON \
-DARROW_WITH_ZSTD=ON \
-DBOOST_ROOT=${MINGW_PREFIX} \
-DCMAKE_BUILD_TYPE=${cmake_build_type} \
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
-DCMAKE_UNITY_BUILD=ON \
-DPARQUET_BUILD_EXECUTABLES=ON \
-DPARQUET_REQUIRE_ENCRYPTION=ON \
-G Ninja
ninja
popd
[[ -d ${c_glib_build_dir} ]] && rm -rf ${c_glib_build_dir}
MSYS2_ARG_CONV_EXCL="--prefix=" \
meson \
${c_glib_build_dir} \
${source_dir}/c_glib \
--buildtype=${meson_build_type} \
--prefix=${MINGW_PREFIX} \
-Darrow_cpp_build_dir=$(pwd)/${cpp_build_dir} \
-Darrow_cpp_build_type=${cmake_build_type} \
-Dgtk_doc=true
sed -i'' -s 's/\r//g' ${c_glib_build_dir}/arrow-glib/version.h
PATH=$(pwd)/${cpp_build_dir}/${cmake_build_type}:$PATH \
ninja -C ${c_glib_build_dir}
}
check() {
# TODO
# make -C ${cpp_build_dir} test
# PATH=$(pwd)/${c_glib_build_dir}/arrow-glib:$(pwd)/${cpp_build_dir}/${cmake_build_type}:$PATH \
# ninja -C ${c_glib_build_dir} test
:
}
package() {
DESTDIR="${pkgdir}" ninja -C ${cpp_build_dir} install
PATH=$(pwd)/${c_glib_build_dir}/arrow-glib:$(pwd)/${cpp_build_dir}/${cmake_build_type}:$PATH \
DESTDIR="${pkgdir}" ninja -C ${c_glib_build_dir} install
# Remove full path reference
local _PREFIX_WIN="$(cygpath -wm ${MINGW_PREFIX})"
for pcfile in "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/*.pc; do
sed -s "s|${_PREFIX_WIN}|${MINGW_PREFIX}|g" -i "${pcfile}"
done
for cmfile in "${pkgdir}${MINGW_PREFIX}"/lib/cmake/arrow/*.cmake; do
sed -e "s|${_PREFIX_WIN}|\$\{_IMPORT_PREFIX\}|g" -i "${cmfile}"
done
}