以前に 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 を試してみた記事の目次です。