blob: 40d057b3bc65ab5a28cd5258e63938c9790842fa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
# Copyright 2023-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Note: upstream meson port is incomplete.
# https://github.com/apache/arrow/issues/45778
inherit cmake
# arrow.git: testing
ARROW_DATA_GIT_HASH=d2a13712303498963395318a4eb42872e66aead7
# arrow.git: cpp/submodules/parquet-testing
PARQUET_DATA_GIT_HASH=18d17540097fca7c40be3d42c167e6bfad90763c
DESCRIPTION="A cross-language development platform for in-memory data"
HOMEPAGE="
https://arrow.apache.org/
https://github.com/apache/arrow/
"
SRC_URI="
mirror://apache/arrow/arrow-${PV}/${P}.tar.gz
test? (
https://github.com/apache/parquet-testing/archive/${PARQUET_DATA_GIT_HASH}.tar.gz
-> parquet-testing-${PARQUET_DATA_GIT_HASH}.tar.gz
https://github.com/apache/arrow-testing/archive/${ARROW_DATA_GIT_HASH}.tar.gz
-> arrow-testing-${ARROW_DATA_GIT_HASH}.tar.gz
)
"
S="${WORKDIR}/${P}/cpp"
LICENSE="Apache-2.0"
SLOT="0/$(ver_cut 1)"
KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~riscv ~s390 x86"
IUSE="
+brotli bzip2 +compute +dataset +json lz4 +parquet +re2 +snappy ssl
test zlib zstd
"
REQUIRED_USE="
test? (
json
parquet? ( zstd )
)
ssl? ( json )
"
RESTRICT="!test? ( test )"
RDEPEND="
brotli? ( app-arch/brotli:= )
bzip2? ( app-arch/bzip2:= )
compute? ( dev-libs/libutf8proc:= )
dataset? (
dev-libs/libutf8proc:=
)
elibc_musl? ( sys-libs/timezone-data )
lz4? ( app-arch/lz4:= )
parquet? (
dev-libs/libutf8proc:=
dev-libs/thrift:=
ssl? ( dev-libs/openssl:= )
)
re2? ( dev-libs/re2:= )
snappy? ( app-arch/snappy:= )
zlib? ( virtual/zlib:= )
zstd? ( app-arch/zstd:= )
"
DEPEND="
${RDEPEND}
dev-cpp/xsimd
>=dev-libs/boost-1.81.0
json? ( dev-libs/rapidjson )
test? (
dev-cpp/gflags
dev-cpp/gtest
)
"
src_prepare() {
# use Gentoo CXXFLAGS, specify docdir at src_configure.
sed -i \
-e '/SetupCxxFlags/d' \
-e '/set(ARROW_DOC_DIR.*)/d' \
CMakeLists.txt \
|| die
cmake_src_prepare
}
src_configure() {
local mycmakeargs=(
-DARROW_BUILD_STATIC=OFF
-DARROW_BUILD_TESTS=$(usex test ON OFF)
-DARROW_COMPUTE=$(usex compute ON OFF)
-DARROW_CSV=ON
-DARROW_DATASET=$(usex dataset ON OFF)
-DARROW_DEPENDENCY_SOURCE=SYSTEM
-DARROW_DOC_DIR=share/doc/${PF}
-DARROW_FILESYSTEM=ON
-DARROW_HDFS=ON
-DARROW_JEMALLOC=OFF
-DARROW_JSON=$(usex json ON OFF)
-DARROW_MIMALLOC=OFF
-DARROW_PARQUET=$(usex parquet ON OFF)
-DPARQUET_REQUIRE_ENCRYPTION=$(usex ssl ON OFF)
-DARROW_USE_CCACHE=OFF
-DARROW_USE_SCCACHE=OFF
-DARROW_WITH_BROTLI=$(usex brotli ON OFF)
-DARROW_WITH_BZ2=$(usex bzip2 ON OFF)
-DARROW_WITH_LZ4=$(usex lz4 ON OFF)
-DARROW_WITH_RE2=$(usex re2 ON OFF)
-DARROW_WITH_SNAPPY=$(usex snappy ON OFF)
-DARROW_WITH_ZLIB=$(usex zlib ON OFF)
-DARROW_WITH_ZSTD=$(usex zstd ON OFF)
-DCMAKE_CXX_STANDARD=17
)
cmake_src_configure
}
src_test() {
local -x PARQUET_TEST_DATA="${WORKDIR}/parquet-testing-${PARQUET_DATA_GIT_HASH}/data"
local -x ARROW_TEST_DATA="${WORKDIR}/arrow-testing-${ARROW_DATA_GIT_HASH}/data"
cmake_src_test
}
src_install() {
cmake_src_install
if use test; then
cd "${D}"/usr/$(get_libdir) || die
rm -r cmake/ArrowTesting || die
rm libarrow_testing* || die
rm pkgconfig/arrow-testing.pc || die
fi
}
|