2010-05-13 21 views
4

Je travaille sur la bibliothèque personnalisée et je souhaite les utilisateurs pourraient simplement l'utiliser en ajoutant:Comment appeler make install pour un sous-répertoire du projet Qt

CONFIG += mylib 

à leurs fichiers professionnels. Cela peut être fait en installant le fichier mylib.prf dans% QTDIR%/mkspec/features. J'ai vérifié dans le projet Qt Mobility comment créer et installer un tel fichier, mais il y a une chose que j'aimerais faire différemment. Si j'ai bien compris les fichiers pro/pri de Qt Mobility, dans les exemples de projets, ils n'utilisent pas vraiment CONFIG + = mobilité, mais ils ajoutent des sources QtMobility pour inclure le chemin et partager le répertoire * .obj avec la bibliothèque principale projet. Pour ma bibliothèque, j'aimerais avoir des exemples de projets aussi indépendants que possible, c'est-à-dire des projets qui peuvent être compilés de n'importe où une fois que MyLib est compilé et installé.

Je suit la structure de répertoire:

mylib 
    | 
    |- examples 
    |- src 
    |- tests 
    \- mylib.pro 

Il semble que la meilleure façon d'atteindre ce que je décrit ci-dessus est la création mylib.pro comme ceci:

TEMPLATE = subdirs 
SUBDIRS += src 
SUBDIRS += examples 
tests:SUBDIRS += tests 

et de faire respecter une certaine façon d'invoquer « cd src & & make install "après la construction de src. Quelle est la meilleure façon de procéder?

Bien sûr, toutes les autres suggestions pour le déploiement automatique de la bibliothèque avant la compilation d'exemples sont les bienvenues.

Répondre

1

Vous pouvez créer une autre cible et l'ajouter à la variable SUBDIRS, ce qui fonctionne bien si vous réalisez que les fichiers .pro simples peuvent également être une cible. Je suggère quelque chose comme ça

TEMPLATE = subdirs 
CONFIG += ordered 

SUBDIRS += src 
tests:SUBDIRS += tests 
SUBDIRS += src/install.pro 
SUBDIRS += examples 

Dans ce cas, je me suis assuré les objectifs seraient exécutés subdir dans l'ordre, par l'ajout variable de configuration. J'ai déplacé les tests compiler avant l'installation, ce qui est logique pour moi - vous voudriez tester que le code fonctionne avant d'aller de l'avant et de l'installer. L'ajout important est le lien direct vers un fichier install.pro dans votre répertoire source. (Vous pouvez également placer ceci dans le répertoire local si vous voulez que src reste propre.) Dans ce cas, vous devriez avoir vos commandes pour installer les composants que vous voulez installer.

Dans des situations comme cela, je trouve souvent utile d'avoir la liste des sources et des en-têtes séparées dans un fichier qui pourrait être inclus dans plusieurs fichiers .pro, en tant que tels:

src/sources.pri:

HEADERS += foo.h 
SOURCES += foo.c 

src/src.pro

include(sources.pri) 
#... 

src/install.pro

include(sources.pri) 
#...