1{ stdenv, symlinkJoin, fetchurl, boost, brotli, cmake, flatbuffers, gtest, gflags, lz4, python, rapidjson, snappy, zlib, zstd }:
2
3stdenv.mkDerivation rec {
4 name = "arrow-cpp-${version}";
5 version = "0.10.0";
6
7 src = fetchurl {
8 url = "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz";
9 sha256 = "0bc4krapz1kzdm16npzmgdz7zvg9lip6rnqbwph8vfn7zji0fcll";
10 };
11
12 sourceRoot = "apache-arrow-${version}/cpp";
13
14 nativeBuildInputs = [ cmake ];
15 buildInputs = [ boost python.pkgs.python python.pkgs.numpy ];
16
17 preConfigure = ''
18 substituteInPlace cmake_modules/FindBrotli.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY
19 substituteInPlace cmake_modules/FindLz4.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY
20 substituteInPlace cmake_modules/FindSnappy.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY
21 '';
22
23 BROTLI_HOME = symlinkJoin { name="brotli-wrap"; paths = [ brotli.lib brotli.dev ]; };
24 FLATBUFFERS_HOME = flatbuffers;
25 GTEST_HOME = gtest;
26 GFLAGS_HOME = gflags;
27 LZ4_HOME = symlinkJoin { name="lz4-wrap"; paths = [ lz4 lz4.dev ]; };
28 RAPIDJSON_HOME = rapidjson;
29 SNAPPY_HOME = symlinkJoin { name="snappy-wrap"; paths = [ snappy snappy.dev ]; };
30 ZLIB_HOME = symlinkJoin { name="zlib-wrap"; paths = [ zlib.dev zlib.static ]; };
31 ZSTD_HOME = zstd;
32
33 cmakeFlags = [
34 "-DARROW_PYTHON=ON"
35 ];
36
37 meta = {
38 description = "A cross-language development platform for in-memory data";
39 homepage = https://arrow.apache.org/;
40 license = stdenv.lib.licenses.asl20;
41 platforms = stdenv.lib.platforms.unix;
42 maintainers = with stdenv.lib.maintainers; [ veprbl ];
43 };
44}