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"); } } }