Build TileDB-VCF-Py on Windows without conda #766
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Goal: Run Windows CI job without using conda
Motivation: We haven't been able to build the TileDB-VCF conda binary for months due to problems linking to fmt/spdlog from conda-forge. Ideally these sort of conda-specific problems should be handled in the feedstock repo, not here. It wasn't a pressing concern until recently when @gspowley started work to migrate to numpy 2, which included updating pyarrow (#762 (comment)). Now the Windows CI build is failing due to similar fmt/spdlog linking errors.
Status: I can build libtiledbvcf and tiledbvcf-py on Windows without conda. However, I can't
import tiledbvcf
because it can't find the libtiledbvcf DLL (strangely, since it is installed in the Python package).More details:
python -m pip install -v apis\python[test,dev]
. However, this failed because the following wouldn't execute on Windows:TileDB-VCF/apis/python/CMakeLists.txt
Lines 55 to 61 in b9fd438
apis/python/dist_links/libtiledbvcf/build/externals/install
. This caused me headaches when I tried building libtiledbvcf from the root of the directory. I tried a few different ways to build from the symlinked subdirectoryapis/python/dist_links/libtiledbvcf
, but symlinks are different on Windows, so I abandoned thisTileDB-VCF/apis/python/CMakeLists.txt
Lines 104 to 107 in b9fd438
TileDB_DIR=.\libtiledbvcf\build\externals\install\lib\cmake\TileDB\
, so that the Python CMake routine could fine TileDBtiledb.lib
is copied to the Python package and nottiledb.dll
TileDB-VCF/apis/python/src/tiledbvcf/__init__.py
Line 9 in b9fd438