2012-02-11 2 views
4

Je souhaite détecter la cible de génération, c'est-à-dire make ou build, dans un événement de génération.Puis-je détecter la cible de génération dans un événement de génération?

J'ai un événement de pré-construction qui compile un certain nombre de fichiers C en objets (.obj) qui sont ensuite inclus dans un de mes fichiers Pascal. Au moment où les fichiers C sont compilés chaque fois que l'événement de pré-construction s'exécute. Je voudrais pouvoir passer cette étape si la cible de construction est make et si les objets sont à jour. Etre capable d'ignorer cette étape me permettrait de réduire considérablement le temps de compilation en mode de développement edit/compile/debug.

Alors, est-il possible de détecter la cible de construction?

+0

Je réalise que c'est un peu un hack, mais pourquoi ne pas lancer la construction C via un élément de projet séparé dans un groupe de projet? Si c'était un studio visuel, ce serait une cible '.lib', peut-être pourriez-vous vous en sortir. Vous pourriez même créer des dépendances pour que l'une soit construite quand l'autre est reconstruite? –

Répondre

5

Étant donné que l'IDE ne compilera qu'un seul projet à la fois, une solution consisterait à enregistrer un IOTAProjectCompileNotifier. Selon la valeur de CompileInfo.Mode, il peut supprimer l'événement de génération dans BeforeCompile et l'ajouter dans AfterCompile.

+2

Merci. Si je descendais cette route je définirais une variable d'environnement et laisserais le code d'événement de construction modifier son comportement en fonction de la valeur de cet env var –

+2

J'aime cette solution. Si vous détectez un * compile *, définissez une variable d'environnement. Votre événement de construction devrait traiter tout comme une construction à moins que la variable d'environnement spéciale soit présente: de cette façon vous êtes "sûr" contre les IDE qui n'ont pas votre plugin installé. –

+2

@cosmin Je suppose que cela fera l'affaire mais c'est quelque chose qui devrait être traité par delphi lui-même à mon avis –

Questions connexes