Browse Source

Prepare separate solution for XBuild

pull/875/head
Nikita Tsukanov 9 years ago
parent
commit
3e237a2fdc
  1. 1
      .gitignore
  2. 32
      build.cake

1
.gitignore

@ -161,3 +161,4 @@ tools/
.nuget .nuget
artifacts/ artifacts/
nuget nuget
Avalonia.XBuild.sln

32
build.cake

@ -42,7 +42,7 @@ var AssemblyInfoPath = File("./src/Shared/SharedAssemblyInfo.cs");
var ReleasePlatform = "Any CPU"; var ReleasePlatform = "Any CPU";
var ReleaseConfiguration = "Release"; var ReleaseConfiguration = "Release";
var MSBuildSolution = "./Avalonia.sln"; var MSBuildSolution = "./Avalonia.sln";
var XBuildSolution = "./Avalonia.sln"; var XBuildSolution = "./Avalonia.XBuild.sln";
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// PARAMETERS // PARAMETERS
@ -593,9 +593,39 @@ Task("Clean")
CleanDirectory(binRoot); CleanDirectory(binRoot);
CleanDirectory(testsRoot); CleanDirectory(testsRoot);
}); });
Task("Prepare-XBuild-Solution")
.Does(() =>
{
var blacklistedProjects = new[]{"Avalonia.Win32.NetStandard"};
var blacklistedGuids = new HashSet<string>(System.IO.File.ReadAllLines(MSBuildSolution)
.Where(l=>l.StartsWith("Project") && blacklistedProjects.Any(p=>l.Contains(p)))
.Select(l => l.Split(',').Select(part => part.Trim()).FirstOrDefault(part => part.StartsWith("\"{")))
.Where(g=>g!=null)
.Select(l=>l.Trim(new[]{'"', '}', '{'}).ToLower())
);
Console.WriteLine("Blacklisted guids are: " + string.Join(",", blacklistedGuids));
var removeUntilEndProject = false;
System.IO.File.WriteAllLines(XBuildSolution, System.IO.File.ReadAllLines(MSBuildSolution)
.Where(l =>
{
if(removeUntilEndProject)
{
if(l.StartsWith("EndProject"))
removeUntilEndProject = false;
return false;
}
var blacklist = blacklistedGuids.Any(g => l.ToLower().Contains(g));
if(blacklist && l.StartsWith("Project"))
removeUntilEndProject = true;
return !blacklist;
}));
});
Task("Restore-NuGet-Packages") Task("Restore-NuGet-Packages")
.IsDependentOn("Clean") .IsDependentOn("Clean")
.IsDependentOn("Prepare-XBuild-Solution")
.Does(() => .Does(() =>
{ {
var maxRetryCount = 5; var maxRetryCount = 5;

Loading…
Cancel
Save