rksoftware

Visual Studio とか C# とかが好きです

Mac で CakeBuild を実行する

以前に Windows で直接 Cake.exe でスクリプトを実行してみました。

CakeBuild はマルチプラットフォームというなので、Mac でも動かしてみます。
※私の手元の環境が Mac の上の VM に Windows が入っていて、ファイルが共有されているので。
Windows でインストールした Cake を動かします。

■ 普通の手順

公式サイトに載っている手順です。

https://cakebuild.net/docs/tutorials/setting-up-a-new-project

まとめると build.sh をダウンロードして実行する、という手順です。この buuild.sh の最後の方を見てみると、monoCake.exe を実行しています。

■ 試してみた

ということで

mono ./tools/Cake/Cake.exe

としてみると

実行結果

========================================
A
========================================
.NET Core 向け Microsoft (R) Build Engine バージョン XX.X.X
Copyright (C) Microsoft Corporation.All rights reserved.

(途中省略)

ビルドに成功しました。
    0 個の警告
    0 エラー

経過時間 00:00:04.48

Task                          Duration            
--------------------------------------------------
A                             00:00:05.5946257    
--------------------------------------------------
Total:                        00:00:05.5946257 

実行できました。

今回動かしたスクリプトでは、ファイルのコピーとプロジェクトのビルドをしています。Windows の際は MSBuild を実行するように

Task("A")
    .Does(() => 
{
    CopyFile("build.cake", "b2.c");
    MSBuild("./src/ConsoleApp1/ConsoleApp1.sln");
});

RunTarget("A")

のようなスクリプトを書いていましたが、ビルドエラーになったので dotnetcore のビルドに変えました。まあ当然と言えば当然。
実際に動かしたスクリプトは次です。

Task("A")
    .Does(() => 
{
    CopyFile("build.cake", "b2.c");
    DotNetCoreBuild("./src/ConsoleApp1/ConsoleApp1.sln");
});

RunTarget("A")

ちなみに、Linux 版の build.sh も確認してみたところ、Mac と同じく mono で Cake.exe を実行するようです。

※CakeBuild を試してみた記事の目次です。