[QMake] Pas de recompilation après modification d'un header
Bonjour,
Je viens de créer un nouveau projet Qt et j'aimerais dans ce projet séparer les sources et les headers dans des sous dossiers, pour bien organiser l'arborescence des fichiers. Je m'explique : je veux mettre tous les fichiers .cpp dans le dossier src/, les fichiers .h dans le dossier include/, les fichiers .o dans le dossier obj/ et les binaires dans le dossier bin/. Jusque là aucun soucis. J'ai ensuite configuré mon projet en indiquant les dossiers dans mon fichier projet.pro, puis générer le makefile, et compiler le projet, aucun soucis.
Le problème est le suivant : lorsque je modifie un fichier .h, et que je relance un build, make me dit que la cible est à jour et qu'il n'y à rien à faire. Il faut que je modifie un fichier .cpp pour que la compilation ait lieu (ou que je rebuild tout). Je ne trouve pas ce comportement normal, normalement la modification d'un header entraine la recompilation de tous les objets dans lesquels il est inclus.
Voici les fichiers de mon projets :
Projet.pro :
Code:
1 2 3 4 5 6 7
|
INCLUDEPATH = include
OBJECTS_DIR = obj
DESTDIR = bin
HEADERS += include/renderer.h
SOURCES += src/renderer.cpp \
src/main.cpp |
include/renderer.h :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
#ifndef RENDERER_H
#define RENDERER_H
#include <QWidget>
#include <QPushButton>
class Renderer : public QWidget
{
public:
Renderer();
protected:
QPushButton *pb;
};
#endif // RENDERER_H |
src/renderer.cpp :
Code:
1 2 3 4 5 6
|
#include "renderer.h"
Renderer::Renderer()
{
pb = new QPushButton("Mon bouton", this);
} |
src/main.cpp :
Code:
1 2 3 4 5 6 7 8 9
|
#include <QApplication>
#include "renderer.h"
int main(int argc, char* argv[]){
QApplication app(argc, argv);
Renderer r;
r.show();
return app.exec();
} |
Est ce que j'ai mal configuré quelque chose ?
J'utilise Qt 4.5.2 et QMake 2.01a