using System;
using System.IO;
using System.Linq;
using JustDance.Engine;
using JustDance.Tools.Extern;
using Sharpmake;
namespace JustDance.Tools
{
///
/// Base class for a module
///
public abstract class ModuleProject : BaseProject
{
public ModuleProject()
: base("modules", false)
{
UseOwnFolderInOutput = false;
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.SolutionFolder = "modules";
conf.AddPublicDependency(target);
}
}
///
/// Base class for a WPF module
///
public abstract class WpfModuleProject : ModuleProject
{
public WpfModuleProject()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.AddPublicDependency(target);
conf.RegisterWpf();
}
}
///
/// Base class for a WPF module
///
public abstract class ConsoleModuleProject : ModuleProject
{
public ConsoleModuleProject()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.AddPublicDependency(target);
// Maybe to remove for console module
conf.RegisterWpf();
}
}
///
/// Module to handle connection with Engine
///
[Generate]
public class JD_Remoting_WPF_Module : WpfModuleProject
{
public JD_Remoting_WPF_Module()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.ReferencesByNuGetPackage.Add(Externs.NewtonsoftJsonNuget);
}
}
///
/// Module to handle connection with Engine
///
[Generate]
public class JD_Remoting_Console_Module : ConsoleModuleProject
{
public JD_Remoting_Console_Module()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
}
}
///
/// Module to handle connection with Engine
///
[Generate]
public class JD_Plugin_WPF_Module : WpfModuleProject
{
public JD_Plugin_WPF_Module()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproGridsDependency);
conf.AddPublicDependency(target);
}
}
///
/// Module to handle connection with Engine
///
[Generate]
public class JD_Plugin_Console_Module : ConsoleModuleProject
{
public JD_Plugin_Console_Module()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
}
}
///
/// Module to handle engine logs
///
[Generate]
public class JD_EngineLogger : WpfModuleProject
{
public JD_EngineLogger()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
}
}
///
/// Module to navigate in engine current scene
///
[Generate]
public class JD_SceneExplorer : WpfModuleProject
{
public JD_SceneExplorer()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.AddPublicDependency(target);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproSharedDependency);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproGridsDependency);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproDockingDependency);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
}
}
///
/// Module to edit properties of engine objects
///
[Generate]
public class JD_Inspector : WpfModuleProject
{
public JD_Inspector()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproSharedDependency);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproGridsDependency);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproDockingDependency);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.RegisterWpf();
}
}
///
/// Module to browse assets
///
[Generate]
class JD_AssetBrowser : WpfModuleProject
{
public JD_AssetBrowser()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.RegisterWpf();
conf.RegisterWinForms();
conf.ReferencesByPath.Add(Externs.XceedDatagrid);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproGridsDependency);
conf.ReferencesByName.Add("System.Drawing");
}
}
///
/// Module to quickly preview assets
///
[Generate]
class JD_AssetViewer : WpfModuleProject
{
public JD_AssetViewer()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.RegisterWpf();
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.ReferencesByPath.Add(Externs.NAudio);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproDockingDependency);
}
}
///
/// Module to create new assets
///
[Generate]
class JD_AssetCreator : WpfModuleProject
{
public JD_AssetCreator()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.RegisterWpf();
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproDockingDependency);
}
}
///
/// Module to view asset dependencies
///
[Generate]
class JD_AssetDependencies : WpfModuleProject
{
public JD_AssetDependencies()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.RegisterWpf();
conf.RegisterGraphX();
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproEditorDependency);
}
}
[Generate]
public class JD_GameLauncher : WpfModuleProject
{
public JD_GameLauncher()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.RegisterWpf();
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
}
}
///
/// Module to report application crashes
///
[Generate]
public class JD_CrashReporter : WpfModuleProject
{
public JD_CrashReporter()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.AddPublicDependency(target);
AdditionalContentCopyIfNewer.Add(@"bloomberg_settings_tools.ini");
}
}
///
/// Module to add quik actions
///
[Generate]
public class JD_Quik : WpfModuleProject
{
public JD_Quik()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.ReferencesByNuGetPackage.Add(Externs.QuikCore);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.ReferencesByName.Add("System.Drawing");
}
}
///
/// Module to play videos
///
[Generate]
public class JD_VideoPlayer_WPF : WpfModuleProject
{
public JD_VideoPlayer_WPF()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.RegisterWpf();
conf.RegisterWinForms();
conf.RegisterWindowsFormsIntegration();
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.ReferencesByNuGetPackage.Add(Externs.JetBrainsAnnotationsNuget);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproDockingDependency);
conf.ReferencesByPath.Add(PleoNet.DllPath);
}
}
///
/// Module to edit tpl files
///
[Generate]
public class JD_TplEditor : WpfModuleProject
{
public JD_TplEditor()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.RegisterWpf();
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproGridsDependency);
}
}
[Generate]
internal class JD_DjRedo : WpfModuleProject
{
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.ReferencesByNuGetPackage.Add(Externs.NLogNuget);
conf.ReferencesByNuGetPackage.Add(Externs.NewtonsoftJsonNuget);
conf.ReferencesByNuGetPackage.Add(Externs.WaapiNetCore);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
}
}
[Generate]
internal class JD_Soundwich : WpfModuleProject
{
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.ReferencesByNuGetPackage.Add(Externs.NLogNuget);
conf.ReferencesByNuGetPackage.Add(Externs.NewtonsoftJsonNuget);
conf.ReferencesByNuGetPackage.Add(Externs.WaapiNetCore);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
}
}
[Generate]
internal class JD_Shotgun_WPF : WpfModuleProject
{
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproViewsDependency);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproEditorDependency);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
}
}
[Generate]
internal class JD_Jira_WPF : WpfModuleProject
{
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproViewsDependency);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproEditorDependency);
conf.AddPublicDependency(target);
conf.ReferencesByNuGetPackage.Add("Ubisoft.ActiveDirectory", "1.1.5");
conf.ReferencesByName.Add("System.DirectoryServices.AccountManagement");
conf.AddPublicDependency(target);
}
}
[Generate]
internal class JD_Deadline_WPF : WpfModuleProject
{
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproChartsDependency);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproEditorDependency);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
}
}
///
/// Module to handle Oasis interaction
///
[Generate]
public class JD_Oasis_Module : WpfModuleProject
{
public JD_Oasis_Module()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.ReferencesByName.Add("System.Drawing");
conf.ReferencesByName.Add("System.Net.Http");
conf.ReferencesByNuGetPackage.Add(Externs.ActiproDockingDependency);
conf.ReferencesByNuGetPackage.Add(Externs.UbisoftPerforce);
}
}
///
/// Module to handle exporting localisation
///
[Generate]
public class JD_Rosetta_Module : WpfModuleProject
{
public JD_Rosetta_Module()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.RegisterWpf();
conf.ReferencesByNuGetPackage.Add(Externs.ActiproDockingDependency);
}
}
[Generate]
public class JD_Rosetta_Module_OptionsGrid : WpfModuleProject
{
public JD_Rosetta_Module_OptionsGrid()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.RegisterWpf();
conf.ReferencesByNuGetPackage.Add(Externs.ActiproDockingDependency);
}
}
[Generate]
internal class Orbit_Module : WpfModuleProject
{
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.ReferencesByNuGetPackage.Add(Externs.UbiStudio);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproDockingDependency);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproRibbonDependency);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproShellDependency);
conf.ReferencesByNuGetPackage.Add(Externs.MagickNetDependency);
}
}
[Generate]
public class JD_Guinness_WPF_Module : WpfModuleProject
{
public JD_Guinness_WPF_Module()
{ }
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.RegisterWpf();
conf.RegisterWinForms();
conf.ReferencesByNuGetPackage.Add(Externs.ActiproDockingDependency);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproEditorDependency);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproRibbonDependency);
}
}
[Generate]
internal class JD_Fontastic_WPF : WpfModuleProject
{
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.AddPublicDependency(target);
conf.ReferencesByNuGetPackage.Add(Externs.ActiproRibbonDependency);
conf.ReferencesByNuGetPackage.Add(Externs.UbisoftPerforce);
AdditionalContentCopyIfNewer.Add(@"Configuration/FontasticConfiguration.json");
}
}
///
/// Module to handle connection with Engine
///
[Generate]
public class JD_Nas_Reporting_Console_Module : ConsoleModuleProject
{
public JD_Nas_Reporting_Console_Module()
{
}
public override void ConfigureAll(Configuration conf, Target target)
{
base.ConfigureAll(conf, target);
conf.AddPublicDependency(target);
conf.ReferencesByNuGetPackage.Add(Externs.CommandLineParser);
conf.ReferencesByNuGetPackage.Add(Externs.NewtonsoftJsonNuget);
conf.ReferencesByName.Add("System.IO.Compression.FileSystem");
conf.ReferencesByName.Add("System.Net.Http");
}
}
}