Je crée une bibliothèque que je construis et installe avec CMake. Dans le CMakeLists.txtest install(TARGETS mylib ...)d'installer la bibliothèque elle-même et install(EXPORT ...)de créer une configuration CMake. La configuration CMake signifie que la bibliothèque peut être trouvée find_package()par les applications souhaitant utiliser la bibliothèque de leur propre chef CMakeLists.txt. Jusqu'à présent, rien de surprenant.
Mais en plus de cela, j'ai useful_fn.cmakequi contient une fonction CMake utile que je souhaite mettre à disposition des applications CMakeLists.txt. Je peux l'installer manuellement avec install install(FILE useful_fn.cmake), mais comment les applications sauront-elles où le trouver? Peut-il être référencé à partir de la configuration?
Mieux encore, la configuration CMake pourrait-elle inclure directement la version installée? Donc, le simple fait d'exécuter find_package(mylib)permet d'accéder à cette fonction CMake? Je pourrais le faire si j'écrivais tout mon mylib-config.cmake à la main, plutôt que de demander à CMake de le générer comme il le fait actuellement, mais je préférerais vraiment ne pas le faire juste pour pouvoir ajouter une ligne ( include(.../usefulfn.cmake)).