Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cargo-makeを使ってみた

 Cargo-makeを使ってみた

RustのビルドツールCargoを拡張するタスクランナーCargo-makeの紹介と使ってみた感想を話します。

Ryosuke Kamesawa

November 19, 2019
Tweet

More Decks by Ryosuke Kamesawa

Other Decks in Programming

Transcript

  1. Build tools - Cargo - Rust標準 - ビルド作業は一通りできる - lint,

    compile, link, test, ..etc - GNU Make - 言語に縛られないビルドツールのデファクト - 大抵なんでもできる - 目的のファイルの生成 - PHONYターゲット
  2. Cargo + Make? - Rust projectでも簡単に複雑なタスクを実行したい - makeでいうPHONYターゲット - e.g.

    - 自動生成されたコードのclean - CIとして実行される一連のタスク - Cargoがあるのにmakeを使うのも…
  3. cargo-make https://sagiegurari.github.io/cargo-make/ Rust task runner and build tool. - Rustに特化したタスクランナー

    - Makefile.toml - 様々なタスクの書き方 - Shell command - Shell script - Rust - etc…
  4. ここが便利 - Predefined tasks - CIがラク - clippy, coverage, doc,

    … - これだけでそれっぽいタスクが走る $ cargo make ci-flow  - 自動インストール - e.g. cargo-audit, cargo-tarpaulin, kcov, …
  5. その他の機能 - Profile - 環境変数の切り替え - Platform override - Linux,

    Mac, Windowsで切り替え - Conditional execution - Profile, 環境変数等による条件実行 - Watch changes - ファイルの変更を検知して実行 - etc...
  6. ハマりポイント - Predefined task - 意図せずpredefined taskに上書かれてしまう - Dependencies -

    (基本的に)上から順に実行 - 依存しているタスクの中で さらに依存関係がある場合は要注意 - Workspaces - デフォルトではworkspaceごとに 別のタスクとして実行される