Bonjour,
Très bonnes questions.
Pour la première : rajout des fichiers ->
Non, les IDE ne prennent que très rarement en compte les fichiers de projets de CMake. Cela est totalement logique sachant que nous lançons l'idée à partir des fichiers générés par CMake. Du coup l'IDE ne sait pas et ne modifiera que ses fichiers de projet.
Qt Creator permet de lire les fichiers CMakeLists.txt, et leur solution : "relancer CMake a chaque nouveau fichier pour mettre à jour l'arborescence du projet".
Pour conclure, il faut modifier le fichier CMakeLists.txt pour ajouter un nouveau fichier. Il existe une technique où l'on peut inclure tous les fichiers en utilisant un joker (wildcard) mais elle est dépréciée/déconseillée et c'est pour cela que le tutoriel n'en parle pas. Même avec cette seconde méthode, il faut relancer CMake pour mettre à jour les fichiers de l'IDE.
Seconde question : Sous Windows c'est un peu plus pénible. Ce que l'on va faire, c'est de ne rien définir dans le fichier CMakeLists.txt pour laisser l'utilisateur libre de choisir où la bibliothèque est. Sous Windows, il fera cela au travers l'interface graphique de CMake. Maintenant, si vous embarquez la bibliothèque avec votre projet (soit directement sur votre propre git, ou en sous module, soit en demandant même à CMake de récupérer la bibliothèque), vous pouvez toujours définir un chemin de base (par défaut) si l'utilisateur n'en définit aucun (un peu comme vous faites actuellement (sauf que là, vous ne laissez pas la possibilité à l'utilisateur)).
Finalement :
set(OPENSSL_ROOT_DIR "lib/openssl-1.0.2d/lib")
Seule cette variable est utile. Les deux autres devraient être complétées par le find_package.
Troisième question : oui, vous pouvez appeler plusieurs fois la fonctions. Par contre, de mémoire (il faut donc revoir la documentation ), le target_link_libraries() doit être placées après le add_executable/add_library, sinon, il ne sait pas à quel exécutable il doit faire l'ajout. Le premier argument correspond au nom de l'exécutable définit à travers le add_executable/add_library.
Partager