我有两个构建目标来检查我的代码质量。
每次编译时我都会运行以下构建目标。这占用了太多时间,我希望他们只检查确实更改的文件。
换句话说,我想过滤没有从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>
我知道常规的构建过程会这样做,我想知道我是否必须如此快速地编写自己的任务。