Files
FlaxEngine/Source/Tools/Flax.Build/Projects/VisualStudio/VisualStudioProject.cs
2023-01-10 15:29:37 +01:00

55 lines
1.6 KiB
C#

// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
using System;
namespace Flax.Build.Projects.VisualStudio
{
/// <summary>
/// The generic implementation of the Visual Studio project.
/// </summary>
/// <seealso cref="Flax.Build.Projects.Project" />
public class VisualStudioProject : Project
{
/// <summary>
/// The project unique identifier (from the project file or the generated).
/// </summary>
public Guid ProjectGuid;
/// <summary>
/// The project parent folder identifier (used in the solution hierarchy).
/// </summary>
public Guid FolderGuid;
/// <summary>
/// Gets the project type unique identifier. Used by the Visual Studio solution file to identify the project type.
/// </summary>
public virtual Guid ProjectTypeGuid
{
get
{
switch (Type ?? Targets[0].Type)
{
case TargetType.NativeCpp: return VisualStudioProjectGenerator.ProjectTypeGuids.WindowsVisualCpp;
case TargetType.DotNet: return VisualStudioProjectGenerator.ProjectTypeGuids.WindowsCSharp;
default: throw new ArgumentOutOfRangeException();
}
}
}
/// <inheritdoc />
public override string Path
{
get => base.Path;
set
{
base.Path = value;
if (ProjectGuid == Guid.Empty)
{
ProjectGuid = VisualStudioProjectGenerator.GetProjectGuid(Path);
}
}
}
}
}