Je compile le code C++ avec msbuild
et je spécifie les options cl
à l'intérieur de l'élément ClCompile
. Quelque chose comme ...Options Msbuild et ClCompile
<ItemGroup>
<ClCompile Include="something.cpp">
<FloatingPointModel>Precise</FloatingPointModel>
<WarningLevel>Level2</WarningLevel>
</ClCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Targets" />
Ce qui précède est juste un exemple. Maintenant, je veux imprimer toutes les options utilisées pour l'invocation cl
. La question est: comment je fais ça? Ma première tentative a été d'utiliser quelque chose comme ce qui suit:
<Target Name="WriteToFile" AfterTargets="ClCompile" >
<WriteLinesToFile File="$(OutDir)\log.txt" Lines="@(ClCompile)" Overwrite="true" />
</Target>
Malheureusement, ce ne consigne nom de fichier (something.cpp
) et non les options.
Notez que je suis conscient du fait que les options du compilateur sont stockées par Tracker.exe
dans le fichier CL.command.*.tlog
, mais d'abord, je ne veux pas compter sur ce qu'il est sujet à changement et, deuxièmement, je vais devoir le plus susceptible de faire des transformations plus tard. Je sais aussi que je pourrais accéder à des options individuelles (comme %(ClCompile.FloatingPointModel)
), mais je ne veux pas gérer chaque option séparément non plus.
Y a-t-il une meilleure façon de procéder?