Bonjour,
Je connais mal cmake et je souhaite l'utiliser sur un projet qui contient:

1 librairie
1 executable qui utilise cette librairie

Je fais ça en gros comme ça:
un dossier principal, et 2 sous-dossiers (qui contiennent les sources de la lib et de l'executable)
dans le dossier principal, il y a un CMakeLists.txt, dans lequel il y a (entre autres)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
add_subdirectory(dossier_de_ma_lib)
add_subdirectory(dossier_de_mon_exe)
Et dans ces 2 dossires il y a chaque fois un CMakeLists.txt.
celui de la lib contient
Code : Sélectionner tout - Visualiser dans une fenêtre à part
add_library(ma_lib ...sources...)
celui de l'exe contient
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
add_executable(mon_exe ...sources...)
target_link_libraries(mon_exe ma_lib)
ça marche, mais mon problème c'est que si je fais un make clean, et que je relance make, alors comme la librairie n'est pas encore compilée... du coup cmake génère une erreur (lib not found) et ne compile rien...

Donc je dois aller dans le CMakeLists.txt "principal" et mettre en commentaire la 2è ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
add_subdirectory(dossier_de_ma_lib)
#add_subdirectory(dossier_de_mon_exe)
compiler, cette fois ça marche: ça génère ma lib.
Ensuite je dois décommenter cette lib, et relancer cmake et finalement ça marche.

Question: Y a-t'il un moyen pour que la lib soit compilée directement, afin de ne pas devoir faire cette manip? (en vérité, il y a pas mal de libs, et plusieurs executables)

merci