JD2022-TU1/main/build/sharpmake/Tools/Extern.cs

346 lines
15 KiB
C#

using System.IO;
using Sharpmake;
namespace JustDance.Tools
{
/// <summary>
/// Contains the paths to resolve the externs
/// </summary>
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")
{
}
}
}