component (マクロ)
パッケージ: CURL.LANGUAGE.COMPILER

マニフェスト内のコンポーネントを宣言します。

シグネチャ

{component component-type COMPONENT.NAME,
location = {url "path"} [, ...]
[, name = value [, ...] ] }

説明

マニフェストファイル内のコンポーネントの場所を宣言するために使用します。
component-type は任意の有効な Curl 識別子ですが、以下の型が Curl コンポーネントを参照します。
  • applet
  • package
  • manifest
  • script
COMPONENT.NAME は、ドット '.' で区切られた 1 つまたは複数の有効な Curl 識別子で構成される複合名の場合もあります。
少なくとも 1 つの場所を指定することが必要です。location キーワードを複数回指定することによって、追加の場所を指定することもできます。
curl-versions のリストが明示的に指定されない限り、バージョンは component 宣言を含むマニフェストファイルの curl ヘラルド内で宣言されたものと同じであるとみなされます。
その他のメタデータも、ComponentSelector.default で使用される同じ構文を使用して指定できます。
delegate-to でマニフェストが名づけられている場所が使用されている時、一致する delegate-to ステートメントで明示的な場所を上書きするために override? を true に設定することができます。マニフェストの詳細については import-manifest を参照してください。

改訂

delegate-to ステートメントでマニフェストの名前を見つけるために component の記述を使用することが Curl 7.0 で実装されました。

{curl 8.0 manifest}

|| A typical package declaration
{component package MY.PACKAGE,
    version = "1.2",
    location = {url "my-package.scurl"}
}

|| A package declaration with explicit curl-versions
{component package MY.OTHER-PACKAGE,
    version = "2.3",
    curl-versions = {versions "2.0", "3.0"},
    location = {url "my-other-package.scurl"}
}

|| A manifest declaration used to locate delegate manifest.
{component manifest MANIFEST-A,
    location = {url "a.mcurl"}
}

|| Location is resolved by corresponding component declaration.
{delegate-to MANIFEST-A}

|| Override's explicit delegate location below.
{component manifest MANIFEST-B,
    override? = true,
    location = {url "alt-b.mcurl"}
}

{delegate-to MANIFEST-B,
    location = {url "b.mcurl"}
}