{ lib , stdenv , fetchFromGitHub , cmake , zlib , lz4 , bzip2 , zstd , spdlog_0 , tbb , openssl , boost , libpqxx , clang-tools , catch2 , python , gtest , doxygen , fixDarwinDylibNames }: stdenv.mkDerivation rec { pname = "tiledb"; version = "2.0.7"; src = fetchFromGitHub { owner = "TileDB-Inc"; repo = "TileDB"; rev = version; sha256 = "00g8ibsbnl4wjfx3qg4qy6s7z6dsj898j0yqfhw1gjr1pb5dsapb"; }; # (bundled) blosc headers have a warning on some archs that it will be using # unaccelerated routines. cmakeFlags = [ "-DTILEDB_WERROR=0" ]; nativeBuildInputs = [ clang-tools cmake python doxygen ]; checkInputs = [ gtest ]; enableParallelBuilding = true; buildInputs = [ catch2 zlib lz4 bzip2 zstd spdlog_0 tbb openssl boost libpqxx ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; # emulate the process of pulling catch down postPatch = '' mkdir -p build/externals/src/ep_catch ln -sf ${catch2}/include/catch2 build/externals/src/ep_catch/single_include ''; doCheck = false; # 9 failing tests due to what seems an overflow installTargets = [ "install-tiledb" "doc" ]; postInstall = lib.optionalString stdenv.isDarwin '' install_name_tool -add_rpath ${tbb}/lib $out/lib/libtiledb.dylib ''; meta = with lib; { description = "TileDB allows you to manage the massive dense and sparse multi-dimensional array data"; homepage = "https://github.com/TileDB-Inc/TileDB"; license = licenses.mit; platforms = platforms.unix; maintainers = with maintainers; [ rakesh4g ]; }; }