-
Notifications
You must be signed in to change notification settings - Fork 18
Description
I wanted to give Epigraph a try and since I get my other dependencies using Conan I thought it would be nice to make a Conan package for Epigraph.
So I tried to make one but I stumble on a few problems due to how the project is organized and how its dependencies are managed:
- Use of Git submodules: to follow the Conan philosophy it would be better to have the solvers as Conan packages rather than submodules. For this, Epigraph needs a way to rely on
find_pakage()for the solvers rather than pulling them directly. A CMake option could make this possible. - Include paths: the solvers' headers are included like
#include <solver/include/file.h>which is non standard and doesn't respect how these files are installed (<prefix>/include/solver/file.h) which requires#include <solver/file.h>. Also, Epigraph doesn't use a subfolder for its headers which might lead to clashes, i.e#include <epigraph/variable.hpp>would be better than#include <variable.hpp> - No CMake install rules for Epigraph: running the CMake install target will properly install the solvers (headers + libs) but not Epigraph itself.
For now I'll use Epigraph as a submodule even if it's not ideal but if you are interested in Conan support, I'd encourage you to address the issues I raised. Basically, you need to make sure that Epigraph can be compiled using system dependencies (relying on find_package) and that it installs itself properly inside CMAKE_INSTALL_PREFIX when running the install target. If this works, I can make the Conan packages for Epigraph and its solvers (if they don't have one already).