Skip to content

cake-contrib/Cake.ProtobufTools

Repository files navigation

Cake.ProtobufTools

A Cake AddIn that extends Cake with Google.Protofbuf.Tools command tools, namely protoc.

cakebuild.net NuGet

Branch Status
Master Build status
Develop Build status

Important

1.5.0

  • References Cake 4.0.0
  • Drops support for .NET Framework
  • Supports .net 6+

Including addin

Including addin in cake script is easy.

#addin "Cake.ProtobufTools"

Google.Protobuf.Tools package isn't included, it has to be added manually to your cake script.

#tool nuget:?package=Google.Protobuf.Tools

Usage

To use the addin just add it to Cake call the aliases and configure any settings you want.

#addin "Cake.ProtobufTools"
#tool nuget:?package=Google.Protobuf.Tools

...

Task("ProtobufGenerator")
	.Does(() => {
		var settings = new ProtocSettings
		{
			CSharpOut = Directory("."),
		};
		var file = File("./definitions.proto");
		Protoc(settings, file);
	});

Since Google.ProtobufTools nuget package comes with different executable flavors (Linux, Windows, MacOS X - all having both x86 and x64 versions) the addin, unless explicitly defined, uses the most appropriate based on OS you are running the script.

You can force it using ProtocSettings.OSTarget property, i.e.:

var settings = new ProtocSettings
{
	OSTarget = OSTarget.Linux64,
	...
};

Discussion

If you have questions, search for an existing one, or create a new discussion on the Cake GitHub repository, using the extension-q-a category.

Join in the discussion on the Cake repository

Credits

Brought to you by Miha Markic and contributors.

Mastodon Follow