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)
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
add_library(ma_lib ...sources...)
celui de l'exe contient
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
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
Partager