Unverified Commit aa91bca6 authored by Tobias Mayer's avatar Tobias Mayer
Browse files

arrow-cpp: reformat

parent 4496f7dd
Loading
Loading
Loading
Loading
+179 −153
Original line number Diff line number Diff line
{ stdenv
, lib
, fetchurl
, fetchFromGitHub
, fixDarwinDylibNames
, autoconf
, aws-sdk-cpp
, aws-sdk-cpp-arrow ? aws-sdk-cpp.override {
{
  stdenv,
  lib,
  fetchurl,
  fetchFromGitHub,
  fixDarwinDylibNames,
  autoconf,
  aws-sdk-cpp,
  aws-sdk-cpp-arrow ? aws-sdk-cpp.override {
    apis = [
      "cognito-identity"
      "config"
@@ -14,50 +15,51 @@
      "sts"
      "transfer"
    ];
  }
, boost
, brotli
, bzip2
, c-ares
, cmake
, crc32c
, curl
, flatbuffers
, gflags
, glog
, google-cloud-cpp
, grpc
, gtest
, libbacktrace
, lz4
, minio
, ninja
, nlohmann_json
, openssl
, perl
, protobuf
, python3
, rapidjson
, re2
, snappy
, sqlite
, thrift
, tzdata
, utf8proc
, which
, zlib
, zstd
, testers
, enableShared ? !stdenv.hostPlatform.isStatic
, enableFlight ? true
, enableJemalloc ? !stdenv.isDarwin
, enableS3 ? true
, enableGcs ? !stdenv.isDarwin
  },
  boost,
  brotli,
  bzip2,
  c-ares,
  cmake,
  crc32c,
  curl,
  flatbuffers,
  gflags,
  glog,
  google-cloud-cpp,
  grpc,
  gtest,
  libbacktrace,
  lz4,
  minio,
  ninja,
  nlohmann_json,
  openssl,
  perl,
  protobuf,
  python3,
  rapidjson,
  re2,
  snappy,
  sqlite,
  thrift,
  tzdata,
  utf8proc,
  which,
  zlib,
  zstd,
  testers,
  enableShared ? !stdenv.hostPlatform.isStatic,
  enableFlight ? true,
  enableJemalloc ? !stdenv.isDarwin,
  enableS3 ? true,
  enableGcs ? !stdenv.isDarwin,
}:

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";
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 {
@@ -126,7 +128,8 @@ stdenv.mkDerivation (finalAttrs: {
    autoconf # for vendored jemalloc
    flatbuffers
  ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
  buildInputs = [
  buildInputs =
    [
      boost
      brotli
      bzip2
@@ -145,12 +148,17 @@ stdenv.mkDerivation (finalAttrs: {
      utf8proc
      zlib
      zstd
  ] ++ lib.optionals enableFlight [
    ]
    ++ lib.optionals enableFlight [
      grpc
      openssl
      protobuf
      sqlite
  ] ++ lib.optionals enableS3 [ aws-sdk-cpp-arrow openssl ]
    ]
    ++ lib.optionals enableS3 [
      aws-sdk-cpp-arrow
      openssl
    ]
    ++ lib.optionals enableGcs [
      crc32c
      curl
@@ -165,7 +173,8 @@ stdenv.mkDerivation (finalAttrs: {
      --replace 'discover_tz_dir();' '"${tzdata}/share/zoneinfo";'
  '';

  cmakeFlags = [
  cmakeFlags =
    [
      "-DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON"
      "-DARROW_BUILD_SHARED=${if enableShared then "ON" else "OFF"}"
      "-DARROW_BUILD_STATIC=${if enableShared then "OFF" else "ON"}"
@@ -206,12 +215,15 @@ stdenv.mkDerivation (finalAttrs: {
      "-DARROW_PARQUET=ON"
      "-DPARQUET_BUILD_EXECUTABLES=ON"
      "-DPARQUET_REQUIRE_ENCRYPTION=ON"
  ] ++ lib.optionals (!enableShared) [
    "-DARROW_TEST_LINKAGE=static"
  ] ++ lib.optionals stdenv.isDarwin [
    ]
    ++ lib.optionals (!enableShared) [ "-DARROW_TEST_LINKAGE=static" ]
    ++ lib.optionals stdenv.isDarwin [
      "-DCMAKE_INSTALL_RPATH=@loader_path/../lib" # needed for tools executables
  ] ++ lib.optionals (!stdenv.isx86_64) [ "-DARROW_USE_SIMD=OFF" ]
  ++ lib.optionals enableS3 [ "-DAWSSDK_CORE_HEADER_FILE=${aws-sdk-cpp-arrow}/include/aws/core/Aws.h" ];
    ]
    ++ lib.optionals (!stdenv.isx86_64) [ "-DARROW_USE_SIMD=OFF" ]
    ++ lib.optionals enableS3 [
      "-DAWSSDK_CORE_HEADER_FILE=${aws-sdk-cpp-arrow}/include/aws/core/Aws.h"
    ];

  doInstallCheck = true;
  ARROW_TEST_DATA = lib.optionalString finalAttrs.doInstallCheck "${arrow-testing}/data";
@@ -219,11 +231,13 @@ stdenv.mkDerivation (finalAttrs: {
  GTEST_FILTER =
    let
      # Upstream Issue: https://issues.apache.org/jira/browse/ARROW-11398
      filteredTests = lib.optionals stdenv.hostPlatform.isAarch64 [
      filteredTests =
        lib.optionals stdenv.hostPlatform.isAarch64 [
          "TestFilterKernelWithNumeric/3.CompareArrayAndFilterRandomNumeric"
          "TestFilterKernelWithNumeric/7.CompareArrayAndFilterRandomNumeric"
          "TestCompareKernel.PrimitiveRandomTests"
      ] ++ lib.optionals enableS3 [
        ]
        ++ lib.optionals enableS3 [
          "S3OptionsTest.FromUri"
          "S3RegionResolutionTest.NonExistentBucket"
          "S3RegionResolutionTest.PublicBucket"
@@ -231,7 +245,8 @@ stdenv.mkDerivation (finalAttrs: {
          "TestMinioServer.Connect"
          "TestS3FS.*"
          "TestS3FSGeneric.*"
      ] ++ lib.optionals stdenv.isDarwin [
        ]
        ++ lib.optionals stdenv.isDarwin [
          # TODO: revisit at 12.0.0 or when
          # https://github.com/apache/arrow/commit/295c6644ca6b67c95a662410b2c7faea0920c989
          # is available, see
@@ -243,9 +258,11 @@ stdenv.mkDerivation (finalAttrs: {

  __darwinAllowLocalNetworking = true;

  nativeInstallCheckInputs = [ perl which sqlite ]
    ++ lib.optionals enableS3 [ minio ]
    ++ lib.optionals enableFlight [ python3 ];
  nativeInstallCheckInputs = [
    perl
    which
    sqlite
  ] ++ lib.optionals enableS3 [ minio ] ++ lib.optionals enableFlight [ python3 ];

  installCheckPhase =
    let
@@ -270,7 +287,11 @@ stdenv.mkDerivation (finalAttrs: {
    homepage = "https://arrow.apache.org/docs/cpp/";
    license = licenses.asl20;
    platforms = platforms.unix;
    maintainers = with maintainers; [ tobim veprbl cpcloud ];
    maintainers = with maintainers; [
      tobim
      veprbl
      cpcloud
    ];
    pkgConfigModules = [
      "arrow"
      "arrow-acero"
@@ -288,7 +309,12 @@ stdenv.mkDerivation (finalAttrs: {
    ];
  };
  passthru = {
    inherit enableFlight enableJemalloc enableS3 enableGcs;
    inherit
      enableFlight
      enableJemalloc
      enableS3
      enableGcs
      ;
    tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
  };
})