Merge remote-tracking branch 'origin/master' into sdl_platform
This commit is contained in:
@@ -50,7 +50,9 @@ namespace Flax.Build.Projects.VisualStudio
|
||||
projectTypes = ProjectTypeGuids.ToOption(ProjectTypeGuids.FlaxVS) + ';' + projectTypes;
|
||||
|
||||
// Try to reuse the existing project guid from solution file
|
||||
vsProject.ProjectGuid = GetProjectGuid(solutionPath, vsProject.Name);
|
||||
vsProject.ProjectGuid = GetProjectGuid(vsProject.Path, vsProject.Name);
|
||||
if (vsProject.ProjectGuid == Guid.Empty)
|
||||
vsProject.ProjectGuid = GetProjectGuid(solutionPath, vsProject.Name);
|
||||
if (vsProject.ProjectGuid == Guid.Empty)
|
||||
vsProject.ProjectGuid = Guid.NewGuid();
|
||||
|
||||
|
||||
@@ -55,7 +55,9 @@ namespace Flax.Build.Projects.VisualStudio
|
||||
}
|
||||
|
||||
// Try to reuse the existing project guid from solution file
|
||||
vsProject.ProjectGuid = GetProjectGuid(solutionPath, vsProject.Name);
|
||||
vsProject.ProjectGuid = GetProjectGuid(vsProject.Path, vsProject.Name);
|
||||
if (vsProject.ProjectGuid == Guid.Empty)
|
||||
vsProject.ProjectGuid = GetProjectGuid(solutionPath, vsProject.Name);
|
||||
if (vsProject.ProjectGuid == Guid.Empty)
|
||||
vsProject.ProjectGuid = Guid.NewGuid();
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ namespace Flax.Build.Projects.VisualStudio
|
||||
case VisualStudioVersion.VisualStudio2017: return "v141";
|
||||
case VisualStudioVersion.VisualStudio2019: return "v142";
|
||||
case VisualStudioVersion.VisualStudio2022: return "v143";
|
||||
case VisualStudioVersion.VisualStudio2026: return "v145";
|
||||
}
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
@@ -128,6 +128,8 @@ namespace Flax.Build.Projects.VisualStudio
|
||||
version = VisualStudioVersion.VisualStudio2019;
|
||||
else if (displayName.Contains("2022"))
|
||||
version = VisualStudioVersion.VisualStudio2022;
|
||||
else if (displayName.Contains("2026"))
|
||||
version = VisualStudioVersion.VisualStudio2026;
|
||||
else
|
||||
{
|
||||
Log.Warning(string.Format("Unknown Visual Studio installation. Display name: {0}", displayName));
|
||||
|
||||
@@ -128,6 +128,7 @@ namespace Flax.Build.Projects.VisualStudio
|
||||
case VisualStudioVersion.VisualStudio2017: return "15.0";
|
||||
case VisualStudioVersion.VisualStudio2019: return "16.0";
|
||||
case VisualStudioVersion.VisualStudio2022: return "17.0";
|
||||
case VisualStudioVersion.VisualStudio2026: return "18.0";
|
||||
}
|
||||
|
||||
return string.Empty;
|
||||
@@ -193,7 +194,7 @@ namespace Flax.Build.Projects.VisualStudio
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override string SolutionFileExtension => "sln";
|
||||
public override string SolutionFileExtension => /*Version >= VisualStudioVersion.VisualStudio2026 ? "slnx" :*/ "sln";
|
||||
|
||||
/// <inheritdoc />
|
||||
public override Project CreateProject()
|
||||
@@ -277,6 +278,20 @@ namespace Flax.Build.Projects.VisualStudio
|
||||
}
|
||||
}
|
||||
|
||||
if (Version >= VisualStudioVersion.VisualStudio2026)
|
||||
GenerateXmlSolution(solution);
|
||||
else
|
||||
GenerateAsciiSolution(solution);
|
||||
}
|
||||
|
||||
private void GenerateXmlSolution(Solution solution)
|
||||
{
|
||||
// TODO: Generate the solution file in new format
|
||||
GenerateAsciiSolution(solution);
|
||||
}
|
||||
|
||||
private void GenerateAsciiSolution(Solution solution)
|
||||
{
|
||||
// Try to extract solution folder info from the existing solution file to make random IDs stable
|
||||
var solutionId = Guid.NewGuid();
|
||||
var folderIds = new Dictionary<string, Guid>();
|
||||
@@ -313,7 +328,7 @@ namespace Flax.Build.Projects.VisualStudio
|
||||
var projects = solution.Projects.Cast<VisualStudioProject>().ToArray();
|
||||
|
||||
// Header
|
||||
if (Version == VisualStudioVersion.VisualStudio2022)
|
||||
if (Version >= VisualStudioVersion.VisualStudio2022)
|
||||
{
|
||||
vcSolutionFileContent.AppendLine("Microsoft Visual Studio Solution File, Format Version 12.00");
|
||||
vcSolutionFileContent.AppendLine("# Visual Studio Version 17");
|
||||
|
||||
@@ -26,5 +26,10 @@ namespace Flax.Build.Projects.VisualStudio
|
||||
/// The Visual Studio 2022.
|
||||
/// </summary>
|
||||
VisualStudio2022,
|
||||
|
||||
/// <summary>
|
||||
/// The Visual Studio 2026.
|
||||
/// </summary>
|
||||
VisualStudio2026,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user