Ryujinx-GtkSharp/build.cake

184 lines
5.3 KiB
Plaintext
Raw Normal View History

2017-10-23 01:25:13 +02:00
#load CakeScripts\GAssembly.cs
#load CakeScripts\Settings.cs
2018-02-26 22:58:51 +01:00
#addin "Cake.FileHelpers&version=2.0.0"
#addin "Cake.Incubator&version=1.7.2"
2017-10-23 01:25:13 +02:00
// VARS
Settings.Cake = Context;
2019-08-09 21:56:47 +02:00
Settings.Version = Argument("BuildVersion", "3.22.24.30");
Settings.BuildTarget = Argument("BuildTarget", "Default");
Settings.Assembly = Argument("Assembly", "");
2019-05-21 19:21:51 +02:00
var configuration = Argument("Configuration", "Release");
2017-10-23 01:25:13 +02:00
var msbuildsettings = new DotNetCoreMSBuildSettings();
var list = new List<GAssembly>();
2017-10-23 01:25:13 +02:00
// TASKS
Task("Init")
.Does(() =>
{
2017-10-29 15:28:44 +01:00
// Assign some common properties
2017-10-30 14:52:48 +01:00
msbuildsettings = msbuildsettings.WithProperty("Version", Settings.Version);
2017-10-29 15:28:44 +01:00
msbuildsettings = msbuildsettings.WithProperty("Authors", "'GtkSharp Contributors'");
msbuildsettings = msbuildsettings.WithProperty("PackageLicenseUrl", "'https://github.com/GtkSharp/GtkSharp/blob/cakecore/LICENSE'");
// Add stuff to list
2017-10-29 15:28:44 +01:00
Settings.Init();
2017-10-29 00:57:52 +02:00
foreach(var gassembly in Settings.AssemblyList)
if(string.IsNullOrEmpty(Settings.Assembly) || Settings.Assembly == gassembly.Name)
list.Add(gassembly);
});
2017-10-23 01:25:13 +02:00
Task("Prepare")
.IsDependentOn("Clean")
2017-10-23 01:25:13 +02:00
.Does(() =>
{
// Build tools
DotNetCoreRestore("Source/Tools/Tools.sln");
DotNetCoreBuild("Source/Tools/Tools.sln", new DotNetCoreBuildSettings {
Verbosity = DotNetCoreVerbosity.Minimal,
2019-05-21 19:21:51 +02:00
Configuration = configuration
2017-10-23 01:25:13 +02:00
});
// Generate code and prepare libs projects
foreach(var gassembly in list)
2017-10-23 01:25:13 +02:00
gassembly.Prepare();
2018-01-18 18:01:04 +01:00
DotNetCoreRestore("Source/GtkSharp.sln");
2018-02-28 18:55:16 +01:00
// Addin
DotNetCoreRestore("Source/Addins/MonoDevelop.GtkSharp.Addin/MonoDevelop.GtkSharp.Addin.sln");
});
2017-10-23 01:25:13 +02:00
Task("Clean")
.IsDependentOn("Init")
2017-10-23 01:25:13 +02:00
.Does(() =>
{
foreach(var gassembly in list)
2017-10-23 01:25:13 +02:00
gassembly.Clean();
});
Task("FullClean")
.IsDependentOn("Clean")
.Does(() =>
{
DeleteDirectory("BuildOutput", true);
});
2017-10-23 01:25:13 +02:00
Task("Build")
.IsDependentOn("Prepare")
.Does(() =>
{
var settings = new DotNetCoreBuildSettings
2017-10-23 01:25:13 +02:00
{
2019-05-21 19:21:51 +02:00
Configuration = configuration,
MSBuildSettings = msbuildsettings
};
2017-10-29 00:57:52 +02:00
if (list.Count == Settings.AssemblyList.Count)
2018-01-18 18:01:04 +01:00
DotNetCoreBuild("Source/GtkSharp.sln", settings);
else
{
foreach(var gassembly in list)
DotNetCoreBuild(gassembly.Csproj, settings);
}
});
2018-01-17 23:35:07 +01:00
Task("RunSamples")
.IsDependentOn("Build")
.Does(() =>
{
var settings = new DotNetCoreBuildSettings
{
2019-05-21 19:21:51 +02:00
Configuration = configuration,
2018-01-17 23:35:07 +01:00
MSBuildSettings = msbuildsettings
};
DotNetCoreBuild("Source/Samples/Samples.csproj", settings);
DotNetCoreRun("Source/Samples/Samples.csproj");
});
Task("PackageNuGet")
.IsDependentOn("Build")
.Does(() =>
{
var settings = new DotNetCorePackSettings
{
MSBuildSettings = msbuildsettings,
2019-05-21 19:21:51 +02:00
Configuration = configuration,
OutputDirectory = "BuildOutput/NugetPackages",
NoBuild = true,
};
foreach(var gassembly in list)
DotNetCorePack(gassembly.Csproj, settings);
2017-10-23 01:25:13 +02:00
});
2017-10-29 01:35:22 +02:00
Task("PackageTemplates")
.IsDependentOn("Init")
.Does(() =>
{
var settings = new NuGetPackSettings
{
2017-10-30 14:52:48 +01:00
OutputDirectory = "BuildOutput/NugetPackages",
Version = Settings.Version
2017-10-29 01:35:22 +02:00
};
2017-11-07 20:12:11 +01:00
settings.BasePath = "Source/Templates/GtkSharp.Template.CSharp";
NuGetPack("Source/Templates/GtkSharp.Template.CSharp/GtkSharp.Template.CSharp.nuspec", settings);
2017-11-03 14:46:26 +01:00
2018-02-26 22:41:01 +01:00
settings.BasePath = "Source/Templates/GtkSharp.Template.FSharp";
NuGetPack("Source/Templates/GtkSharp.Template.FSharp/GtkSharp.Template.FSharp.nuspec", settings);
2017-11-07 20:12:11 +01:00
settings.BasePath = "Source/Templates/GtkSharp.Template.VBNet";
NuGetPack("Source/Templates/GtkSharp.Template.VBNet/GtkSharp.Template.VBNet.nuspec", settings);
2017-10-29 01:35:22 +02:00
});
2018-02-28 18:55:16 +01:00
Task("PackageAddin")
.IsDependentOn("PackageTemplates")
.Does(() =>
{
// Copy the current version nuget templates
CopyFile(
"BuildOutput/NugetPackages/GtkSharp.Template.CSharp." + Settings.Version + ".nupkg",
"Source/Addins/MonoDevelop.GtkSharp.Addin/Templates/GtkSharp.Template.CSharp.nupkg"
);
CopyFile(
"BuildOutput/NugetPackages/GtkSharp.Template.FSharp." + Settings.Version + ".nupkg",
"Source/Addins/MonoDevelop.GtkSharp.Addin/Templates/GtkSharp.Template.FSharp.nupkg"
);
// Generate version code info
var versionline = "[assembly: Mono.Addins.Addin(\"MonoDevelop.GtkSharp.Addin\", Version = \"" + Settings.Version + "\")]";
FileWriteText("Source/Addins/MonoDevelop.GtkSharp.Addin/Properties/AddinInfo.Version.cs", versionline);
// Build MonoDevelop addin
var msbuildsettings = new MSBuildSettings
{
2019-05-21 19:21:51 +02:00
Configuration = configuration,
2018-02-28 18:55:16 +01:00
};
msbuildsettings = msbuildsettings.WithProperty("Version", Settings.Version);
msbuildsettings = msbuildsettings.WithProperty("MDBinDir", "/opt/MonoDevelop/bin/");
msbuildsettings = msbuildsettings.WithTarget("PackageAddin");
// We need monodevelop on the build system to build the addin
// lets wait for its packaging to be finished.
// MSBuild("Source/Addins/MonoDevelop.GtkSharp.Addin/MonoDevelop.GtkSharp.Addin.sln", msbuildsettings);
});
2017-10-23 01:25:13 +02:00
// TASK TARGETS
Task("Default")
.IsDependentOn("Build");
2017-11-12 02:32:36 +01:00
Task("FullBuild")
.IsDependentOn("PackageNuGet")
2018-02-28 18:55:16 +01:00
.IsDependentOn("PackageTemplates")
.IsDependentOn("PackageAddin");
2017-10-23 01:25:13 +02:00
// EXECUTION
RunTarget(Settings.BuildTarget);