assorthead vendors an assortment of header-only C++ libraries for compilation of downstream packages. This centralizes the acquisition and versioning of these libraries for a smoother development experience. It is primarily intended for the various BiocPy packages with C++ extensions, e.g., scranpy, singler.
Developers can install assorthead via the usual pip
commands:
pip install assorthead
We can then add all headers to the compiler's search path,
using the include_dirs
argument in the setup()
command in our setup.py
:
setup(
use_scm_version={"version_scheme": "no-guess-dev"},
ext_modules=[
Extension(
"foo.core",
[
"src/lib/foo.cpp",
"src/lib/bar.cpp",
],
include_dirs=[
assorthead.includes(),
],
language="c++",
extra_compile_args=[
"-std=c++17",
],
)
],
)
Of course, this is only relevant for developers; all going well, end users should never be aware of these details.
See extern/manifest.csv
for the list of vendored libraries and their versions.