Я компилирую код 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)
), но я также не хочу обрабатывать каждый параметр отдельно.
Есть лучший способ сделать это?