After the Conan BoF at Akademy 2018 (see notes here) we've discovered that we need more information in the metainfo.yaml file for Conan and CMake, in order to reduce duplication.
An initial list of things that we need are:
- Name - the project name
- Licence - the project licence
- URL - the project home page, most likely the API site
- Version - the project version
- Dependencies - a list of projects that this project depends on
- Optional Dependencies - not strictly needed to build this project (e.g. test or docs related dependencies)
- Libraries - that the project links against
- Artifacts - list of packages that result from this project (e.g. libraries, executables)
We still need to figure out how exactly we would parse this information in CMake and Conan, but an initial example for Conan is available here.
The Artifacts list needs also to define how they depend on one another, so if a user uses one of them, the package will know what else it needs, and Conan will download it for the user.