reorder solution configurations + migration
This commit is contained in:
parent
98cdf50a55
commit
ce01b83c4a
|
@ -1,6 +1,8 @@
|
||||||
using GodotTools.Core;
|
using GodotTools.Core;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace GodotTools.ProjectEditor
|
namespace GodotTools.ProjectEditor
|
||||||
{
|
{
|
||||||
|
@ -118,5 +120,25 @@ EndProject";
|
||||||
const string ProjectPlatformsConfig =
|
const string ProjectPlatformsConfig =
|
||||||
@" {{{0}}}.{1}|Any CPU.ActiveCfg = {1}|Any CPU
|
@" {{{0}}}.{1}|Any CPU.ActiveCfg = {1}|Any CPU
|
||||||
{{{0}}}.{1}|Any CPU.Build.0 = {1}|Any CPU";
|
{{{0}}}.{1}|Any CPU.Build.0 = {1}|Any CPU";
|
||||||
|
|
||||||
|
public static void FixConfigurations(string slnPath)
|
||||||
|
{
|
||||||
|
if (!File.Exists(slnPath))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var input = File.ReadAllText(slnPath);
|
||||||
|
var dict = new Dictionary<string, string>
|
||||||
|
{
|
||||||
|
{"Debug|Any CPU", "Tools|Any CPU"},
|
||||||
|
{"Release|Any CPU", "ExportDebug|Any CPU"},
|
||||||
|
{"Tools|Any CPU", "ExportRelease|Any CPU"}
|
||||||
|
};
|
||||||
|
|
||||||
|
var regex = new Regex(string.Join("|",dict.Keys.Select(Regex.Escape)));
|
||||||
|
var result = regex.Replace(input,m => dict[m.Value]);
|
||||||
|
|
||||||
|
if (result != input)
|
||||||
|
File.WriteAllText(slnPath, result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,18 +32,6 @@ namespace GodotTools
|
||||||
ProjectUtils.AddItemToProjectChecked(projectPath, itemType, include);
|
ProjectUtils.AddItemToProjectChecked(projectPath, itemType, include);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void FixApiHintPath(string projectPath)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ProjectUtils.FixApiHintPath(projectPath);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
GD.PushError(e.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static readonly DateTime Epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
private static readonly DateTime Epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||||
|
|
||||||
private static ulong ConvertToTimestamp(this DateTime value)
|
private static ulong ConvertToTimestamp(this DateTime value)
|
||||||
|
|
|
@ -61,7 +61,7 @@ namespace GodotTools
|
||||||
{
|
{
|
||||||
Guid = guid,
|
Guid = guid,
|
||||||
PathRelativeToSolution = name + ".csproj",
|
PathRelativeToSolution = name + ".csproj",
|
||||||
Configs = new List<string> { "Debug", "Release", "Tools" }
|
Configs = new List<string> { "Tools", "ExportDebug", "ExportRelease" }
|
||||||
};
|
};
|
||||||
|
|
||||||
solution.AddNewProject(name, projectInfo);
|
solution.AddNewProject(name, projectInfo);
|
||||||
|
@ -401,8 +401,17 @@ namespace GodotTools
|
||||||
|
|
||||||
if (File.Exists(GodotSharpDirs.ProjectSlnPath) && File.Exists(GodotSharpDirs.ProjectCsProjPath))
|
if (File.Exists(GodotSharpDirs.ProjectSlnPath) && File.Exists(GodotSharpDirs.ProjectCsProjPath))
|
||||||
{
|
{
|
||||||
// Make sure the existing project has Api assembly references configured correctly
|
try
|
||||||
CsProjOperations.FixApiHintPath(GodotSharpDirs.ProjectCsProjPath);
|
{
|
||||||
|
// Make sure the existing project has Api assembly references configured correctly
|
||||||
|
ProjectUtils.FixApiHintPath(GodotSharpDirs.ProjectCsProjPath);
|
||||||
|
// Make sure SolutionConfigurations are Tool, ExportDebug and ExportRelease
|
||||||
|
DotNetSolution.FixConfigurations(GodotSharpDirs.ProjectSlnPath);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
GD.PushError(e.ToString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue