arrow-cpp: add GCS feature flag (#144610)

main
Phillip Cloud 3 years ago committed by GitHub
parent a2f2e10e9e
commit ea5437f80c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 30
      pkgs/development/libraries/arrow-cpp/default.nix

@ -3,21 +3,26 @@
, fetchurl
, fetchFromGitHub
, fixDarwinDylibNames
, abseil-cpp
, autoconf
, aws-sdk-cpp
, boost
, brotli
, c-ares
, cmake
, crc32c
, curl
, flatbuffers
, gflags
, glog
, google-cloud-cpp
, grpc
, gtest
, jemalloc
, libnsl
, lz4
, minio
, nlohmann_json
, openssl
, perl
, protobuf
@ -33,9 +38,17 @@
, zstd
, enableShared ? !stdenv.hostPlatform.isStatic
, enableFlight ? !stdenv.isDarwin # libnsl is not supported on darwin
, enableS3 ? true
# boost/process is broken in 1.69 on darwin, but fixed in 1.70 and
# non-existent in older versions
# see https://github.com/boostorg/process/issues/55
, enableS3 ? (!stdenv.isDarwin) || (lib.versionOlder boost.version "1.69" || lib.versionAtLeast boost.version "1.70")
, enableGcs ? !stdenv.isDarwin # google-cloud-cpp is not supported on darwin
}:
assert lib.asserts.assertMsg
((enableS3 && stdenv.isDarwin) -> (lib.versionOlder boost.version "1.69" || lib.versionAtLeast boost.version "1.70"))
"S3 on Darwin requires Boost != 1.69";
let
arrow-testing = fetchFromGitHub {
owner = "apache";
@ -115,7 +128,14 @@ stdenv.mkDerivation rec {
libnsl
openssl
protobuf
] ++ lib.optionals enableS3 [ aws-sdk-cpp openssl ];
] ++ lib.optionals enableS3 [ aws-sdk-cpp openssl ]
++ lib.optionals enableGcs [
abseil-cpp
crc32c
curl
google-cloud-cpp
nlohmann_json
];
preConfigure = ''
patchShebangs build-support/
@ -152,6 +172,7 @@ stdenv.mkDerivation rec {
"-DPARQUET_BUILD_EXECUTABLES=ON"
"-DARROW_FLIGHT=${if enableFlight then "ON" else "OFF"}"
"-DARROW_S3=${if enableS3 then "ON" else "OFF"}"
"-DARROW_GCS=${if enableGcs then "ON" else "OFF"}"
] ++ lib.optionals (!enableShared) [
"-DARROW_TEST_LINKAGE=static"
] ++ lib.optionals stdenv.isDarwin [
@ -183,6 +204,9 @@ stdenv.mkDerivation rec {
"TestS3FS.OpenOutputStreamMetadata"
"TestS3FS.OpenOutputStreamSyncWrites"
"TestS3FSGeneric.*"
] ++ lib.optionals enableGcs [
"GcsFileSystem.FileSystemCompare"
"GcsIntegrationTest.*"
];
in
lib.optionalString doInstallCheck "-${builtins.concatStringsSep ":" filteredTests}";
@ -199,7 +223,7 @@ stdenv.mkDerivation rec {
''
runHook preInstallCheck
ctest -L unittest -V \
ctest -L unittest \
--exclude-regex '^(${builtins.concatStringsSep "|" excludedTests})$'
runHook postInstallCheck

Loading…
Cancel
Save