Option Pass / MP au compilateur à l’aide de MSBuild

J’ai un fichier de projet VC que je construis à partir de la ligne de commande en utilisant MSBuild. Je souhaite spécifier l’indicateur /MP sans modifier le fichier de projet. Est-ce possible? J’ai essayé de set CL=/MP avant d’appeler MSBuild, mais cela n’a aucun effet.

Cela peut être accompli en accédant à l’option CL_MPCount Visual Studio:

 MSBuild /m:2 /p:CL_MPCount=2 /p:Configuration=Release tf_tutorials_example_trainer.vcxproj 

Ce qui précède indique au compilateur d’effectuer au maximum 2 tâches de compilation en parallèle. L’indicateur /m:2 permet à MSBuild de créer deux projets en parallèle. Le résultat net est que nous avons un maximum de 4 processus cl.exe exécutés en parallèle.

UPDATE: l’ CL_MPCount=2 est transmis à cl.exe tant que /MP2 . Cela permet la compilation en parallèle de 2 fichiers .cpp dans le même projet.

Vous avez besoin d’une propriété que vous pouvez remplacer à partir de la ligne de commande. Ouvrez le fichier .vcxproj dans un éditeur de texte, le Bloc-notes fera l’affaire. Localisez le groupe de propriétés “Globals” et ajoutez une propriété nommée, par exemple “Turbo”.

   false ...etc...  

Et utilisez la propriété pour spécifier l’option de compilation. Comme cela ne peut fonctionner que dans la version Release:

    $(Turbo) ...etc...  

Et lancez MSBuild:

  msbuild /p:Configuration=Release /p:Turbo=true