2017-10-22 23:25:13 +00:00
|
|
|
#load CakeScripts\GAssembly.cs
|
2017-10-25 23:42:57 +00:00
|
|
|
#load CakeScripts\Settings.cs
|
2017-10-22 23:25:13 +00:00
|
|
|
#addin "Cake.FileHelpers"
|
2017-10-25 23:42:57 +00:00
|
|
|
#addin "Cake.Incubator"
|
2017-10-22 23:25:13 +00:00
|
|
|
|
|
|
|
// VARS
|
|
|
|
|
2017-10-25 23:42:57 +00:00
|
|
|
Settings.Cake = Context;
|
2018-01-16 22:05:06 +00:00
|
|
|
Settings.Version = "3.22.24.22";
|
2017-10-25 23:42:57 +00:00
|
|
|
Settings.BuildTarget = Argument("BuildTarget", "Default");
|
|
|
|
Settings.Assembly = Argument("Assembly", "");
|
2017-10-22 23:25:13 +00:00
|
|
|
|
2017-10-26 16:30:48 +00:00
|
|
|
var msbuildsettings = new DotNetCoreMSBuildSettings();
|
2017-10-25 23:42:57 +00:00
|
|
|
var list = new List<GAssembly>();
|
2017-10-22 23:25:13 +00:00
|
|
|
|
|
|
|
// TASKS
|
|
|
|
|
2017-10-25 23:42:57 +00:00
|
|
|
Task("Init")
|
|
|
|
.Does(() =>
|
|
|
|
{
|
2017-10-29 14:28:44 +00:00
|
|
|
// Assign some common properties
|
2017-10-30 13:52:48 +00:00
|
|
|
msbuildsettings = msbuildsettings.WithProperty("Version", Settings.Version);
|
2017-10-29 14:28:44 +00:00
|
|
|
msbuildsettings = msbuildsettings.WithProperty("Authors", "'GtkSharp Contributors'");
|
2017-10-30 19:41:26 +00:00
|
|
|
msbuildsettings = msbuildsettings.WithProperty("PackageLicenseUrl", "'https://github.com/GtkSharp/GtkSharp/blob/cakecore/LICENSE'");
|
2017-10-26 16:30:48 +00:00
|
|
|
|
2017-10-25 23:42:57 +00:00
|
|
|
// Add stuff to list
|
2017-10-29 14:28:44 +00:00
|
|
|
Settings.Init();
|
2017-10-28 22:57:52 +00:00
|
|
|
foreach(var gassembly in Settings.AssemblyList)
|
2017-10-25 23:42:57 +00:00
|
|
|
if(string.IsNullOrEmpty(Settings.Assembly) || Settings.Assembly == gassembly.Name)
|
|
|
|
list.Add(gassembly);
|
|
|
|
});
|
|
|
|
|
2017-10-22 23:25:13 +00:00
|
|
|
Task("Prepare")
|
2017-10-25 23:42:57 +00:00
|
|
|
.IsDependentOn("Clean")
|
2017-10-22 23:25:13 +00:00
|
|
|
.Does(() =>
|
|
|
|
{
|
2017-10-26 16:30:48 +00:00
|
|
|
// Build tools
|
|
|
|
DotNetCoreRestore("Source/Tools/Tools.sln");
|
2017-11-09 20:26:22 +00:00
|
|
|
DotNetCoreBuild("Source/Tools/Tools.sln", new DotNetCoreBuildSettings {
|
|
|
|
Verbosity = DotNetCoreVerbosity.Minimal,
|
|
|
|
Configuration = "Release"
|
2017-10-22 23:25:13 +00:00
|
|
|
});
|
|
|
|
|
2017-10-25 23:42:57 +00:00
|
|
|
// Generate code and prepare libs projects
|
|
|
|
foreach(var gassembly in list)
|
2017-10-22 23:25:13 +00:00
|
|
|
gassembly.Prepare();
|
2017-10-28 22:52:28 +00:00
|
|
|
DotNetCoreRestore("Source/Libs/GtkSharp.sln");
|
2017-10-25 23:42:57 +00:00
|
|
|
});
|
|
|
|
|
2017-10-22 23:25:13 +00:00
|
|
|
Task("Clean")
|
2017-10-25 23:42:57 +00:00
|
|
|
.IsDependentOn("Init")
|
2017-10-22 23:25:13 +00:00
|
|
|
.Does(() =>
|
|
|
|
{
|
2017-10-25 23:42:57 +00:00
|
|
|
foreach(var gassembly in list)
|
2017-10-22 23:25:13 +00:00
|
|
|
gassembly.Clean();
|
|
|
|
});
|
|
|
|
|
2017-10-25 23:42:57 +00:00
|
|
|
Task("FullClean")
|
|
|
|
.IsDependentOn("Clean")
|
|
|
|
.Does(() =>
|
|
|
|
{
|
|
|
|
DeleteDirectory("BuildOutput", true);
|
|
|
|
});
|
|
|
|
|
2017-10-22 23:25:13 +00:00
|
|
|
Task("Build")
|
|
|
|
.IsDependentOn("Prepare")
|
|
|
|
.Does(() =>
|
|
|
|
{
|
2017-10-26 16:30:48 +00:00
|
|
|
var settings = new DotNetCoreBuildSettings
|
2017-10-22 23:25:13 +00:00
|
|
|
{
|
2017-10-26 16:30:48 +00:00
|
|
|
Configuration = "Release",
|
|
|
|
MSBuildSettings = msbuildsettings
|
|
|
|
};
|
|
|
|
|
2017-10-28 22:57:52 +00:00
|
|
|
if (list.Count == Settings.AssemblyList.Count)
|
2017-10-28 22:52:28 +00:00
|
|
|
DotNetCoreBuild("Source/Libs/GtkSharp.sln", settings);
|
2017-10-25 23:42:57 +00:00
|
|
|
else
|
|
|
|
{
|
|
|
|
foreach(var gassembly in list)
|
2017-10-26 16:30:48 +00:00
|
|
|
DotNetCoreBuild(gassembly.Csproj, settings);
|
2017-10-25 23:42:57 +00:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
Task("PackageNuGet")
|
|
|
|
.IsDependentOn("Build")
|
|
|
|
.Does(() =>
|
|
|
|
{
|
|
|
|
var settings = new DotNetCorePackSettings
|
|
|
|
{
|
2017-10-26 16:30:48 +00:00
|
|
|
MSBuildSettings = msbuildsettings,
|
2017-10-25 23:42:57 +00:00
|
|
|
Configuration = "Release",
|
|
|
|
OutputDirectory = "BuildOutput/NugetPackages",
|
2017-10-26 16:30:48 +00:00
|
|
|
NoBuild = true,
|
|
|
|
|
2017-10-25 23:42:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
foreach(var gassembly in list)
|
|
|
|
DotNetCorePack(gassembly.Csproj, settings);
|
2017-10-22 23:25:13 +00:00
|
|
|
});
|
|
|
|
|
2017-10-28 23:35:22 +00:00
|
|
|
Task("PackageTemplates")
|
|
|
|
.IsDependentOn("Init")
|
|
|
|
.Does(() =>
|
|
|
|
{
|
|
|
|
var settings = new NuGetPackSettings
|
|
|
|
{
|
2017-10-30 13:52:48 +00:00
|
|
|
OutputDirectory = "BuildOutput/NugetPackages",
|
|
|
|
Version = Settings.Version
|
2017-10-28 23:35:22 +00:00
|
|
|
};
|
|
|
|
|
2017-11-07 19:12:11 +00:00
|
|
|
settings.BasePath = "Source/Templates/GtkSharp.Template.CSharp";
|
|
|
|
NuGetPack("Source/Templates/GtkSharp.Template.CSharp/GtkSharp.Template.CSharp.nuspec", settings);
|
2017-11-03 13:46:26 +00:00
|
|
|
|
2017-11-07 19:12:11 +00:00
|
|
|
settings.BasePath = "Source/Templates/GtkSharp.Template.VBNet";
|
|
|
|
NuGetPack("Source/Templates/GtkSharp.Template.VBNet/GtkSharp.Template.VBNet.nuspec", settings);
|
2017-10-28 23:35:22 +00:00
|
|
|
});
|
|
|
|
|
2017-10-22 23:25:13 +00:00
|
|
|
// TASK TARGETS
|
|
|
|
|
|
|
|
Task("Default")
|
|
|
|
.IsDependentOn("Build");
|
2017-11-12 01:32:36 +00:00
|
|
|
|
|
|
|
Task("FullBuild")
|
|
|
|
.IsDependentOn("PackageNuGet")
|
|
|
|
.IsDependentOn("PackageTemplates");
|
2017-10-22 23:25:13 +00:00
|
|
|
|
|
|
|
// EXECUTION
|
|
|
|
|
2017-10-25 23:42:57 +00:00
|
|
|
RunTarget(Settings.BuildTarget);
|