我有两个构建目标来检查我的代码质量。
每次编译时我都会运行以下构建目标。这占用了太多时间,我希望他们只检查确实更改的文件。
换句话说,我想过滤没有从ItemGroup
CppCheckFiles
/更改的文件LinterFiles
。
<Target Name="CppCheck">
<ItemGroup>
<CppCheckFiles Include="*main.c" />
<CppCheckFiles Include="Source/*/*.c" />
</ItemGroup>
<Message Text="$(Configuration) starting." Importance="High" />
<Exec Command="C:\Cppcheck\cppcheck.exe %(CppCheckFiles.FullPath) --enable=style --template="{file}({line}): error:{severity}-{id}: {message}"" />
</Target>
<Target Name="SPLint">
<ItemGroup>
<LinterFiles Include="*main.c" />
<LinterFiles Include="Source/*/*.c" />
<LinterFiles Include="Source/*/*.h" />
</ItemGroup>
<Message Text="$(Configuration) starting." Importance="High" />
<Exec Command="splintCaller %(LinterFiles.FullPath)" />
</Target>
我知道常规的构建过程会这样做,我想知道我是否必须如此快速地编写自己的任务。