Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cargo-makeを使ってみた
Search
Ryosuke Kamesawa
November 19, 2019
Programming
0
470
Cargo-makeを使ってみた
RustのビルドツールCargoを拡張するタスクランナーCargo-makeの紹介と使ってみた感想を話します。
Ryosuke Kamesawa
November 19, 2019
Tweet
Share
More Decks by Ryosuke Kamesawa
See All by Ryosuke Kamesawa
推論エンジンMAXの紹介
emakryo
1
560
ニューラルネットワークの量子化手法の紹介
emakryo
3
3.4k
MediaPipeの紹介
emakryo
0
79
Customizing Cargo for Cross Compiling
emakryo
0
38
Feature Store in DRIVE CHART
emakryo
0
64
Feature StoreをRustで実装した話
emakryo
0
48
なぜRustか?
emakryo
0
51
rustdef: Rust on Jupyter Notebook
emakryo
0
47
Machine Learning on Graph Data @ICML2019
emakryo
0
42
Other Decks in Programming
See All in Programming
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
430
Developing static sites with Ruby
okuramasafumi
0
260
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
640
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
120
ソフトウェア設計の課題・原則・実践技法
masuda220
PRO
26
22k
認証・認可の基本を学ぼう前編
kouyuume
0
190
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
420
connect-python: convenient protobuf RPC for Python
anuraaga
0
380
Go コードベースの構成と AI コンテキスト定義
andpad
0
120
Level up your Gemini CLI - D&D Style!
palladius
1
180
AIコーディングエージェント(Gemini)
kondai24
0
200
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
200
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
141
7.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Context Engineering - Making Every Token Count
addyosmani
9
490
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Site-Speed That Sticks
csswizardry
13
990
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Transcript
cargo-makeを 使ってみた話 Ryosuke Kamesawa
自己紹介 - 亀澤諒亮, Ryosuke Kamesawa - Twitter: @cruelturtle - 仕事でrustを触り始めた
- 10月〜 - 競プロ・機械学習
Build tool 何使ってます?
Cargo https://doc.rust-lang.org/cargo/
GNU make https://www.gnu.org/graphics/heckert_gnu.html
Build tools - Cargo - Rust標準 - ビルド作業は一通りできる - lint,
compile, link, test, ..etc - GNU Make - 言語に縛られないビルドツールのデファクト - 大抵なんでもできる - 目的のファイルの生成 - PHONYターゲット
Cargo + Make? - Rust projectでも簡単に複雑なタスクを実行したい - makeでいうPHONYターゲット - e.g.
- 自動生成されたコードのclean - CIとして実行される一連のタスク - Cargoがあるのにmakeを使うのも…
Cargo-make???
cargo-make https://sagiegurari.github.io/cargo-make/ Rust task runner and build tool. - Rustに特化したタスクランナー
- Makefile.toml - 様々なタスクの書き方 - Shell command - Shell script - Rust - etc…
Makefile.toml [tasks.all] dependencies = [ "clippy", "test", "reformat", ] [tasks.reformat]
script = ["cargo fmt -- --emit files"]
ここが便利 - Predefined tasks - CIがラク - clippy, coverage, doc,
… - これだけでそれっぽいタスクが走る $ cargo make ci-flow - 自動インストール - e.g. cargo-audit, cargo-tarpaulin, kcov, …
その他の機能 - Profile - 環境変数の切り替え - Platform override - Linux,
Mac, Windowsで切り替え - Conditional execution - Profile, 環境変数等による条件実行 - Watch changes - ファイルの変更を検知して実行 - etc...
ハマりポイント - Predefined task - 意図せずpredefined taskに上書かれてしまう - Dependencies -
(基本的に)上から順に実行 - 依存しているタスクの中で さらに依存関係がある場合は要注意 - Workspaces - デフォルトではworkspaceごとに 別のタスクとして実行される
欠点 - Timestampに応じたビルドはできない - rustのビルドはあくまでcargoの仕事 - Contributeしましょう!(自分でやれ
最後に - 深入りしすぎなければ便利 - cargo-make 是非使ってみてください - 他にいいツールがあったら教えてください