using System.IO; using Sharpmake; namespace JustDance.Tools { /// /// Contains the paths to resolve the externs /// public static class Externs { public static readonly string ExternPath = BaseProject.BranchRoot + @"\tools\extern\"; #region Video public static readonly NuGetDependency FFmpegNet = new NuGetDependency("FFmpegNet", "0.0.5"); #endregion #region Image public static readonly string ImageMagickConvert = Path.Combine(ExternPath, "ImageMagick", "convert.exe"); public static readonly string ImageMagickMontage = Path.Combine(ExternPath, "ImageMagick", "montage.exe"); public static readonly string PngQuant = Path.Combine(ExternPath, "pngquant"); public static readonly string TargaImage = Path.Combine(ExternPath, "Targa", "TargaImage.dll"); public static readonly NuGetDependency MagickNetDependency = new NuGetDependency("Magick.NET-Q16-AnyCPU", "7.16.1"); #endregion #region Audio public static readonly string NAudio = ExternPath + @"NAudio\NAudio.dll"; public static readonly string NAudioWindowMediaFormat = ExternPath + @"NAudio\NAudio.WindowsMediaFormat.dll"; public static readonly string Sox = BaseProject.BranchRoot + @"\tools\legacy\Sox"; #endregion #region Unit Tests public static readonly NuGetDependency NUnit = new NuGetDependency("NUnit", "3.5.0"); public static readonly NuGetDependency NSubstitute = new NuGetDependency("NSubstitute", "1.10.0"); #endregion #region Actipro public static string ActiproVersion = "2018.1.673"; public static readonly NuGetDependency ActiproGridsDependency = new NuGetDependency("ActiproSoftware.Grids.Wpf", ActiproVersion); public static readonly NuGetDependency ActiproSharedDependency = new NuGetDependency("ActiproSoftware.Shared.Wpf", ActiproVersion); public static readonly NuGetDependency ActiproEditorDependency = new NuGetDependency("ActiproSoftware.Editors.Wpf", ActiproVersion); public static readonly NuGetDependency ActiproDockingDependency = new NuGetDependency("ActiproSoftware.Docking.Wpf", ActiproVersion); public static readonly NuGetDependency ActiproViewsDependency = new NuGetDependency("ActiproSoftware.Views.Wpf", ActiproVersion); public static readonly NuGetDependency ActiproChartsDependency = new NuGetDependency("ActiproSoftware.Charts.Wpf", ActiproVersion); public static readonly NuGetDependency ActiproSyntaxEditorDependency = new NuGetDependency("ActiproSoftware.SyntaxEditor.Wpf", ActiproVersion); public static readonly NuGetDependency ActiproTextDependency = new NuGetDependency("ActiproSoftware.Text.Wpf", ActiproVersion); public static readonly NuGetDependency ActiproTextLLParserDependency = new NuGetDependency("ActiproSoftware.Text.LLParser.Wpf", ActiproVersion); public static readonly NuGetDependency ActiproEditorInteropGridDependency = new NuGetDependency("ActiproSoftware.Editors.Interop.Grids.Wpf", ActiproVersion); public static readonly NuGetDependency ActiproShellDependency = new NuGetDependency("ActiproSoftware.Shell.Wpf", "2019.1.685"); public static readonly NuGetDependency ActiproRibbonDependency = new NuGetDependency("ActiproSoftware.Ribbon.Wpf", ActiproVersion); #endregion #region Quik public static string QuikVersion = "1.5.1"; public static readonly NuGetDependency QuikCore = new NuGetDependency("Quik.Core", QuikVersion); public static readonly NuGetDependency QuikRemoting = new NuGetDependency("Quik.Remoting", QuikVersion); public static readonly NuGetDependency QuikControl = new NuGetDependency("Quik.Control", QuikVersion); #endregion #region Waapi.Net public static readonly NuGetDependency WaapiNetCore = new NuGetDependency("Waapinet.Core", "2.0.8"); #endregion #region Serialization public static readonly NuGetDependency NewtonsoftJsonNuget = new NuGetDependency("Newtonsoft.Json", "13.0.1"); public static readonly string NLua = ExternPath + @"\NLua\NLua.dll"; public static readonly string NLuaCore = ExternPath + @"\NLua\KopiLua.dll"; #endregion #region Graphs public static readonly string GraphXCommon = ExternPath + @"GraphX.NET\GraphX.Common.dll"; public static readonly string GraphXControls = ExternPath + @"GraphX.NET\GraphX.Controls.dll"; public static readonly string GraphXLogic = ExternPath + @"GraphX.NET\GraphX.Logic.dll"; public static readonly string GraphXQuickGraph = ExternPath + @"GraphX.NET\QuickGraph.dll"; public static readonly string GraphXSerialization = ExternPath + @"GraphX.NET\QuickGraph.Serialization.dll"; public static readonly string GraphXYAXLib = ExternPath + @"GraphX.NET\YAXLib.dll"; #endregion #region Third Party Softwares public static readonly string SonyVegas = ExternPath + @"Vegas\Sony.Vegas.dll"; public static readonly string Office = ExternPath + @"Office\Office.dll"; public static readonly string OfficeWord = ExternPath + @"Office\Microsoft.Office.Interop.Word.dll"; public static readonly string OfficeExcel = ExternPath + @"Office\Microsoft.Office.Interop.Excel.dll"; public static readonly NuGetDependency FfmeWindows = new NuGetDependency("FFME.Windows", "4.1.310"); #endregion #region UI/Controls public static readonly string AvalonDock = BaseProject.BranchRoot + @"\extern\AvalonDock\AvalonDock.dll"; public static readonly string AvalonDockAero = BaseProject.BranchRoot + @"\extern\AvalonDock\AvalonDock.Themes.Aero.dll"; public static readonly string AvalonBase = ExternPath + @"ExtendedWPFToolkit\Libs\Xceed.Wpf.AvalonDock.dll"; public static readonly string AvalonThemeAero = ExternPath + @"ExtendedWPFToolkit\Libs\Xceed.Wpf.AvalonDock.Themes.Aero.dll"; public static readonly string AvalonThemeMetro = ExternPath + @"ExtendedWPFToolkit\Libs\Xceed.Wpf.AvalonDock.Themes.Metro.dll"; public static readonly string AvalonThemeVS2010 = ExternPath + @"ExtendedWPFToolkit\Libs\Xceed.Wpf.AvalonDock.Themes.VS2010.dll"; public static readonly string AvalonThemeExpression = ExternPath + @"ExtendedWPFToolkit\Libs\Xceed.Wpf.AvalonDock.Themes.Expression.dll"; public static readonly string XceedDatagrid = ExternPath + @"ExtendedWPFToolkit\Libs\Xceed.Wpf.DataGrid.dll"; public static readonly string XceedToolkit = ExternPath + @"ExtendedWPFToolkit\Libs\Xceed.Wpf.Toolkit.dll"; public static readonly string SandGrid = ExternPath + @"TeaBox\Extern\SandGrid\Divelements.SandGrid.dll"; public static readonly string SandBar = ExternPath + @"TeaBox\Extern\SandBar\SandBar.dll"; public static readonly string ExtendedWpfToolkit = ExternPath + @"ExtendedWPFToolkit\Src\Xceed.Wpf.Toolkit\bin\debug\Xceed.Wpf.Toolkit.dll"; public static readonly NuGetDependency OokiiDependency = new NuGetDependency("Ookii.Dialogs.Wpf", "1.1.0"); #endregion #region Source Control public static readonly string P4api = ExternPath + @"TeaBox\Extern\P4.Net\bin\Release\Ubisoft.P4API.dll"; #endregion #region Consoles public static readonly string XDevKit = ExternPath + @"\Xbox360\xdevkit.dll"; public static readonly string KinectGestureTrainerWrapperPs4 = BaseProject.BranchRoot + @"\extern\KinectGesture\Lib\KinectGestureTrainerWrapper_PS4.dll"; public static readonly string KinectGestureTrainerWrapperX360 = BaseProject.BranchRoot + @"\extern\KinectGesture\Lib\KinectGestureTrainerWrapper_X360.dll"; public static readonly string KinectGestureTrainerWrapperXOne = BaseProject.BranchRoot + @"\extern\KinectGesture\Lib\KinectGestureTrainerWrapper_XOne.dll"; public static readonly string CameraScoringFilesInfoProvider = BaseProject.BranchRoot + @"\extern\KinectGesture\Lib\CameraScoringFilesInfoProvider.dll"; #endregion #region Alexandrie public static readonly NuGetDependency UbisoftCore = new NuGetDependency("Ubisoft.Core", "1.0.9"); public static readonly NuGetDependency UbisoftControls = new NuGetDependency("Ubisoft.Controls", "0.3.1"); public static readonly NuGetDependency UbisoftPerforce = new NuGetDependency("Ubisoft.Perforce", "1.0.4"); public static readonly NuGetDependency UbisoftStudio = new NuGetDependency("Ubisoft.Studio", "3.0.0"); #endregion #region Misc public static readonly NuGetDependency JetBrainsAnnotationsNuget = new NuGetDependency("JetBrains.Annotations", "11.1.0"); public static readonly NuGetDependency NLogNuget = new NuGetDependency("NLog", "4.5.10"); public static readonly NuGetDependency ToastNotifications = new NuGetDependency("ToastNotifications", "2.5.0"); public static readonly NuGetDependency ToastNotificationsMessages = new NuGetDependency("ToastNotifications.Messages", "2.5.0"); public static readonly NuGetDependency NestNuget = new NuGetDependency("Nest", "6.3.1"); public static readonly NuGetDependency NestJsonNuget = new NuGetDependency("Nest.JsonNetSerializer", "6.3.1"); public static readonly NuGetDependency BloombergClient = new NuGetDependency("Bloomberg.Client.CSharp", "2.2.2.6004"); public static readonly NuGetDependency Atlassian = new NuGetDependency("Atlassian.SDK", "10.3.2"); public static readonly NuGetDependency Markdig = new NuGetDependency("Markdig.Wpf", "0.2.5"); public static readonly NuGetDependency Morelinq = new NuGetDependency("morelinq", "3.0.0"); public static readonly NuGetDependency Svg = new NuGetDependency("Svg", "2.3.0"); public static readonly NuGetDependency FluentAssertions = new NuGetDependency("FluentAssertions", "4.19.4"); public static readonly string XmlRpcV2 = BaseProject.BranchRoot + @"\extern\XML-RPC\bin\CookComputing.XmlRpcV2.dll"; public static readonly string Log4Net = ExternPath + @"log4net\log4net.dll"; public static readonly string OrtMapLib = BaseProject.BranchRoot + @"\extern\bloomberg\extern\SCE\TMAPI\bin\Interop.ORTMAPILib.dll"; public static readonly string MemoryViewerSourceGrid = BaseProject.BranchRoot + @"\tools\legacy\MemoryViewer\external\SourceGrid.dll"; public static readonly string DotNetZip = ExternPath + @"Ionic\Ionic.Zip.dll"; public static readonly string ElasticSearch = ExternPath + @"ElasticSearch\Elasticsearch.Net.dll"; public static readonly string Nest = ExternPath + @"ElasticSearch\Nest.dll"; public static readonly NuGetDependency CommandLineParser = new NuGetDependency("CommandLineParser", "2.2.1"); public static readonly NuGetDependency Cottle = new NuGetDependency("Cottle", "1.4.0"); public static readonly NuGetDependency UbisoftKittCore = new NuGetDependency("Kitt.Core", "0.3.11"); public static readonly NuGetDependency UbisoftKittPlatforms = new NuGetDependency("Kitt.Platforms", "0.3.11"); public static readonly NuGetDependency UbiStudio = new NuGetDependency("UbiStudio-justdance", "3.1.0"); public static readonly NuGetDependency RestSharpNuGet = new NuGetDependency("RestSharp", "106.2.2"); public static readonly NuGetDependency EPPlus = new NuGetDependency("EPPlus", "4.5.3.3"); public static readonly NuGetDependency SharpZipLib = new NuGetDependency("SharpZipLib", "1.2.0"); #endregion #region SignalR public static readonly NuGetDependency SignalR = new NuGetDependency("Microsoft.AspNet.SignalR", "2.4.1"); public static readonly NuGetDependency OwinHosting = new NuGetDependency("Microsoft.Owin.Hosting", "2.0.2"); public static readonly NuGetDependency OwinHttpListener = new NuGetDependency("Microsoft.Owin.Host.HttpListener", "2.0.2"); #endregion public static readonly NuGetDependency JdSecretsManager = new NuGetDependency("JD.SecretsManager", "0.2.0"); public static void RegisterNLua(this Project.Configuration configuration) { configuration.ReferencesByPath.Add(NLua); configuration.ReferencesByPath.Add(NLuaCore); } public static void RegisterLua51(this Project.Configuration configuration) { string architecture = ""; if (configuration.Platform == Platform.win32) { architecture = "x86"; configuration.ConditionalReferencesByPathCondition = "'$(Platform)'=='x86'"; } else { architecture = "x64"; configuration.ConditionalReferencesByPathCondition = "'$(Platform)'=='AnyCPU'"; } configuration.ConditionalReferencesByPath.Add(Externs.ExternPath + @"\Lua\" + architecture + @"\Lua51_" + architecture + ".dll"); } public static void RegisterLuaInterface(this Project.Configuration configuration) { string architecture = ""; if (configuration.Platform == Platform.win32) { architecture = "x86"; configuration.ConditionalReferencesByPathCondition = "'$(Platform)'=='x86'"; } else { architecture = "x64"; if (configuration.Platform == Platform.win64) configuration.ConditionalReferencesByPathCondition = "'$(Platform)'=='x64'"; else configuration.ConditionalReferencesByPathCondition = "'$(Platform)'=='AnyCPU'"; } configuration.ConditionalReferencesByPath.Add(Externs.ExternPath + @"\Lua\" + architecture + @"\LuaInterface_" + architecture + ".dll"); } public static void RegisterElasticsearch(this BaseProject project) { project.SourceFiles.Add(Globals.BranchRoot + @"\tools\apps\TeaBox\Script\Utilities\ElasticSearch\ElasticSearchConfiguration.cs"); project.SourceFiles.Add(Globals.BranchRoot + @"\tools\apps\TeaBox\Script\Utilities\ElasticSearch\ElasticSearchRequest.cs"); project.SourceFiles.Add(Globals.BranchRoot + @"\tools\apps\TeaBox\Script\Utilities\ElasticSearch\ReportingClient.cs"); project.SourceFiles.Add(Globals.BranchRoot + @"\tools\apps\TeaBox\Script\Utilities\ElasticSearch\StatisticsBag.cs"); project.Configuring += (configuration, target) => { configuration.ReferencesByName.Add("System.DirectoryServices.AccountManagement"); configuration.ReferencesByName.Add(ElasticSearch); configuration.ReferencesByName.Add(Nest); }; } public static void RegisterGraphX(this Project.Configuration configuration) { configuration.ReferencesByPath.Add(GraphXCommon); configuration.ReferencesByPath.Add(GraphXControls); configuration.ReferencesByPath.Add(GraphXLogic); configuration.ReferencesByPath.Add(GraphXQuickGraph); configuration.ReferencesByPath.Add(GraphXSerialization); configuration.ReferencesByPath.Add(GraphXYAXLib); } } public class ExternProject : BaseProject { public ExternProject() : base("extern") { } } }