astro-informatics / purify

Next-generation radio interferometric imaging.
https://astro-informatics.github.io/purify
GNU General Public License v2.0
16 stars 11 forks source link

Use Conan for installing dependencies #302

Closed SJaffa closed 1 year ago

SJaffa commented 2 years ago

Starting from the development branch, first issue was the same spdlog error as in sopt

SJaffa commented 2 years ago

boost/1.78.0: WARN: Boost component 'fiber' is missing libraries. Try building boost with '-o boost:without_fiber'. (Option is not guaranteed to exist) ERROR: boost/1.78.0: Error in package_info() method, line 1592 raise ConanException("These libraries were expected to be built, but were not built: {}".format(non_built)) ConanException: These libraries were expected to be built, but were not built: {'boost_fiber'}

tkoskela commented 2 years ago

We need to close https://github.com/astro-informatics/sopt/issues/279 before we can make progress with this

tkoskela commented 1 year ago

The algo_factory that creates the ImagingForwardBackward object in purify is templated by the algorithm type https://github.com/astro-informatics/purify/blob/5833dbd35f214212aa17c368984bcae180cf5dee/cpp/main.cc#L440 but the template parameter is checked by an if statement and there's a different branch for each algorithm class https://github.com/astro-informatics/purify/blob/5833dbd35f214212aa17c368984bcae180cf5dee/cpp/purify/algorithm_factory.h#L142

:zany_face:

SJaffa commented 1 year ago

The Cmake flags for building SOPT are specified in cmakefiles/LookUpSopt.cmake so we can add an option in the conanfile.py to turn cppflow on and off and pass that through to SOPT like they do with openmp and logging

tkoskela commented 1 year ago

TODO: Add these instructions to README

To build purify using this PR and https://github.com/astro-informatics/sopt/pull/350

mmcleod89 commented 1 year ago

Looking at things here I think that this is up to date now with what I expect, keeping the forward-backward tensorflow test out of it for a separate PR. 👍

tkoskela commented 1 year ago

Ok, from my point of view the only outstanding item is updating the documentation workflow. I think everything else looks good to go.

SJaffa commented 1 year ago

I've checked the installation instructions in the readme work for me from a clean setup, I've updated the documentation workflow (although not tested this as it only runs when we push to development branch) and the other couple of outdated bits in the readme I've made new issues as they can be solved separately. So if someone could check over the docs workflow I think this is finally ready to merge! (assuming the tests pass...)