以前に Windows で直接 Cake.exe でスクリプトを実行してみました。
CakeBuild はマルチプラットフォームというなので、Mac でも動かしてみます。
※私の手元の環境が Mac の上の VM に Windows が入っていて、ファイルが共有されているので。
Windows でインストールした Cake を動かします。
■ 普通の手順
公式サイトに載っている手順です。
https://cakebuild.net/docs/tutorials/setting-up-a-new-project
まとめると build.sh をダウンロードして実行する、という手順です。この buuild.sh の最後の方を見てみると、mono で Cake.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 を試してみた記事の目次です。