Bonjour
j'essaie d'utiliser CMake pour générer les makefiles d'un gros projet qui était jusqu'à présent compilé avec make à partir de makefiles générés par SNIFF, un progiciel antédiluvien . Je débute completement avec Cmake, mais je compte beaucoup dessus, et il a l'immense avantage d'être toujours maintenu.
pour classer les sources les developpeurs ont eu l'idee de les organiser dans des sous répertoires. par exemple je vais avoir
en gros une fois que les makefiles sont générés, make se balade d'un repertoire à l'autre pour compiler les objets puis construire les cibles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 src - lib1_ihm (contient des sources, puis les obj apres compil) - lib1_calc (contient des sources, puis les obj apres compil) - lib2_aux (contient des sources, puis les obj apres compil) - lib1_dll (contient seulement la dll resultant du link des obj de lib1_ihm et lib1_calc) - lib2_dll (contient seulement la dll resultant du link des obj de lib2_aux)
Avec Cmake je ne retrouve pas cette façon de faire :
- on déclare une cible qui peut-être soit une lib soit un exe, sinon je pense que le make ne fait rien
- ou alors on peut faire un add_subdirectory pour que Cmake descende dans un sous repertoire
- ou enfin on remonte toutes les sources dans le CmakeList.txt de la lib
Est ce qu'il est possible de mixer un peu le tout pour avoir par exemple pour lib1_dll:
avec dans lib1_ihm et dans lib1_calc des fichiers CmakeList.txt qui declarent juste la liste des fichiers à compiler?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 add_subdirectory(../lib1_ihm) add_subdirectory(../lib1_calc) add_library(lib1_dll $lib1_ihm $lib1_calc)
Partager