public void Clean(ICleanParameters parameters)
{
foreach (var project in from module in suite.Modules
from project in module.Projects.Concat(module.TestProjects)
where project.RootDirectory != null
select project)
{
var projectRoot = project.RootDirectory;
var fsRoot = projectRoot.GetChildDirectory("cpp");
if (fsRoot != null)
{
foreach (var fsproj in fsRoot.Files.Where(
name => name.EndsWith(".vcxproj", StringComparison.InvariantCultureIgnoreCase)))
{
log.Debug("Deleting vxproj file");
fsRoot.DeleteFile(fsproj);
}
foreach (var fsproj in fsRoot.Files.Where(
name => name.EndsWith(".vcxproj.user", StringComparison.InvariantCultureIgnoreCase)))
{
log.Debug("Deleting vcxproj.user file");
fsRoot.DeleteFile(fsproj);
}
var filteredFiles = project.GetSourceSet("cpp").Files.Except(
project.GetSourceSet("cpp").FilterCppSourceSet(fsRoot, suite.SuiteRoot).Files);
foreach (var filteredFile in filteredFiles)
{
log.DebugFormat("Deleting generated file {0}", filteredFile);
suite.SuiteRoot.DeleteFile(filteredFile);
}
}
}
}