2010-06-17 5 views
7

J'utilise la ligne ci-dessous pour avoir MSBuild construire un Delphi 2010 groupproj:Comment puis-je passer un paramètre via MSBuild au compilateur?

MSBuild C:\src\myprojgroup.groupproj /target:Build /p:config=Release 

Je ne peux pas comprendre comment modifier la ligne ci-dessus pour que je puisse passer cet argument

-EC:\mypath 

au compilateur (bcc32.exe). J'ai passé pas mal de temps à essayer de trouver ça sur le web./property: name = value semblait être ce dont j'avais besoin, mais je ne l'ai pas encore fait.

Est-ce même possible, ou dois-je en apprendre davantage sur les fichiers de configuration msbuild maintenant ...

Répondre

4

Modifiez votre configuration de construction dans Delphi, ou manuellement vous-même dans le fichier .DPROJ. Si vous modifiez la version de config elle-même dans l'un de ces endroits, tout ira bien.

Alternativement, regardez le fichier .dproj et voyez ce que le paramètre que vous voulez est appelé (par exemple, "IncludePath" ou "OutputDir"). Vous pouvez ensuite utiliser le commutateur msbuild/property. Par exemple:

msbuild /property:WarningLevel-2;OutputDir=bin\Debug myproj.dproj 

Vous pouvez voir ces commutateurs de ligne de commande et des exemples en utilisant les éléments suivants à partir d'une fenêtre d'invite de commande:

msbuild /? | more 

Une vérification rapide d'un fichier .dproj de D2007 indique que vous êtes recherchant probablement les propriétés DCC_IncludePath ou DCC_UnitSearchPath.

+0

Exactement ce que je cherchais, Ken. – RobertFrank

7

Tom -

Probablement la meilleure façon de le faire serait d'ouvrir le projet dans l'IDE , définissez les paramètres dans l'IDE que vous voulez, puis enregistrez.

Encore mieux serait de configurer une configuration de construction spécifique pour ces paramètres, et l'utiliser. L'IDE utilise MSBuild lui-même, donc tous les paramètres que vous faites dans l'EDI sont enregistrés dans le fichier * .DPROJ (ou GROUPPROJ, dans votre cas), et donc lorsque vous exécutez la ligne de commande, les mêmes paramètres sont exactement utilisé tel que défini dans l'EDI. Si vous utilisez une configuration de construction spécifique pour ce jeu spécifique d'options, vous pouvez simplement appeler cette configuration sur la ligne de commande et vous obtiendrez ce que vous voulez.

Dans d'autres, des mots plus courts: Laissez l'EDI faire le travail pour vous.

+0

Ne fonctionne pas toujours lorsque vous effectuez des générations automatisées qui doivent faire quelque chose de différent de l'IDE. Nous utilisons FinalBuilder pour gérer ces situations. –

+0

Voir http://stackoverflow.com/questions/2373991/what-are-the-msbuild-project-level-properties-for-delphi pour plus de propriétés que vous pouvez définir –

+0

Robert - c'est ce que sont différentes configurations de construction. ;-) Vous pouvez faire toute votre gestion de configuration de construction dans l'EDI, puis obtenir FinalBuilder (un outil formidable) pour faire les différentes versions en fonction des configurations. –

Questions connexes