about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/tiledb
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/tiledb')
-rw-r--r--nixpkgs/pkgs/development/libraries/tiledb/FindMagic_EP.cmake.patch14
-rw-r--r--nixpkgs/pkgs/development/libraries/tiledb/default.nix56
2 files changed, 57 insertions, 13 deletions
diff --git a/nixpkgs/pkgs/development/libraries/tiledb/FindMagic_EP.cmake.patch b/nixpkgs/pkgs/development/libraries/tiledb/FindMagic_EP.cmake.patch
new file mode 100644
index 000000000000..7a5a01c54588
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/tiledb/FindMagic_EP.cmake.patch
@@ -0,0 +1,14 @@
+diff --git a/FindMagic_EP.cmake b/FindMagic_EP.cmake
+--- a/cmake/Modules/FindMagic_EP.cmake
++++ b/cmake/Modules/FindMagic_EP.cmake
+@@ -126,9 +126,7 @@ if(NOT TILEDB_LIBMAGIC_EP_BUILT)
+     # that was modified by tiledb to also build with cmake for nix
+     ExternalProject_Add(ep_magic
+       PREFIX "externals"
+-      GIT_REPOSITORY "https://github.com/TileDB-Inc/file-windows.git"
+-      GIT_TAG "5.38.2.tiledb"
+-      GIT_SUBMODULES_RECURSE TRUE
++      DOWNLOAD_COMMAND true
+       UPDATE_COMMAND ""
+       CMAKE_ARGS
+         -DCMAKE_INSTALL_PREFIX=${TILEDB_EP_INSTALL_PREFIX}
diff --git a/nixpkgs/pkgs/development/libraries/tiledb/default.nix b/nixpkgs/pkgs/development/libraries/tiledb/default.nix
index ea41b8156f7f..ae182ff46136 100644
--- a/nixpkgs/pkgs/development/libraries/tiledb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tiledb/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+
 , cmake
 , zlib
 , lz4
@@ -12,7 +13,7 @@
 , boost
 , libpqxx
 , clang-tools
-, catch2
+, catch2_3
 , python3
 , gtest
 , doxygen
@@ -20,24 +21,54 @@
 , useAVX2 ? stdenv.hostPlatform.avx2Support
 }:
 
+let
+  # pre-fetch ExternalProject from cmake/Modules/FindMagic_EP.cmake
+  ep-file-windows = fetchFromGitHub {
+    owner = "TileDB-Inc";
+    repo   = "file-windows";
+    rev    = "5.38.2.tiledb";
+    hash = "sha256-TFn30VCuWZr252VN1T5NNCZe2VEN3xQSomS7XxxKGF8=";
+    fetchSubmodules = true;
+  };
+
+in
 stdenv.mkDerivation rec {
   pname = "tiledb";
-  version = "2.8.3";
+  version = "2.18.0";
 
   src = fetchFromGitHub {
     owner = "TileDB-Inc";
     repo = "TileDB";
     rev = version;
-    hash = "sha256-HKMVwrPnk9/mukH3mJ2LEAvA9LBF4PcgBZjbbLhO9qU=";
+    hash = "sha256-y5/kXODzkNKmMn8P+WOOWGy9Htd0nhXbUxmfw/SqSYY=";
   };
 
+  patches = [
+    ./FindMagic_EP.cmake.patch
+  ];
+
+  postPatch = ''
+    # copy pre-fetched external project to directory where it is expected to be
+    mkdir -p build/externals/src
+    cp -a ${ep-file-windows} build/externals/src/ep_magic
+    chmod -R u+w build/externals/src/ep_magic
+
+    # add openssl on path
+    sed -i '49i list(APPEND OPENSSL_PATHS "${openssl.dev}" "${openssl.out}")' \
+      cmake/Modules/FindOpenSSL_EP.cmake
+  '';
+
   # (bundled) blosc headers have a warning on some archs that it will be using
   # unaccelerated routines.
   cmakeFlags = [
-    "-DTILEDB_WERROR=0"
+    "-DTILEDB_VCPKG=OFF"
+    "-DTILEDB_WEBP=OFF"
+    "-DTILEDB_WERROR=OFF"
   ] ++ lib.optional (!useAVX2) "-DCOMPILER_SUPPORTS_AVX2=FALSE";
 
   nativeBuildInputs = [
+    ep-file-windows
+    catch2_3
     clang-tools
     cmake
     python3
@@ -49,7 +80,6 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    catch2
     zlib
     lz4
     bzip2
@@ -61,13 +91,14 @@ stdenv.mkDerivation rec {
     libpqxx
   ];
 
-  # 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
-
-    sed -i '38i list(APPEND OPENSSL_PATHS "${openssl.dev}" "${openssl.out}")' \
-      cmake/Modules/FindOpenSSL_EP.cmake
+  # test commands taken from
+  # https://github.com/TileDB-Inc/TileDB/blob/dev/.github/workflows/unit-test-runs.yml
+  checkPhase = ''
+    runHook preCheck
+    make -C tiledb tests -j$NIX_BUILD_CORES
+    make -C tiledb test ARGS="-R '^unit_'" -R "test_assert"
+    make -C tiledb test ARGS="-R 'test_ci_asserts'"
+    runHook postCheck
   '';
 
   doCheck = true;
@@ -85,5 +116,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = with maintainers; [ rakesh4g ];
   };
-
 }