【完全保存版】AstarのWASMコントラクトのCargo.tomlを学ぼう
本日は、Cargo.tomlファイルについて学んでいきたいと思います。
ちなみに、「Cargo.toml」とは、パッケージを管理するツールである「Cargo」の設定を行うためのファイルです。
1 [dependencies]について(依存関係の設定)
1 [dependencies]について
ここで、依存関係の設定を行います。
ここで、使いたい他のRustクレートを指定します。
2 使用する名前について
下のような場合、右で規定したパッケージを「scale」という名前で使用するという指定になります。
3 default-featuresについて
これはデフォルトのフィーチャーについて規定し、基本的には、falseになります。
これは、不要な依存関係や機能を含めないためです。
4 featuresについて
ここでは
「derive」フィーチャーを有効にしています。
2 [lib]について(ライブラリクレートの設定)
1 [lib]について
ここでは、ライブラリクレートの設定を行っています。
なお、「クレート(crate)」とはコードをパッケージ化する基本単位です。
そして、他から使われる、再利用可能な機能を提供しているのが、ライブラリクレートです。
2 pathについて
どのファイルを使うのかを規定しています。
3 crate-typeについて
これは、作られるバイナリの種類を示しています。
4 cdylibについて
ここでは、C互換のダイナミックライブラリを作ることを表しています。
これは主に、他の言語から呼び出されるときに使用されます。
5 rlibについて
これは、Rustの静的ライブラリを作ります。
「cdylib」と異なり、「dy(動的)」が入っていませんね。
これは、他のRustライブラリから使用されるためのものです。
つまり、他のコントラクトから依存される場合には、これがないと動きません。
3 [features]について(機能の有効性の設定)
1 [features]について
これは、何の機能を有効にするのか(または、無効にするのか)を設定する場所です。
2 default = ["std"]について
これは、デフォルトとして、「std」という機能を有効にするということを表しています。
そして、「std」とは、Rustの標準(Standard)ライブラリを表します。
つまり、デフォルトでRustの標準ライブラリを使用することを示しています。
3 std = ["", "",]について
ここは、依存関係で有効化する「std」がどれかを表しています。
例えば、「ink」において、有効化する「std」は「ink/std」になります。
仮に、「openbrush/std」が書いていなければ、「openbrush」の「std」は有効になりません。
4 ink-as-dependencyについて
これは他のコントラクトから依存される場合のフラグになります。
これがあることで、他から依存されることを前提としたコンパイルの挙動を行います。
このコントラクトが他から依存される場合は、その依存先のコントラクトで、下のように設定されます。
4 [profile.dev]について(ビルト時の設定)
1 [profile.dev]について
こちらはビルドを行うときの設定についての場所です。
2 codegen-unitsについて
これは、「codegen(コードの生成)」をいくつのCPUコアで行うかを定めます。
多いほど、ビルドの時間は短縮されますが、最終的なバイナリのパフォーマンスは、必ずしも良い影響を与えません。
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊