Я компилирую код C++ с msbuild
и указываю cl
опции внутри ClCompile
item. Что-то вроде ...Параметры Msbuild и 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)
), но я не хочу обрабатывать каждый вариант отдельно.
Есть ли лучший способ сделать это?