iqtree / piqtree2

a python library that exposes features from iqtree2 - efficient software for phylogenomic inference
GNU General Public License v2.0
6 stars 1 forks source link

Think about where to put the IQTREE2 distribution #1

Closed khiron closed 3 weeks ago

khiron commented 4 weeks ago

Currently IQTREE2 is installed and built in the devcontainer when the docker container is built, just so we can build a set of linux *.a static libraries for the purposes of getting the library working on linux.

This is not the best place long term.

We want the process of cloning this repo to an OS and running

python setup.py build_ext --inplace
python setup.py install

to build IQTREE using the libiqtree flag

cd ~/repos/iqtree2
rm -rf build
mkdir build
cd build
cmake -DBUILD_LIB=ON ..
make -j

Then to copy the resulting static libraries (.a files in linux) to /pyiqtree/libiqtree/OS {linux/mac/windows} Then build a relocatable shared library (.so/.dynlib/.dll) around that static library, and copy it to /pyiqtree/libiqtree Then build the python project for that OS

My instinct is to have a linked submodule in the pyiqtree2 repository that points to the branch of the IQTREE2 repo that implements the library -libiqtree until such time as that code is merged with their main branch. Still need to test if we can specify specific branches in git submodules

rmcar17 commented 3 weeks ago

This has been resolved using a submodule, iqtree2 is built as a part of the wheel generating process with cibuildwheel.