Skip to content

Conan package #3

@BenjaminNavarro

Description

@BenjaminNavarro

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:

  1. 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.
  2. 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>
  3. 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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions