Bref j'étais ravis, c'est bien fait et facile à utiliser, de plus il sait générer des Makefile standard (pour gmake et même visual), ou encore des projets kdevelop, et on trouve assez facilement des modules (perso j'ai pris ceux du svn de kde)
Néanmoins une surpise : entre 2 fichiers CMakeLists.txt identiques, j'ai des résultats différents :
ADD_CUSTOM_COMMAND(OUTPUT ${MYINCLUDES}/ui_mainWindow.h
COMMAND ${QT_UIC_EXECUTABLE} ARGS -o ${MYINCLUDES}/ui_mainWindow.h ${CMAKE_CURRENT_SOURCE_DIR}/mainWindow.ui
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/mainWindow.ui)
INCLUDE_DIRECTORIES (. ${MYINCLUDES})
ADD_LIBRARY(mainWindow STATIC ${MYINCLUDES}/ui_mainWindow.h mainWindow.h mainWindow.cpp)
MV_INCL(mainWindow.h)
MV_LIB(mainWindow)
et
ADD_CUSTOM_COMMAND(OUTPUT ${MYINCLUDES}/ui_dateInterval.h
COMMAND ${QT_UIC_EXECUTABLE} ARGS -o ${MYINCLUDES}/ui_dateInterval.h ${CMAKE_CURRENT_SOURCE_DIR}/dateInterval.ui
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/dateInterval.ui)
INCLUDE_DIRECTORIES (. ${MYINCLUDES})
ADD_LIBRARY(dateIntervalWidget STATIC ${MYINCLUDES}/ui_dateInterval.h dateInterval.h dateInterval.cpp dateIntervalPlugin.cpp)
MV_INCL(dateInterval.h)
MV_LIB(dateIntervalWidget)
MV_INCL et MV_LIB étant des macros persos copiant mes includes et mes libs générées dans un repertoire précis.
Hors la différence entre ces 2 jeux d'instructions, est que dans un cas tout se passe bien, dans l'autre les règles ne s'éxécuteront pas dans le bon ordre, et mieu, se trouveront même dans des Makefile séparés !
Bon la solution simple est d'utiliser dans mes macros la règle ADD_DEPEDENCY, néanmoins je trouve ce comportement curieu

Aucun commentaire:
Enregistrer un commentaire