|
|
@@ -8,6 +8,42 @@ public class Packages
|
|
|
public string NugetPackagesDir {get; private set;}
|
|
|
public string SkiaSharpVersion {get; private set; }
|
|
|
public string SkiaSharpLinuxVersion {get; private set; }
|
|
|
+ public Dictionary<string, IList<Tuple<string,string>>> PackageVersions{get; private set;}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ class DependencyBuilder : List<NuSpecDependency>
|
|
|
+ {
|
|
|
+ Packages _parent;
|
|
|
+ public DependencyBuilder(Packages parent)
|
|
|
+ {
|
|
|
+ _parent = parent;
|
|
|
+ }
|
|
|
+
|
|
|
+ string GetVersion(string name)
|
|
|
+ {
|
|
|
+ return _parent.PackageVersions[name].First().Item1;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public DependencyBuilder Dep(string name, params string[] fws)
|
|
|
+ {
|
|
|
+ if(fws.Length == 0)
|
|
|
+ Add(new NuSpecDependency() { Id = name, Version = GetVersion(name) });
|
|
|
+ foreach(var fw in fws)
|
|
|
+ Add(new NuSpecDependency() { Id = name, TargetFramework = fw, Version = GetVersion(name) });
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+ public DependencyBuilder Deps(string[] fws, params string[] deps)
|
|
|
+ {
|
|
|
+ foreach(var fw in fws)
|
|
|
+ foreach(var name in deps)
|
|
|
+ Add(new NuSpecDependency() { Id = name, TargetFramework = fw, Version = GetVersion(name) });
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //new NuSpecDependency() { Id = "System.Threading.ThreadPool", TargetFramework = "netcoreapp1.0", Version = "4.3.0" },
|
|
|
public Packages(ICakeContext context, Parameters parameters)
|
|
|
{
|
|
|
// NUGET NUSPECS
|
|
|
@@ -26,7 +62,7 @@ public class Packages
|
|
|
// Key: Package Id
|
|
|
// Value is Tuple where Item1: Package Version, Item2: The *.csproj/*.props file path.
|
|
|
var packageVersions = new Dictionary<string, IList<Tuple<string,string>>>();
|
|
|
-
|
|
|
+ PackageVersions = packageVersions;
|
|
|
System.IO.Directory.EnumerateFiles(((DirectoryPath)context.Directory("./build")).FullPath,
|
|
|
"*.props", SearchOption.AllDirectories).ToList().ForEach(fileName =>
|
|
|
{
|
|
|
@@ -195,13 +231,12 @@ public class Packages
|
|
|
new NuGetPackSettings()
|
|
|
{
|
|
|
Id = "Avalonia",
|
|
|
- Dependencies = new []
|
|
|
+ Dependencies = new DependencyBuilder(this)
|
|
|
{
|
|
|
new NuSpecDependency() { Id = "Serilog", Version = SerilogVersion },
|
|
|
new NuSpecDependency() { Id = "Splat", Version = SplatVersion },
|
|
|
new NuSpecDependency() { Id = "Sprache", Version = SpracheVersion },
|
|
|
new NuSpecDependency() { Id = "System.Reactive", Version = SystemReactiveVersion },
|
|
|
- new NuSpecDependency() { Id = "System.ValueTuple", Version = SystemValueTupleVersion },
|
|
|
//.NET Core
|
|
|
new NuSpecDependency() { Id = "System.Threading.ThreadPool", TargetFramework = "netcoreapp1.0", Version = "4.3.0" },
|
|
|
new NuSpecDependency() { Id = "Microsoft.Extensions.DependencyModel", TargetFramework = "netcoreapp1.0", Version = "1.1.0" },
|
|
|
@@ -210,8 +245,11 @@ public class Packages
|
|
|
new NuSpecDependency() { Id = "Serilog", TargetFramework = "netcoreapp1.0", Version = SerilogVersion },
|
|
|
new NuSpecDependency() { Id = "Sprache", TargetFramework = "netcoreapp1.0", Version = SpracheVersion },
|
|
|
new NuSpecDependency() { Id = "System.Reactive", TargetFramework = "netcoreapp1.0", Version = SystemReactiveVersion },
|
|
|
- new NuSpecDependency() { Id = "System.ValueTuple", TargetFramework = "netcoreapp1.0", Version = SystemValueTupleVersion }
|
|
|
- },
|
|
|
+ }
|
|
|
+ .Deps(new string[]{null, "netcoreapp1.0"},
|
|
|
+ "System.ValueTuple", "System.ComponentModel.TypeConverter", "System.ComponentModel.Primitives",
|
|
|
+ "System.Runtime.Serialization.Primitives", "System.Xml.XmlDocument")
|
|
|
+ .ToArray(),
|
|
|
Files = coreLibrariesNuSpecContent
|
|
|
.Concat(win32CoreLibrariesNuSpecContent).Concat(net45RuntimePlatform)
|
|
|
.Concat(netcoreappCoreLibrariesNuSpecContent).Concat(netCoreRuntimePlatform)
|
|
|
@@ -460,9 +498,9 @@ public class Packages
|
|
|
new NuSpecDependency() { Id = "Avalonia.Skia.Desktop", TargetFramework="net45", Version = parameters.Version },
|
|
|
new NuSpecDependency() { Id = "Avalonia.Gtk3", TargetFramework="net45", Version = parameters.Version },
|
|
|
//.NET Core
|
|
|
- new NuSpecDependency() { Id = "Avalonia.Win32", TargetFramework="netcoreapp1.1", Version = parameters.Version },
|
|
|
- new NuSpecDependency() { Id = "Avalonia.Skia.Desktop", TargetFramework="netcoreapp1.1", Version = parameters.Version },
|
|
|
- new NuSpecDependency() { Id = "Avalonia.Gtk3", TargetFramework="netcoreapp1.1", Version = parameters.Version }
|
|
|
+ new NuSpecDependency() { Id = "Avalonia.Win32", TargetFramework="netcoreapp1.0", Version = parameters.Version },
|
|
|
+ new NuSpecDependency() { Id = "Avalonia.Skia.Desktop", TargetFramework="netcoreapp1.0", Version = parameters.Version },
|
|
|
+ new NuSpecDependency() { Id = "Avalonia.Gtk3", TargetFramework="netcoreapp1.0", Version = parameters.Version }
|
|
|
},
|
|
|
Files = new NuSpecContent[]
|
|
|
{
|