diff options
author | Dmitry Kalinkin <dmitry.kalinkin@gmail.com> | 2018-10-13 03:12:26 -0500 |
---|---|---|
committer | Frederik Rietdijk <freddyrietdijk@fridh.nl> | 2018-10-13 10:12:26 +0200 |
commit | 4ed993367f085b8881e71cb86ed1e31800d62279 (patch) | |
tree | b9a16b144f3e35421dab9b1cfd3ce044640f4ab8 /pkgs/development/libraries/arrow-cpp | |
parent | 045a4a4b724fe344ad1f65edff44b8d824e3e79e (diff) | |
download | nixpkgs-4ed993367f085b8881e71cb86ed1e31800d62279.tar nixpkgs-4ed993367f085b8881e71cb86ed1e31800d62279.tar.gz nixpkgs-4ed993367f085b8881e71cb86ed1e31800d62279.tar.bz2 nixpkgs-4ed993367f085b8881e71cb86ed1e31800d62279.tar.lz nixpkgs-4ed993367f085b8881e71cb86ed1e31800d62279.tar.xz nixpkgs-4ed993367f085b8881e71cb86ed1e31800d62279.tar.zst nixpkgs-4ed993367f085b8881e71cb86ed1e31800d62279.zip |
arrow-cpp: 0.10.0 -> 0.11.0 (#48066)
* arrow-cpp: 0.10.0 -> 0.11.0 * arrow-cpp: enable testing
Diffstat (limited to 'pkgs/development/libraries/arrow-cpp')
-rw-r--r-- | pkgs/development/libraries/arrow-cpp/default.nix | 49 | ||||
-rw-r--r-- | pkgs/development/libraries/arrow-cpp/double-conversion_cmake.patch | 43 |
2 files changed, 84 insertions, 8 deletions
diff --git a/pkgs/development/libraries/arrow-cpp/default.nix b/pkgs/development/libraries/arrow-cpp/default.nix index 16fc7e0c960..77ce77dee5a 100644 --- a/pkgs/development/libraries/arrow-cpp/default.nix +++ b/pkgs/development/libraries/arrow-cpp/default.nix @@ -1,42 +1,75 @@ -{ stdenv, symlinkJoin, fetchurl, boost, brotli, cmake, flatbuffers, gtest, gflags, lz4, python, rapidjson, snappy, zlib, zstd }: +{ stdenv, symlinkJoin, fetchurl, fetchFromGitHub, boost, brotli, cmake, double-conversion, flatbuffers, gflags, glog, gtest, lz4, perl, python, rapidjson, snappy, thrift, which, zlib, zstd }: + +let + parquet-testing = fetchFromGitHub { + owner = "apache"; + repo = "parquet-testing"; + rev = "46ae2605c2de306f5740587107dcf333a527f2d1"; + sha256 = "07ps745gas2zcfmg56m3vwl63yyzmalnxwb5dc40vd004cx5hdik"; + }; +in stdenv.mkDerivation rec { name = "arrow-cpp-${version}"; - version = "0.10.0"; + version = "0.11.0"; src = fetchurl { url = "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz"; - sha256 = "0bc4krapz1kzdm16npzmgdz7zvg9lip6rnqbwph8vfn7zji0fcll"; + sha256 = "0pc5pqr0dbnx8s1ji102dhw9bbrsq3ml4ac3mmi2022yfyizlf0q"; }; sourceRoot = "apache-arrow-${version}/cpp"; - # patch to fix python-test - patches = [ ./darwin.patch ]; + patches = [ + # fix ARROW-3467 + ./double-conversion_cmake.patch + + # patch to fix python-test + ./darwin.patch + ]; nativeBuildInputs = [ cmake ]; - buildInputs = [ boost python.pkgs.python python.pkgs.numpy ]; + buildInputs = [ boost double-conversion glog python.pkgs.python python.pkgs.numpy ]; preConfigure = '' + substituteInPlace cmake_modules/FindThrift.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY substituteInPlace cmake_modules/FindBrotli.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY + substituteInPlace cmake_modules/FindGLOG.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY substituteInPlace cmake_modules/FindLz4.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY substituteInPlace cmake_modules/FindSnappy.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY + + patchShebangs build-support/ ''; BROTLI_HOME = symlinkJoin { name="brotli-wrap"; paths = [ brotli.lib brotli.dev ]; }; + DOUBLE_CONVERSION_HOME = double-conversion; FLATBUFFERS_HOME = flatbuffers; - GTEST_HOME = gtest; GFLAGS_HOME = gflags; + GLOG_HOME = glog; + GTEST_HOME = gtest; LZ4_HOME = symlinkJoin { name="lz4-wrap"; paths = [ lz4 lz4.dev ]; }; RAPIDJSON_HOME = rapidjson; SNAPPY_HOME = symlinkJoin { name="snappy-wrap"; paths = [ snappy snappy.dev ]; }; - ZLIB_HOME = symlinkJoin { name="zlib-wrap"; paths = [ zlib.dev zlib.static ]; }; + THRIFT_HOME = thrift; + ZLIB_HOME = symlinkJoin { name="zlib-wrap"; paths = [ zlib zlib.dev ]; }; ZSTD_HOME = zstd; cmakeFlags = [ "-DARROW_PYTHON=ON" + "-DARROW_PARQUET=ON" ]; + doInstallCheck = true; + PARQUET_TEST_DATA = if doInstallCheck then "${parquet-testing}/data" else null; + installCheckInputs = [ perl which ]; + installCheckPhase = (stdenv.lib.optionalString stdenv.isDarwin '' + for f in release/*-test; do + install_name_tool -add_rpath "$out"/lib "$f" + done + '') + '' + ctest -L unittest -V + ''; + meta = { description = "A cross-language development platform for in-memory data"; homepage = https://arrow.apache.org/; diff --git a/pkgs/development/libraries/arrow-cpp/double-conversion_cmake.patch b/pkgs/development/libraries/arrow-cpp/double-conversion_cmake.patch new file mode 100644 index 00000000000..336fdde9e8f --- /dev/null +++ b/pkgs/development/libraries/arrow-cpp/double-conversion_cmake.patch @@ -0,0 +1,43 @@ +diff --git a/CMakeLists.txt b/cpp/CMakeLists.txt +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -615,7 +615,7 @@ endif(UNIX) + set(ARROW_LINK_LIBS) + + # Libraries to link statically with libarrow.so +-set(ARROW_STATIC_LINK_LIBS double-conversion) ++set(ARROW_STATIC_LINK_LIBS ${DOUBLE_CONVERSION_TARGET}) + + if (ARROW_WITH_BROTLI) + SET(ARROW_STATIC_LINK_LIBS +@@ -694,7 +694,7 @@ else () + set(ARROW_MIN_TEST_LIBS + arrow_shared + ${ARROW_LINK_LIBS} +- double-conversion ++ ${DOUBLE_CONVERSION_TARGET} + ${BOOST_SYSTEM_LIBRARY} + ${BOOST_FILESYSTEM_LIBRARY} + ${BOOST_REGEX_LIBRARY} +diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake +--- a/cmake_modules/ThirdpartyToolchain.cmake ++++ b/cmake_modules/ThirdpartyToolchain.cmake +@@ -469,14 +469,16 @@ if("${DOUBLE_CONVERSION_HOME}" STREQUAL "") + set(DOUBLE_CONVERSION_VENDORED 1) + else() + find_package(double-conversion REQUIRED) ++ set(DOUBLE_CONVERSION_TARGET double-conversion::double-conversion) + set(DOUBLE_CONVERSION_VENDORED 0) + endif() + + include_directories(SYSTEM ${DOUBLE_CONVERSION_INCLUDE_DIR}) +-ADD_THIRDPARTY_LIB(double-conversion +- STATIC_LIB ${DOUBLE_CONVERSION_STATIC_LIB}) + + if (DOUBLE_CONVERSION_VENDORED) ++ ADD_THIRDPARTY_LIB(double-conversion ++ STATIC_LIB ${DOUBLE_CONVERSION_STATIC_LIB}) ++ set(DOUBLE_CONVERSION_TARGET double-conversion) + add_dependencies(arrow_dependencies double-conversion_ep) + endif() + |