Il y a trois façons fondamentales de gérer les dépendances avec CMake :
CMake est livré avec un un tas de modules find pour trouver des bibliothèques externes . Votre appel à find_package(Boost ...)
est géré par le FindBoost
module.
Alternativement, votre dépendance peut être livrée avec un fichier config script que l'on peut trouver par find_package
. C'est l'approche qui est utilisée pour trouver par exemple Qt5.
Dans votre cas, malheureusement, aucun de ces cas ne s'applique, ce qui nous laisse la dernière option restante : Écrire votre propre script de recherche ! Vous pouvez jeter un coup d'oeil à le code source de certains des modules fournis avec CMake à titre d'exemple. L'exemple de Boost est assez compliqué, mais FindVulkan par exemple, est raisonnablement simple.
Vous avez principalement besoin d'un find_path
pour le chemin d'inclusion et un find_library
appel à la .lib
fichier. Le site Page MSDN pour la Fondation Windows Media vous indique ce que vous devez rechercher. Si vous avez de la chance, le programme d'installation du SDK a défini une variable d'environnement que vous pouvez utiliser comme indice pour l'option find_*
dans ce cas, votre script sera entièrement automatique. Sinon, vous devrez spécifier manuellement l'emplacement lors de l'exécution de CMake.
Si cette approche peut sembler lourde, elle est très souple et permet de gérer tout type de dépendance vis-à-vis de tiers. Si vous voulez sortir du domaine de CMake pur, vous pouvez également jeter un coup d'oeil aux gestionnaires de paquets comme vcpkg o conan pour la gestion des dépendances, qui offrent des fonctionnalités et un confort supplémentaires.