// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
using System.Text;
namespace Flax.Build.Projects.VisualStudio
{
///
/// Interface for objects that can customize generated Visual Studio project files (eg. insert debugger customization or custom extension settings).
///
public interface IVisualStudioProjectCustomizer
{
///
/// Writes the Visual Studio project begin custom data.
///
/// The project.
/// The platform.
/// Contents of the VC project file.
/// Contents of the VC filters file.
/// Contents of the VC user file.
void WriteVisualStudioBegin(VisualStudioProject project, Platform platform, StringBuilder vcProjectFileContent, StringBuilder vcFiltersFileContent, StringBuilder vcUserFileContent);
///
/// Writes the Visual Studio project build configuration properties.
///
/// The project.
/// The platform.
/// The toolchain.
/// The project configuration.
/// Content of the VC project file.
/// Content of the VC filters file.
/// Contents of the VC user file.
void WriteVisualStudioBuildProperties(VisualStudioProject project, Platform platform, Toolchain toolchain, Project.ConfigurationData configuration, StringBuilder vcProjectFileContent, StringBuilder vcFiltersFileContent, StringBuilder vcUserFileContent);
///
/// Writes the Visual Studio project end custom data.
///
/// The project.
/// The platform.
/// Contents of the VC project file.
/// Contents of the VC filters file.
/// Contents of the VC user file.
void WriteVisualStudioEnd(VisualStudioProject project, Platform platform, StringBuilder vcProjectFileContent, StringBuilder vcFiltersFileContent, StringBuilder vcUserFileContent);
}
}