steinwurf / recycle

Simple resource pool for recycling resources in C++
BSD 3-Clause "New" or "Revised" License
63 stars 23 forks source link

Add CMake package config #36

Open globberwops opened 1 year ago

globberwops commented 1 year ago

Fixes #35

globberwops commented 1 year ago

Ping @jpihl @mortenvp @techbech @loglund

DerThorsten commented 1 year ago

Ping @jpihl @mortenvp @techbech @loglund It would really be nice to have this PR merged as this would simplify the conda-forge build https://github.com/conda-forge/staged-recipes/pull/22527

jpihl commented 1 year ago

Hi @globberwops,

Sorry for the radio silence and thanks for your extensive perseverance 👍

Non of us are very familiar with vcpkg not do we understand the need for your changes in the cmake file. Would you care to elaborate on the motivation for the changes?

All the best

Jeppe

globberwops commented 1 year ago

Hi @jpihl, no worries! Thanks for your reply.

These changes are only loosely related to vcpkg. The primary purpose of a CMake package config is for CMake to be able to find the lib with a call to find_package in a downstream project, see cmake-packages(7).

Once installed, CMake will be able to find the file recycle-config.cmake, which in turn includes recycle-targets.cmake. The latter defines imported targets that can be linked in the downstream project to provide the location of the lib and the corresponding include path.

vcpkg is just one of the package managers that rely on CMake to provide package config files. However, vcpkg is by no means needed to consume the package configs.

I hope that helps.

Cheers, Martin

jpihl commented 1 year ago

Thanks, that cleared up a few things. I still need to understand all the changes before I feel comfortable merging this one. I will add a few comments inline, and I hope you'll be able to help me understand everything. As I mentioned, I only have a little experience with CMake Packages.