C++ コードをコンパイルし、項目内でオプションmsbuild
を指定します。何かのようなもの...cl
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" />
上記はほんの一例です。cl
ここで、呼び出しに使用されるすべてのオプションを出力したいと思います。問題は次のとおりです。私の最初の試みは、次のようなものを使用することでした:
<Target Name="WriteToFile" AfterTargets="ClCompile" >
<WriteLinesToFile File="$(OutDir)\log.txt" Lines="@(ClCompile)" Overwrite="true" />
</Target>
悲しいことに、これはファイル名 ( something.cpp
) のみを記録し、オプションは記録しません。
コンパイラ オプションがファイルに保存されていることは承知していますがTracker.exe
、CL.command.*.tlog
まず、変更される可能性があるため、それに依存したくありません。次に、後でいくつかの変換を行う必要がある可能性が高いです。また、個々のオプション ( など) にアクセスできることも知っています%(ClCompile.FloatingPointModel)
が、各オプションを個別に処理したくありません。
これを行うより良い方法はありますか?