Thanks!! I'll answer to the last comment but I appreciate everyone's input!
Hello again Ivan (different neighborhood :)), :))) The "modern" way of building Python libraries/applications seems to be to > use a pyproject.toml. The pyproject.toml specifies a backend build system > that knows how to build the library/application and produce a wheel. Thanks for this pointer. I didn't know about this. As far as how to do this within an existing cmake project, unfortunately, > there doesn't seem to be a clear/easy way. For now, we ended up switching to venvs. I just published a release candidate. https://github.com/NASA-SW-VnV/ikos/discussions/253 Following @salvo's comment, I'm going to try and begin the process of packaging this for debian. I suspect it may be a bit complicated because ikos is two things (a library in C++ and a set of tools in Python) under a trench coat. This is by far not my domain. If anyone is willing to lend a hand, I could definitely use any help that I can get, but I understand that folks are busy and everybody wants help. Cheers, Ivan On Thu, 7 Dec 2023 at 16:12, Scott Talbert <s...@techie.net> wrote: > On Tue, 5 Dec 2023, Ivan Perez wrote: > > > Hi everyone! > > > > I'm currently trying to bring a tool we have at NASA Ames up to speed: > > https://github.com/NASA-SW-VnV/ikos > > > > IKOS is a static analyzer for C. I'm really hoping that IKOS can be > included > > in Debian in the near future. > > > > IKOS is implemented as a C++ library, and a number of python > > tools/wrappers. The tools call mains in modules defined in a python > library > > `ikos`. > > > > As of right now, our CMakeFiles attempt to install everything (by > default) > > under /opt/ikos/. > > > > I'm having lots of issues getting the python portions installed > system-wide. > > I initially upgraded distutils to setuptools, but a recent update is now > > asking that I use a venv. More details and a link to a dockerfile can be > > found here: https://github.com/NASA-SW-VnV/ikos/discussions/241. > > > > While I can hack a solution that "works" (either by making a venv under > the > > target dir or by means of break-system-packages), I'd prefer to use > > recommended practices, and also conform to the way that things are done > in > > Debian/Ubuntu. > > > > What would be the recommended way of installing IKOS system-wide in > Debian? > > Hello again Ivan (different neighborhood :)), > > The "modern" way of building Python libraries/applications seems to be to > use a pyproject.toml. The pyproject.toml specifies a backend build system > that knows how to build the library/application and produce a wheel. > > As far as how to do this within an existing cmake project, unfortunately, > there doesn't seem to be a clear/easy way. The only cmake example I can > think off of the top of my head is cvc5. It still uses setup.py though, > so not a great future-looking example (and I had to patch it to build the > Python bindings in Debian): > https://github.com/cvc5/cvc5/blob/main/src/api/python/CMakeLists.txt > > If you're open to other options for building python libraries, meson might > be something to look into. I haven't used it extensively, though. It > does seem to have better support for building Python though. > > Regards, > Scott