1756 lines
55 KiB
C#
1756 lines
55 KiB
C#
using System.IO;
|
|
using System.Linq;
|
|
using JustDance.Engine;
|
|
using JustDance.Tools.Extern;
|
|
using Sharpmake;
|
|
|
|
namespace JustDance.Tools
|
|
{
|
|
/// <summary>
|
|
/// Base class for a project part of the framework.
|
|
/// </summary>
|
|
public abstract class FrameworkProject : BaseProject
|
|
{
|
|
protected const string Avalon = @"[project.SharpmakeCsProjectPath]\..\..\..\tools\extern\TeaBox\Extern\Avalon\Xceed.Wpf.AvalonDock.dll";
|
|
|
|
protected FrameworkProject()
|
|
: base("framework")
|
|
{
|
|
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder = "framework";
|
|
conf.ReferencesByName.Add("System.ComponentModel.Composition");
|
|
conf.ReferencesByName.Add("Microsoft.CSharp");
|
|
}
|
|
}
|
|
|
|
#region TeaBox
|
|
|
|
#endregion
|
|
|
|
#region CoreLevel
|
|
|
|
#region FromTeaBoxCore
|
|
|
|
/// <summary>
|
|
/// Project that was created out of the old TeaBox.Core project
|
|
/// </summary>
|
|
public class FromTeaBoxCoreProject : FrameworkProject
|
|
{
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Kernel : FromTeaBoxCoreProject
|
|
{
|
|
public JD_Kernel()
|
|
{
|
|
OutputType = Configuration.OutputType.DotNetClassLibrary;
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Collections : FromTeaBoxCoreProject
|
|
{
|
|
public JD_Collections()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_UserControls : FromTeaBoxCoreProject
|
|
{
|
|
public JD_UserControls()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.ReferencesByName.Add("System.Windows.Forms");
|
|
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_ColorForms : FromTeaBoxCoreProject
|
|
{
|
|
public JD_ColorForms()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.ReferencesByName.Add("System.Windows.Forms");
|
|
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Maths : FromTeaBoxCoreProject
|
|
{
|
|
public JD_Maths()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
|
|
conf.Options.Add(Options.CSharp.AllowUnsafeBlocks.Enabled);
|
|
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_ScreenWrappers : FromTeaBoxCoreProject
|
|
{
|
|
public JD_ScreenWrappers()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
|
|
conf.ReferencesByName.Add("PresentationCore");
|
|
conf.ReferencesByName.Add("PresentationFramework");
|
|
conf.ReferencesByName.Add("System.Core");
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.ReferencesByName.Add("System.Windows.Forms");
|
|
conf.ReferencesByName.Add("System.Xaml");
|
|
conf.ReferencesByName.Add("WindowsBase");
|
|
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Sequencers : FromTeaBoxCoreProject
|
|
{
|
|
public JD_Sequencers()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
|
|
conf.ReferencesByName.Add("PresentationCore");
|
|
conf.ReferencesByName.Add("PresentationFramework");
|
|
conf.ReferencesByName.Add("System.Core");
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.ReferencesByName.Add("System.Windows.Forms");
|
|
conf.ReferencesByName.Add("System.Xaml");
|
|
conf.ReferencesByName.Add("WindowsBase");
|
|
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
conf.AddPublicDependency<JD_Maths>(target);
|
|
conf.AddPublicDependency<JD_Collections>(target);
|
|
conf.AddPublicDependency<JD_ScreenWrappers>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Threading : FromTeaBoxCoreProject
|
|
{
|
|
public JD_Threading()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
|
|
conf.ReferencesByName.Add("PresentationCore");
|
|
conf.ReferencesByName.Add("PresentationFramework");
|
|
conf.ReferencesByName.Add("System.Core");
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.ReferencesByName.Add("System.Windows.Forms");
|
|
conf.ReferencesByName.Add("System.Xaml");
|
|
conf.ReferencesByName.Add("WindowsBase");
|
|
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_WinFormExtensions : FromTeaBoxCoreProject
|
|
{
|
|
public JD_WinFormExtensions()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
|
|
conf.ReferencesByName.Add("PresentationCore");
|
|
conf.ReferencesByName.Add("PresentationFramework");
|
|
conf.ReferencesByName.Add("System.Core");
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.ReferencesByName.Add("System.Windows.Forms");
|
|
conf.ReferencesByName.Add("System.Xaml");
|
|
conf.ReferencesByName.Add("WindowsBase");
|
|
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
}
|
|
}
|
|
|
|
|
|
[Generate]
|
|
public class JD_LogService : FromTeaBoxCoreProject
|
|
{
|
|
public JD_LogService()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
|
|
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
conf.AddPublicDependency<JD_Collections>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_MessageService : FromTeaBoxCoreProject
|
|
{
|
|
public JD_MessageService()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
|
|
conf.ReferencesByName.Add("PresentationCore");
|
|
conf.ReferencesByName.Add("PresentationFramework");
|
|
conf.ReferencesByName.Add("System.Core");
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.ReferencesByName.Add("System.Windows.Forms");
|
|
conf.ReferencesByName.Add("System.Xaml");
|
|
conf.ReferencesByName.Add("WindowsBase");
|
|
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
conf.AddPublicDependency<JD_Collections>(target);
|
|
conf.AddPublicDependency<JD_LogService>(target);
|
|
conf.AddPublicDependency<JD_Threading>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_StringParserService : FromTeaBoxCoreProject
|
|
{
|
|
public JD_StringParserService()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Reflection : FromTeaBoxCoreProject
|
|
{
|
|
public JD_Reflection()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
|
|
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
conf.AddPublicDependency<JD_LogService>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Serializers : FromTeaBoxCoreProject
|
|
{
|
|
public JD_Serializers()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
conf.AddPublicDependency<JD_Reflection>(target);
|
|
conf.AddPublicDependency<JD_Collections>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Statistics : FromTeaBoxCoreProject
|
|
{
|
|
public JD_Statistics()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_PropertyService : FromTeaBoxCoreProject
|
|
{
|
|
public JD_PropertyService()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
|
|
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
conf.AddPublicDependency<JD_Collections>(target);
|
|
conf.AddPublicDependency<JD_Reflection>(target);
|
|
conf.AddPublicDependency<JD_Serializers>(target);
|
|
conf.AddPublicDependency<JD_StringParserService>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_TeaBoxAddinSystem : FromTeaBoxCoreProject
|
|
{
|
|
public JD_TeaBoxAddinSystem()
|
|
{
|
|
AdditionalContentCopyIfNewer.Add(@"Data\Layouts\*");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = @"framework/teabox";
|
|
|
|
conf.RegisterWpf();
|
|
conf.Options.Add(Options.CSharp.AllowUnsafeBlocks.Enabled);
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.ReferencesByName.Add("System.Windows.Forms");
|
|
conf.ReferencesByName.Add("System.Management");
|
|
conf.ReferencesByName.Add("System.Runtime.Remoting");
|
|
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
|
|
|
|
conf.AddPublicDependency<JD_Kernel>(target);
|
|
conf.AddPublicDependency<JD_Collections>(target);
|
|
conf.AddPublicDependency<JD_Threading>(target);
|
|
conf.AddPublicDependency<JD_WinFormExtensions>(target);
|
|
conf.AddPublicDependency<JD_LogService>(target);
|
|
conf.AddPublicDependency<JD_MessageService>(target);
|
|
conf.AddPublicDependency<JD_StringParserService>(target);
|
|
conf.AddPublicDependency<JD_Reflection>(target);
|
|
conf.AddPublicDependency<JD_Serializers>(target);
|
|
conf.AddPublicDependency<JD_Statistics>(target);
|
|
conf.AddPublicDependency<JD_PropertyService>(target);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
[Generate]
|
|
public class JD_Vault : FrameworkProject
|
|
{
|
|
public JD_Vault()
|
|
{ }
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JdSecretsManager);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Interfaces : FrameworkProject
|
|
{
|
|
public JD_Interfaces() { }
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.RegisterWpf();
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Core : FrameworkProject
|
|
{
|
|
public JD_Core()
|
|
{
|
|
ResourceFilesExtensions.Add(".csv");
|
|
EmbeddedResourceExtensions.Add(".csv");
|
|
|
|
AdditionalContentAlwaysCopy.Add(Path.Combine(SourceRootPath, "ProjectId.txt"));
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<JD_Interfaces>(target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
|
|
conf.RegisterWpf();
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NewtonsoftJsonNuget);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.UbisoftCore);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NUnit);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NSubstitute);
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.ReferencesByName.Add("System.Windows.Forms");
|
|
conf.ReferencesByName.Add("System.Configuration");
|
|
conf.ReferencesByName.Add("System.Web.Extensions");
|
|
conf.ReferencesByName.Add("System.DirectoryServices.AccountManagement");
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Serialization : FrameworkProject
|
|
{
|
|
public JD_Serialization()
|
|
{
|
|
ResourceFilesExtensions.Add(".ilu");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.ReferencesByName.Add("System.ComponentModel.DataAnnotations");
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.ReferencesByName.Add("System.Windows.Forms");
|
|
conf.ReferencesByName.Add("System.Design");
|
|
conf.ReferencesByNuGetPackage.Add(Externs.UbisoftCore);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NUnit);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NSubstitute);
|
|
|
|
conf.AddPublicDependency<JD_Core>(target);
|
|
conf.AddPublicDependency<JD_Interfaces>(target);
|
|
conf.AddPublicDependency<JD_LogService>(target);
|
|
conf.AddPublicDependency<TeaBox_Application>(target);
|
|
|
|
conf.RegisterNLua();
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Perforce : FrameworkProject
|
|
{
|
|
public JD_Perforce()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<JD_Core>(target);
|
|
conf.AddPublicDependency<Plume_Perforce_Service>(target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.UbisoftPerforce);
|
|
conf.RegisterWpf();
|
|
conf.RegisterWinForms();
|
|
conf.RegisterWindowsFormsIntegration();
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Asset : FrameworkProject
|
|
{
|
|
public JD_Asset()
|
|
{
|
|
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.RegisterWpf();
|
|
conf.AddPublicDependency<JD_Core>(target);
|
|
conf.AddPublicDependency<JD_Serialization>(target);
|
|
conf.AddPublicDependency<JD_Perforce>(target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.Cottle);
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Remoting : FrameworkProject
|
|
{
|
|
public JD_Remoting()
|
|
{
|
|
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<JD_Core>(target);
|
|
conf.AddPublicDependency<JD_Interfaces>(target);
|
|
conf.AddPublicDependency<Plume_Interfaces>(target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NUnit);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NSubstitute);
|
|
|
|
conf.RegisterWpf();
|
|
conf.RegisterWinForms();
|
|
conf.RegisterWindowsFormsIntegration();
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Audio : FrameworkProject
|
|
{
|
|
public JD_Audio()
|
|
{
|
|
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.ReferencesByPath.Add(Externs.NAudio);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.Cottle);
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.ReferencesByName.Add("System.Windows.Forms");
|
|
conf.ReferencesByNuGetPackage.Add(Externs.UbisoftPerforce);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
|
|
|
|
conf.AddPublicDependency<JD_TeaBoxAddinSystem>(target);
|
|
conf.AddPublicDependency<TeaBox_Macros>(target);
|
|
conf.AddPublicDependency<JD_Collections>(target);
|
|
conf.AddPublicDependency<JD_Asset>(target);
|
|
conf.AddPublicDependency<JD_Serialization>(target);
|
|
conf.AddPublicDependency<JD_Perforce>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Bloomberg : FrameworkProject
|
|
{
|
|
public JD_Bloomberg()
|
|
{
|
|
// TODO: this.MergeDependency<Bloomberg_Client>(); <-- delete this project
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<Plume_Bloomberg_Service>(target);
|
|
AdditionalContentCopyIfNewer.Add(@"bloomberg_settings_tools.ini");
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_ElasticSearch : FrameworkProject
|
|
{
|
|
public JD_ElasticSearch()
|
|
{
|
|
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<JD_Core>(target);
|
|
conf.AddPublicDependency<JD_Interfaces>(target);
|
|
conf.ReferencesByPath.Add(Externs.ElasticSearch);
|
|
conf.ReferencesByPath.Add(Externs.Nest);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NewtonsoftJsonNuget);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Localization_Core : FrameworkProject
|
|
{
|
|
public JD_Localization_Core()
|
|
{
|
|
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#region GuiLevel
|
|
|
|
[Generate]
|
|
public class JD_WPF : FrameworkProject
|
|
{
|
|
public JD_WPF() { }
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
|
|
conf.AddPublicDependency<JD_Core>(target);
|
|
conf.AddPublicDependency<JD_Interfaces>(target);
|
|
conf.RegisterWpf();
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Controls : FrameworkProject
|
|
{
|
|
public JD_Controls()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.AddPublicDependency<TeaBox_Application>(target);
|
|
conf.AddPublicDependency<JD_Interfaces>(target);
|
|
|
|
conf.SolutionFolder = "framework/controls";
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Filters : FrameworkProject
|
|
{
|
|
public JD_Filters()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.RegisterWinForms();
|
|
conf.RegisterWindowsFormsIntegration();
|
|
conf.RegisterWpf();
|
|
|
|
conf.ReferencesByPath.Add(Externs.XceedDatagrid);
|
|
|
|
conf.AddPublicDependency<TeaBox_Application>(target);
|
|
conf.AddPublicDependency<JD_Core>(target);
|
|
conf.AddPublicDependency<JD_Serialization>(target);
|
|
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NewtonsoftJsonNuget);
|
|
|
|
conf.SolutionFolder = "framework/controls";
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Pickers : FrameworkProject
|
|
{
|
|
public JD_Pickers()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.RegisterWinForms();
|
|
conf.RegisterWindowsFormsIntegration();
|
|
conf.RegisterWpf();
|
|
conf.ReferencesByPath.Add(Externs.XceedDatagrid);
|
|
|
|
conf.AddPublicDependency<TeaBox_Application>(target);
|
|
conf.AddPublicDependency<JD_Filters>(target);
|
|
conf.AddPublicDependency<JD_Core>(target);
|
|
conf.AddPublicDependency<JD_Asset>(target);
|
|
conf.AddPublicDependency<JD_Audio>(target);
|
|
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
|
|
|
|
conf.SolutionFolder = "framework/controls";
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_PropertyEditor : FrameworkProject
|
|
{
|
|
public JD_PropertyEditor()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.RegisterWpf();
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.AddPublicDependency<JD_Core>(target);
|
|
conf.AddPublicDependency<JD_Serialization>(target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproSharedDependency);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproGridsDependency);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproEditorDependency);
|
|
conf.AddPublicDependency<Plume_Interfaces_WPF>(target);
|
|
TeaBoxProject.ConfigureResourceScheme(this);
|
|
conf.SolutionFolder = "framework/controls";
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region AppLevel
|
|
|
|
[Generate]
|
|
public class JD_Application : FrameworkProject
|
|
{
|
|
public JD_Application()
|
|
{
|
|
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.RegisterWpf();
|
|
conf.AddPublicDependency<JD_Interfaces>(target);
|
|
conf.AddPublicDependency<JD_Audio>(target);
|
|
conf.AddPublicDependency<JD_Remoting>(target);
|
|
conf.AddPublicDependency<JD_Collections>(target);
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.AddPublicDependency<Plume_Application_WPF>(target);
|
|
conf.AddPublicDependency<Plume_Interfaces_WPF>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Application_TeaBox : FrameworkProject
|
|
{
|
|
public JD_Application_TeaBox()
|
|
{
|
|
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.RegisterWpf();
|
|
conf.AddPublicDependency<JD_Application>(target);
|
|
conf.AddPublicDependency<JD_TeaBoxAddinSystem>(target);
|
|
conf.AddPublicDependency<JD_Remoting>(target);
|
|
conf.AddPublicDependency<TeaBox_Application>(target);
|
|
conf.AddPublicDependency<JD_Collections>(target);
|
|
conf.AddPublicDependency<JD_Interfaces>(target);
|
|
conf.AddPublicDependency<JD_Bloomberg>(target);
|
|
conf.AddPublicDependency<JD_Perforce>(target);
|
|
conf.AddPublicDependency<JD_Controls>(target);
|
|
conf.AddPublicDependency<JD_WPF>(target);
|
|
conf.AddPublicDependency<JD_Audio>(target);
|
|
conf.AddPublicDependency<JD_Asset>(target);
|
|
conf.ReferencesByNuGetPackage.Add("ProfessionalSpammer", "1.5.0");
|
|
conf.ReferencesByNuGetPackage.Add(Externs.UbisoftPerforce);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.UbisoftCore);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NUnit);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NSubstitute);
|
|
conf.AddPublicDependency<TeaBox_Macros>(target);
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.ReferencesByName.Add("System.Windows.Forms");
|
|
conf.ReferencesByPath.Add(Externs.NAudio);
|
|
conf.ReferencesByPath.Add(Externs.SandBar);
|
|
TeaBoxProject.ConfigureResourceScheme(this);
|
|
AdditionalNone.Add(@"[project.SourceRootPath]\project.json");
|
|
conf.RegisterWpf();
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_CurveEditor : FrameworkProject
|
|
{
|
|
public JD_CurveEditor()
|
|
{
|
|
TeaBoxProject.ConfigureResourceScheme(this);
|
|
}
|
|
|
|
public override bool UnitTestCompliant
|
|
{
|
|
get { return true; }
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.RegisterWpf();
|
|
conf.RegisterWinForms();
|
|
conf.AddPublicDependency<TeaBox_Application>(target);
|
|
conf.AddPublicDependency<JD_Core>(target);
|
|
conf.AddPublicDependency<JD_ColorForms>(target);
|
|
|
|
conf.ReferencesByName.Remove("System.ComponentModel.Composition");
|
|
conf.ReferencesByPath.Add(Externs.SandBar);
|
|
conf.SolutionFolder = "framework/controls";
|
|
}
|
|
}
|
|
|
|
|
|
[Generate]
|
|
public class JD_VideoPlayer : FrameworkProject
|
|
{
|
|
public JD_VideoPlayer()
|
|
{
|
|
TeaBoxProject.ConfigureResourceScheme(this);
|
|
AddTargets(Utilities.GetDefaultTargets());
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.RegisterWinForms();
|
|
conf.ReferencesByName.Remove("System.ComponentModel.Composition");
|
|
conf.ReferencesByPath.Add(PleoNet.DllPath);
|
|
conf.AddPublicDependency<JD_Application_TeaBox>(target);
|
|
conf.SolutionFolder = "framework/controls";
|
|
conf.ReferencesByNuGetPackage.Add(Externs.FFmpegNet);
|
|
AdditionalContentCopyIfNewer.Add(BranchRoot + @"\extern\ffmpeg\ffmpeg.exe");
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Timeline : FrameworkProject
|
|
{
|
|
public JD_Timeline()
|
|
{
|
|
AddTargets(Utilities.GetDefaultTargets());
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.RegisterWinForms();
|
|
conf.RegisterWindowsFormsIntegration();
|
|
conf.RegisterWpf();
|
|
conf.AddPublicDependency<JD_TeaBoxAddinSystem>(target);
|
|
conf.AddPublicDependency<JD_Core>(target);
|
|
conf.AddPublicDependency<JD_ColorForms>(target);
|
|
conf.AddPublicDependency<JD_Remoting>(target);
|
|
conf.AddPublicDependency<JD_Serialization>(target);
|
|
conf.AddPublicDependency<JD_WPF>(target);
|
|
conf.AddPublicDependency<JD_Application_TeaBox>(target);
|
|
conf.AddPublicDependency<JD_VideoPlayer>(target);
|
|
conf.AddPublicDependency<TeaBox_Macros>(target);
|
|
conf.AddPublicDependency<JD_CurveEditor>(target);
|
|
conf.AddPublicDependency<JD_Perforce>(target);
|
|
conf.ReferencesByPath.Add(Externs.CameraScoringFilesInfoProvider);
|
|
conf.ReferencesByPath.Add(Externs.SandGrid);
|
|
conf.ReferencesByPath.Add(Externs.SandBar);
|
|
conf.ReferencesByPath.Add(PleoNet.DllPath);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.UbisoftCore);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.UbisoftPerforce);
|
|
TeaBoxProject.ConfigureResourceScheme(this);
|
|
conf.AddPublicDependency<JD_Pickers>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Timeline_Plume : FrameworkProject
|
|
{
|
|
public JD_Timeline_Plume()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.RegisterWinForms();
|
|
conf.RegisterWpf();
|
|
conf.RegisterWindowsFormsIntegration();
|
|
conf.AddPublicDependency<JD_Timeline>(target);
|
|
conf.AddPublicDependency<Plume_Application_WPF>(target);
|
|
conf.AddPublicDependency<Plume_Interfaces_WPF>(target);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region SpecificApps
|
|
|
|
[Generate]
|
|
public class DjRedo_Core : FrameworkProject
|
|
{
|
|
public DjRedo_Core()
|
|
{
|
|
Name = "DjRedo.Core";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.ReferencesByName.Add("System.Configuration");
|
|
conf.ReferencesByName.Add("System.Web.Extensions");
|
|
conf.ReferencesByName.Add("System.Runtime.Serialization");
|
|
conf.ReferencesByName.Add("System.ComponentModel.DataAnnotations");
|
|
conf.ReferencesByNuGetPackage.Add(Externs.UbisoftCore);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NewtonsoftJsonNuget);
|
|
conf.AddPublicDependency<Plume_Perforce_Service>(target);
|
|
conf.ReferencesByNuGetPackage.Add("System.Reactive.Core", "3.0.0.0");
|
|
conf.ReferencesByNuGetPackage.Add("System.Reactive.Interfaces", "3.0.0.0");
|
|
conf.ReferencesByNuGetPackage.Add("System.Reactive.Linq", "3.0.0.0");
|
|
conf.ReferencesByNuGetPackage.Add(Externs.WaapiNetCore);
|
|
conf.ReferencesByNuGetPackage.Add("Collections.Complete", "0.0.8");
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NLogNuget);
|
|
AdditionalNoneAlwaysCopy.Add("Configuration/defaultConfiguration.xml");
|
|
AdditionalNoneAlwaysCopy.Add("Configuration/DjRedoConfiguration.xsd");
|
|
|
|
conf.AddPublicDependency<JD_Serialization>(target);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class JD_Soundwich_Core : FrameworkProject
|
|
{
|
|
public JD_Soundwich_Core()
|
|
{
|
|
ResourcesPath = @"[project.SourceRootPath]\Resources";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.RegisterWinForms();
|
|
conf.RegisterWpf();
|
|
conf.AddPublicDependency<Plume_Interfaces>(target);
|
|
conf.AddPublicDependency<Plume_Interfaces_WPF>(target);
|
|
conf.AddPublicDependency<Plume_Application_WPF>(target);
|
|
conf.AddPublicDependency<Plume_Perforce_Service>(target);
|
|
conf.ReferencesByName.Add("WindowsFormsIntegration");
|
|
AdditionalContentCopyIfNewer.Add("Soundwich.dll");
|
|
AdditionalContentCopyIfNewer.Add("libvorbis.dll");
|
|
AdditionalContentCopyIfNewer.Add("libogg.dll");
|
|
conf.AddPublicDependency<JD_PropertyEditor>(target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproDockingDependency);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#region Plume
|
|
|
|
public abstract class PlumeFrameworkProject : FrameworkProject
|
|
{
|
|
protected PlumeFrameworkProject()
|
|
{
|
|
SourceRootPath = @"[project.RootPath]\[project.ProjectType]\Plume\src\framework\[project.Name]";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
|
|
base.ConfigureAll(conf, target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
|
|
conf.SolutionFolder = "framework/plume/framework";
|
|
}
|
|
}
|
|
|
|
public abstract class PlumeConsoleModuleProject : FrameworkProject
|
|
{
|
|
protected PlumeConsoleModuleProject()
|
|
{
|
|
SourceRootPath = @"[project.RootPath]\[project.ProjectType]\Plume\src\modules\Console\[project.Name]";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<Plume_Interfaces_Console>(target);
|
|
conf.Options.Add(Options.CSharp.TreatWarningsAsErrors.Disabled);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.CommandLineParser);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
|
|
conf.SolutionFolder = "framework/plume/modules/console";
|
|
}
|
|
}
|
|
|
|
public abstract class PlumeWPFModuleProject : FrameworkProject
|
|
{
|
|
protected PlumeWPFModuleProject()
|
|
{
|
|
SourceRootPath = @"[project.RootPath]\[project.ProjectType]\Plume\src\modules\WPF\[project.Name]";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.Options.Add(Options.CSharp.TreatWarningsAsErrors.Disabled);
|
|
conf.AddPublicDependency<Plume_Interfaces_WPF>(target);
|
|
conf.AddPublicDependency<Plume_WPF>(target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproSharedDependency);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
|
|
conf.RegisterWpf();
|
|
conf.SolutionFolder = "framework/plume/modules/wpf";
|
|
}
|
|
}
|
|
|
|
public abstract class PlumeServiceProject : FrameworkProject
|
|
{
|
|
protected PlumeServiceProject()
|
|
{
|
|
SourceRootPath = @"[project.RootPath]\[project.ProjectType]\Plume\src\services\[project.Name]";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
|
|
conf.AddPublicDependency<Plume_Interfaces>(target); // TODO: Plume.Interface should be splitted even more
|
|
conf.SolutionFolder = "framework/plume/services";
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Library containing core classes for services and modules
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Core : PlumeFrameworkProject
|
|
{
|
|
public Plume_Core()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
//conf.ReferencesByNuGetPackage.Add(Externs.NLogNuget);
|
|
conf.ReferencesByNuGetPackage.Add("NLog", "4.4.12");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Library containing interfaces and abstract classes only
|
|
/// that is shared between console applications and modules
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Interfaces : PlumeFrameworkProject
|
|
{
|
|
public Plume_Interfaces()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<Plume_Core>(target);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Library containing interfaces and abstract classes only
|
|
/// that is shared between Console applications
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Interfaces_Console : PlumeFrameworkProject
|
|
{
|
|
public Plume_Interfaces_Console()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<Plume_Interfaces>(target);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Library containing interfaces and abstract classes only
|
|
/// that is shared between WPF applications and modules
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Interfaces_WPF : PlumeFrameworkProject
|
|
{
|
|
public Plume_Interfaces_WPF()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<Plume_Interfaces>(target);
|
|
conf.AddPublicDependency<Plume_Icons>(target);
|
|
conf.AddPublicDependency<Plume_WPF>(target);
|
|
conf.RegisterWpf();
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproDockingDependency);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproSyntaxEditorDependency);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproTextDependency);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproGridsDependency);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Library containing icons in multiple resolutions, and themable
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Icons : PlumeFrameworkProject
|
|
{
|
|
public Plume_Icons()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.RegisterWpf();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Project for WPF specific code
|
|
/// Converters, ViewModel helpers...
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_WPF : PlumeFrameworkProject
|
|
{
|
|
public Plume_WPF()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.RegisterWpf();
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproSharedDependency);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Actipro add-on for themed data grids
|
|
/// </summary>
|
|
[Generate]
|
|
public class DataGrid_Contrib : PlumeFrameworkProject
|
|
{
|
|
public DataGrid_Contrib()
|
|
{
|
|
SourceRootPath = @"[project.RootPath]\[project.ProjectType]\Plume\src\framework\Actipro\[project.Name]";
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.SolutionFolder += @"\Actipro";
|
|
conf.RegisterWpf();
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproSharedDependency);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Library defining a console application
|
|
/// implementing interfaces from <see cref="Plume_Interfaces"/>
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Application : PlumeFrameworkProject
|
|
{
|
|
public Plume_Application()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<Plume_Interfaces>(target);
|
|
conf.AddPublicDependency<Plume_Core>(target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.CommandLineParser);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NewtonsoftJsonNuget);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Library defining a Console application
|
|
/// implementing interfaces from <see cref="Plume_Interfaces_Console"/>
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Application_Console : PlumeFrameworkProject
|
|
{
|
|
public Plume_Application_Console()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<Plume_Application>(target);
|
|
conf.AddPublicDependency<Plume_Interfaces>(target);
|
|
conf.AddPublicDependency<Plume_Interfaces_Console>(target);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Library defining a WPF application
|
|
/// implementing interfaces from <see cref="Plume_Interfaces_WPF"/>
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Application_WPF : PlumeFrameworkProject
|
|
{
|
|
public Plume_Application_WPF()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<Plume_Application>(target);
|
|
conf.AddPublicDependency<Plume_Interfaces>(target);
|
|
conf.AddPublicDependency<Plume_Interfaces_WPF>(target);
|
|
conf.AddPublicDependency<Plume_WPF>(target);
|
|
conf.RegisterWpf();
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproDockingDependency);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproSharedDependency);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproGridsDependency);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproEditorDependency);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproEditorInteropGridDependency);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ToastNotifications);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ToastNotificationsMessages);
|
|
conf.ReferencesByNuGetPackage.Add("Ben.Demystifier", "0.1.4");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Library defining some WPF editors
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Editors_WPF : PlumeFrameworkProject
|
|
{
|
|
public Plume_Editors_WPF()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<Plume_WPF>(target);
|
|
conf.RegisterWpf();
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproSharedDependency);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproGridsDependency);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproEditorDependency);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Service to handle MetaData
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_MetaData_Service : PlumeServiceProject
|
|
{
|
|
public Plume_MetaData_Service()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// For handling MetaData through ElasticSearch
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_MetaData_ElasticSearch : PlumeServiceProject
|
|
{
|
|
public Plume_MetaData_ElasticSearch()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NestNuget);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NestJsonNuget);
|
|
conf.AddPublicDependency<Plume_MetaData_Service>(target);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Service to handle Perforce
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Perforce_Service : PlumeServiceProject
|
|
{
|
|
public Plume_Perforce_Service()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.UbisoftPerforce);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Service to handle Bloomberg
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Bloomberg_Service : PlumeServiceProject
|
|
{
|
|
public Plume_Bloomberg_Service()
|
|
{
|
|
ResourceFilesExtensions.Add(".ini");
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.BloombergClient);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Service to handle Quik
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Quik_Service : PlumeServiceProject
|
|
{
|
|
public Plume_Quik_Service()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.QuikCore);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.QuikRemoting);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.QuikControl);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Service to handle Tracking
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Tracking_Service : PlumeServiceProject
|
|
{
|
|
public Plume_Tracking_Service()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.ReferencesByName.Add("System.DirectoryServices.AccountManagement");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Module to say "HelloWorld"
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_HelloWorld : PlumeConsoleModuleProject
|
|
{
|
|
public Plume_HelloWorld()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
// add services with "conf.AddPublicDependency<Plume_MyService_Service>(target);"
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Module to handle Perforce
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Perforce : PlumeWPFModuleProject
|
|
{
|
|
public Plume_Perforce()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<Plume_Perforce_Service>(target);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Properties module
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Properties : PlumeWPFModuleProject
|
|
{
|
|
public Plume_Properties()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproGridsDependency);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Module to edit text documents
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_TextEditor : PlumeWPFModuleProject
|
|
{
|
|
public Plume_TextEditor()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproSyntaxEditorDependency);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproTextDependency);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.ActiproTextLLParserDependency);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Module to handle Tracking
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Tracking : PlumeWPFModuleProject
|
|
{
|
|
public Plume_Tracking()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<Plume_Tracking_Service>(target);
|
|
conf.AddPublicDependency<Plume_MetaData_Service>(target);
|
|
conf.AddPublicDependency<Plume_MetaData_ElasticSearch>(target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.UbisoftStudio);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Module to view image documents
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_ImageViewer : PlumeWPFModuleProject
|
|
{
|
|
public Plume_ImageViewer()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Module to log in output
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Output : PlumeWPFModuleProject
|
|
{
|
|
public Plume_Output()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
//conf.ReferencesByNuGetPackage.Add(Externs.NLogNuget);
|
|
conf.ReferencesByNuGetPackage.Add("NLog", "4.4.12");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Module to log errors, warnings, messages
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_ErrorList : PlumeWPFModuleProject
|
|
{
|
|
public Plume_ErrorList()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
//conf.ReferencesByNuGetPackage.Add(Externs.NLogNuget);
|
|
conf.ReferencesByNuGetPackage.Add("NLog", "4.4.12");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Wpf module to handle crashes
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_CrashReporter : PlumeWPFModuleProject
|
|
{
|
|
public Plume_CrashReporter()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.AddPublicDependency<Plume_Bloomberg_Service>(target);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Wpf module to handle markfdown documents
|
|
/// </summary>
|
|
[Generate]
|
|
public class Plume_Markdown : PlumeWPFModuleProject
|
|
{
|
|
public Plume_Markdown()
|
|
{
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.Markdig);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Tool to export svg into multiple resolutions and themed png
|
|
/// </summary>
|
|
[Generate]
|
|
public class IconGenerator : FrameworkProject
|
|
{
|
|
public IconGenerator()
|
|
{
|
|
SourceRootPath = @"[project.RootPath]\[project.ProjectType]\Plume\tools\[project.Name]";
|
|
OutputType = Configuration.OutputType.DotNetConsoleApp;
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
conf.RegisterWpf();
|
|
conf.Options.Add(Options.Vc.Compiler.GenerateXMLDocumentation.Enable);
|
|
conf.Options.Add(Options.CSharp.TreatWarningsAsErrors.Enabled);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.Morelinq);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.Svg);
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.SolutionFolder = "framework/plume/tools";
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region AdditionalFileGenerator
|
|
// Class called through MEF
|
|
|
|
public class SerializationFilesGenerator : IAdditionalFileGenerator
|
|
{
|
|
/// <summary>
|
|
/// Generated c# file names are deterministic.
|
|
/// </summary>
|
|
/// <remarks>This constant must be synchronized with CSharpCooker.cpp</remarks>
|
|
private const int FileCount = 10;
|
|
|
|
public void Generate()
|
|
{
|
|
var project = new JD_Serialization();
|
|
var basePath = project.ResolveString(project.SourceRootPath);
|
|
var directory = Path.Combine(basePath, "uaf");
|
|
|
|
string baseFactorFileName = Path.Combine(directory, "UAF_base.cs");
|
|
if (!File.Exists(baseFactorFileName))
|
|
{
|
|
if (!Directory.Exists(directory))
|
|
Directory.CreateDirectory(directory);
|
|
File.WriteAllText(baseFactorFileName, "");
|
|
}
|
|
|
|
for (int i = 1; i <= FileCount; i++)
|
|
{
|
|
string fileName = Path.Combine(basePath, string.Format("uaf\\UAF_Factory_{0:00}.cs", i));
|
|
|
|
if (!File.Exists(fileName))
|
|
{
|
|
File.WriteAllText(fileName, "");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public class ProjectIdGenerator : IAdditionalFileGenerator
|
|
{
|
|
public void Generate()
|
|
{
|
|
AutoGenerateFileAssociations();
|
|
}
|
|
|
|
private void AutoGenerateFileAssociations()
|
|
{
|
|
var project = new JD_Core();
|
|
|
|
string fileAssociationsContent = "";
|
|
var fileAssociations = Utilities.GetInstances<ApplicationProject>().SelectMany(x => x.FileAssociations).ToList();
|
|
var icons = fileAssociations.Icons().ToList();
|
|
foreach (var fileAssociation in fileAssociations)
|
|
{
|
|
fileAssociationsContent += string.Format("{0};{1};{2};{3}\n", fileAssociation.Extension, fileAssociation.ApplicationName, icons.IndexOf(fileAssociation.IconPath) + 1, fileAssociation.IconPath);
|
|
}
|
|
var resourcesPath = project.ResolveString(project.ResourcesPath);
|
|
if (!Directory.Exists(resourcesPath))
|
|
{
|
|
Directory.CreateDirectory(resourcesPath);
|
|
}
|
|
var filePath = Path.GetFullPath(project.ResolveString(string.Format(@"{0}\Resources\FileAssociations.csv", project.SourceRootPath)));
|
|
if (File.Exists(filePath))
|
|
{
|
|
File.SetAttributes(filePath, FileAttributes.Normal);
|
|
}
|
|
File.WriteAllText(filePath, fileAssociationsContent);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Adobe
|
|
[Generate]
|
|
public class Shuttle_Api : FrameworkProject
|
|
{
|
|
public Shuttle_Api()
|
|
{
|
|
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NewtonsoftJsonNuget);
|
|
|
|
conf.SolutionFolder = "framework/adobe";
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class Shuttle : FrameworkProject
|
|
{
|
|
public Shuttle()
|
|
{
|
|
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = "framework/adobe";
|
|
|
|
conf.AddPublicDependency<Shuttle_Api>(target);
|
|
conf.ReferencesByName.Add("System.Drawing");
|
|
conf.AddPublicDependency<Plume_Core>(target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NewtonsoftJsonNuget);
|
|
|
|
// SignalR
|
|
conf.ReferencesByNuGetPackage.Add(Externs.SignalR);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.OwinHosting);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.OwinHttpListener);
|
|
|
|
// TODO: move tests to appropriateOwinHttpListener folder and project
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NUnit);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NSubstitute);
|
|
}
|
|
}
|
|
|
|
[Generate]
|
|
public class ShuttleInstaller : FrameworkProject
|
|
{
|
|
public ShuttleInstaller()
|
|
{
|
|
|
|
}
|
|
|
|
public override void ConfigureAll(Configuration conf, Target target)
|
|
{
|
|
base.ConfigureAll(conf, target);
|
|
|
|
conf.SolutionFolder = "framework/adobe";
|
|
|
|
conf.ReferencesByName.Add("System.IO.Compression.FileSystem");
|
|
conf.AddPublicDependency<Plume_Core>(target);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.NewtonsoftJsonNuget);
|
|
conf.ReferencesByNuGetPackage.Add(Externs.RestSharpNuGet);
|
|
}
|
|
}
|
|
#endregion
|
|
}
|