Skip to content

Commit

Permalink
add tiledbsoma
Browse files Browse the repository at this point in the history
  • Loading branch information
hadim committed Jan 13, 2025
1 parent 4624282 commit 6cbea81
Show file tree
Hide file tree
Showing 2 changed files with 215 additions and 0 deletions.
55 changes: 55 additions & 0 deletions recipes/tiledbsoma/fix-setup-py-version-and-include.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
diff --git a/apis/python/setup.py b/apis/python/setup.py
index 4201614a..52c76cd8 100644
--- a/apis/python/setup.py
+++ b/apis/python/setup.py
@@ -353,5 +353,5 @@ setuptools.setup(
},
python_requires=">=3.9",
cmdclass={"build_ext": build_ext, "bdist_wheel": bdist_wheel},
- version=version.get_version(),
+ version=os.environ["PKG_VERSION"],
)
diff --git a/libtiledbsoma/src/CMakeLists.txt b/libtiledbsoma/src/CMakeLists.txt
index a6d233df..095484b3 100644
--- a/libtiledbsoma/src/CMakeLists.txt
+++ b/libtiledbsoma/src/CMakeLists.txt
@@ -258,6 +258,13 @@ install(FILES
DESTINATION "include/tiledbsoma/nlohmann"
)

+install(FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/external/include/thread_pool/producer_consumer_queue.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/external/include/thread_pool/status.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/external/include/thread_pool/thread_pool.h
+ DESTINATION "include/tiledbsoma/thread_pool"
+)
+

# ###########################################################
# API symbol exports
diff --git a/libtiledbsoma/src/utils/fastercsx.h b/libtiledbsoma/src/utils/fastercsx.h
index 7cb460ae..7584b65c 100644
--- a/libtiledbsoma/src/utils/fastercsx.h
+++ b/libtiledbsoma/src/utils/fastercsx.h
@@ -35,7 +35,7 @@
#include <cstdint>
#include <format>
#include <numeric>
-#include "span/span.hpp"
+#include "tiledbsoma/soma/span/span.hpp"

#include "parallel_functions.h"

diff --git a/libtiledbsoma/src/utils/parallel_functions.h b/libtiledbsoma/src/utils/parallel_functions.h
index 77d3ad41..b408b5f7 100644
--- a/libtiledbsoma/src/utils/parallel_functions.h
+++ b/libtiledbsoma/src/utils/parallel_functions.h
@@ -33,7 +33,7 @@
#ifndef TILEDB_PARALLEL_FUNCTIONS_H
#define TILEDB_PARALLEL_FUNCTIONS_H

-#include <thread_pool/thread_pool.h>
+#include "tiledbsoma/thread_pool/thread_pool.h"

#include <algorithm>
#include <cassert>
160 changes: 160 additions & 0 deletions recipes/tiledbsoma/recipe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
context:
name: tiledbsoma
version: 1.15.3

recipe:
name: ${{ name|lower }}
version: ${{ version }}

source:
url: https://github.com/single-cell-data/TileDB-SOMA/archive/refs/tags/${{ version }}.zip
sha256: 1c9b60b14c900e252c30586fcadaeddd455d58df624112ecea62eef24212dc61
patches:
# NOTE #1: use `PKG_VERSION` in setup.py instead of version.py which is failing when not executed from a git repository.
# NOTE #2: fix failing includes when building a conda package
- fix-setup-py-version-and-include.patch

build:
number: 0
skip: win

outputs:
# C++ library
- package:
name: libtiledbsoma

build:
script: |
cmake -G Ninja \
${CMAKE_ARGS} \
-DCMAKE_BUILD_TYPE="Release" \
-DCMAKE_INSTALL_PREFIX=${PREFIX} \
-DDOWNLOAD_TILEDB_PREBUILT=OFF \
-DOVERRIDE_INSTALL_PREFIX=OFF \
-DFORCE_BUILD_TILEDB=OFF \
-DTILEDBSOMA_BUILD_PYTHON=ON \
-DTILEDBSOMA_BUILD_CLI=ON \
-DTILEDBSOMA_ENABLE_TESTING=OFF \
-DTILEDBSOMA_ENABLE_WERROR=OFF \
-DTileDB_DIR="${PREFIX}" \
-B build/ \
-S $SRC_DIR/libtiledbsoma
cmake --build build/ -j ${CPU_COUNT}
cmake --build build/ -j ${CPU_COUNT} --target install-libtiledbsoma
requirements:
build:
- ${{ compiler('cxx') }}
- ${{ stdlib("c") }}
- cmake
- ninja
- pkg-config
host:
- tiledb
run_exports:
- ${{ pin_subpackage('libtiledbsoma', upper_bound='x.x.x') }}

tests:
- package_contents:
files:
- lib/cmake/tiledbsoma/TileDBSomaConfig.cmake
- lib/cmake/tiledbsoma/TileDBSomaTargets-release.cmake
- lib/cmake/tiledbsoma/TileDBSomaTargets.cmake
bin:
- tdbsoma
lib:
- tiledbsoma
include:
- tiledbsoma/nanoarrow/nanoarrow.h
- tiledbsoma/nanoarrow/nanoarrow.hpp
- tiledbsoma/nlohmann/json.hpp
- tiledbsoma/reindexer/reindexer.h
- tiledbsoma/soma/array_buffers.h
- tiledbsoma/soma/column_buffer.h
- tiledbsoma/soma/enums.h
- tiledbsoma/soma/logger_public.h
- tiledbsoma/soma/managed_query.h
- tiledbsoma/soma/soma_array.h
- tiledbsoma/soma/soma_collection.h
- tiledbsoma/soma/soma_context.h
- tiledbsoma/soma/soma_dataframe.h
- tiledbsoma/soma/soma_dense_ndarray.h
- tiledbsoma/soma/soma_experiment.h
- tiledbsoma/soma/soma_geometry_dataframe.h
- tiledbsoma/soma/soma_group.h
- tiledbsoma/soma/soma_measurement.h
- tiledbsoma/soma/soma_multiscale_image.h
- tiledbsoma/soma/soma_object.h
- tiledbsoma/soma/soma_point_cloud_dataframe.h
- tiledbsoma/soma/soma_scene.h
- tiledbsoma/soma/soma_sparse_ndarray.h
- tiledbsoma/soma/span/span.hpp
- tiledbsoma/tiledbsoma
- tiledbsoma/tiledbsoma_export.h
- tiledbsoma/utils/arrow_adapter.h
- tiledbsoma/utils/common.h
- tiledbsoma/utils/fastercsx.h
- tiledbsoma/utils/parallel_functions.h
- tiledbsoma/utils/stats.h
- tiledbsoma/utils/util.h
- tiledbsoma/utils/version.h

# python bindings
- package:
name: tiledbsoma

build:
script: |
export TILEDB_PATH="$PREFIX"
export TILEDBSOMA_PATH="$PREFIX"
${{ PYTHON }} -m pip install apis/python/ -vv --no-deps --no-build-isolation
requirements:
build:
- if: build_platform != target_platform
then:
- python
- cross-python_${{ target_platform }}
- pybind11 >=2.10.0

- ${{ compiler('cxx') }}
- ${{ stdlib("c") }}
- cmake
- make
host:
- python
- setuptools >=70.1
- pip
- pybind11 >=2.10.0
# libraries
- libtiledbsoma
- tiledb
run:
- python
- anndata >=0.10.1
- attrs >=22.2
- numpy
- pandas
- pyarrow
- scanpy >=1.9.2
- scipy
- somacore ==1.0.26
- typing_extensions

tests:
- python:
imports:
- tiledbsoma
pip_check: true

about:
summary: Python and R SOMA APIs using TileDB's cloud-native format. Ideal for single-cell data at any scale.
license: MIT
license_file: LICENSE
homepage: https://github.com/single-cell-data/TileDB-SOMA/

extra:
feedstock-name: tiledbsoma
recipe-maintainers:
- hadim

0 comments on commit 6cbea81

Please sign in to comment.