native.cc_library。なお、ネイティブ モジュールは読み込みフェーズでのみ使用できます(マクロの場合で、ルールの実装には使用できません)。属性は None 値を無視し、属性が未設定の場合と同様に処理します。次の関数も使用できます。
メンバー
- existing_rule
- existing_rules
- exports_files
- glob
- module_name
- module_version
- package_group
- package_name
- package_relative_label
- repository_name
- サブパッケージ
existing_rule
unknown native.existing_rule(name)
None を返します。ここで、不変の dict に似たオブジェクトとは、辞書に似た反復処理(len(x)、name in x、x[name]、x.get(name)、x.items()、x.keys()、x.values() をサポートする、高度に不変のオブジェクト x)を意味します。
--noincompatible_existing_rules_immutable_view フラグが設定されている場合、代わりに同じ内容の新しい可変の辞書を返します。
結果には各属性のエントリが含まれます。ただし、非公開の属性(名前が文字で始まらないもの)と、表現できない以前の属性タイプの一部は除きます。また、この辞書にはルール インスタンスの name と kind のエントリが含まれます(例: 'cc_binary')。
結果の値は、次のように属性値を表します。
- str、int、bool 型の属性はそのまま表されます。
- ラベルは、同じパッケージ内のターゲットの場合は ':foo'の形式、別のパッケージ内のターゲットの場合は'//pkg:name'という形式の文字列に変換されます。
- リストはタプルとして表され、辞書は新しい可変の辞書に変換されます。これらの要素は、同じ方法で再帰的に変換されます。
- select値は、その内容が前述のように変換された状態で返されます。
- ルールのインスタンス化時に値が指定されず、デフォルト値が計算される属性は結果から除外されます。(計算されたデフォルトは、分析フェーズまで計算できません)。
可能であれば、この関数の使用は避けてください。BUILD ファイルは脆弱で、順序に依存します。また、内部形式から Starlark へのルール属性値の他の 2 つの変換とは微妙に異なることに注意してください。1 つは計算済みデフォルトで使用され、もう 1 つは ctx.attr.foo で使用されます。
          
      
パラメータ
| パラメータ | 説明 | 
|---|---|
| name | 必須 ターゲットの名前。 | 
existing_rules
unknown native.existing_rules()
existing_rule(name) によって返される結果にマッピングします。ここで、不変の dict に似たオブジェクトとは、辞書に似た反復処理(len(x)、name in x、x[name]、x.get(name)、x.items()、x.keys()、x.values() をサポートする、高度に不変のオブジェクト x)を意味します。
--noincompatible_existing_rules_immutable_view フラグが設定されている場合、代わりに同じ内容の新しい可変の辞書を返します。
注: 可能であれば、この関数の使用は避けてください。BUILD ファイルは脆弱で、順序に依存します。さらに、 --noincompatible_existing_rules_immutable_view フラグが設定されている場合、特にループ内で呼び出した場合、この関数は非常に高コストになります。
        
exports_files
None native.exports_files(srcs, visibility=None, licenses=None)
パラメータ
| パラメータ | 説明 | 
|---|---|
| srcs | sequence of strings、
                                     必須エクスポートするファイルのリスト。 | 
| visibility | sequence; or None、
                                     デフォルト = None公開設定を指定できます。ファイルは、指定したターゲットに表示されます。公開設定が指定されていない場合、ファイルはすべてのパッケージに表示されます。 | 
| licenses | sequence of strings; or None、
                                     デフォルト = None指定するライセンス。 | 
glob
sequence native.glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
- includeの 1 つ以上のパターンと一致します。
- excludeのどのパターンとも一致しない(デフォルトは- [])。
exclude_directories 引数が有効(1 に設定)の場合、ディレクトリ型のファイルは結果から除外されます(デフォルトは 1)。
          
      パラメータ
| パラメータ | 説明 | 
|---|---|
| include | sequence of strings、
                                     デフォルト = []含める glob パターンのリスト。 | 
| exclude | sequence of strings、
                                     デフォルト = []除外する glob パターンのリスト。 | 
| exclude_directories | デフォルト = 1 ディレクトリを除外するかどうかのフラグ。 | 
| allow_empty | デフォルト = バインドなし glob パターンが何も一致しないことを許可するかどうか。`allow_empty` が False の場合は、個々のインクルード パターンがなんらかの値に一致する必要があり、最終的な結果は(`exclude` パターンの一致が除外された後)空でない必要があります。 | 
module_name
string native.module_name()
module_ctx.modules の module.name フィールドと同じです。
         None を返すことができます。
        module_version
string native.module_version()
module_ctx.modules の module.version フィールドと同じです。
         None を返すことができます。
        package_group
None native.package_group(name, packages=[], includes=[])
visibility 属性で参照できます。
          
      パラメータ
| パラメータ | 説明 | 
|---|---|
| name | 必須 このルールの一意の名前。 | 
| packages | sequence of strings、
                                     デフォルト = []このグループ内のパッケージの完全な列挙。 | 
| includes | sequence of strings、
                                     デフォルト = []これに含まれる他のパッケージ グループ。 | 
package_name
string native.package_name()
some/package/BUILD では、値は some/package になります。BUILD ファイルが .bzl ファイルで定義された関数を呼び出す場合、package_name() は呼び出し元の BUILD ファイル パッケージと一致します。この関数は非推奨の変数 PACKAGE_NAME と同等です。
        package_relative_label
Label native.package_relative_label(input)
BUILD ファイル)のコンテキストで、入力文字列を Label オブジェクトに変換します。入力がすでに Label の場合、変更されることなく返されます。この関数は、BUILD ファイルとそれが直接または間接的に呼び出すマクロを評価しているときにのみ呼び出すことができます。ルール実装関数などで呼び出すことはできません。
この関数の結果は、BUILD ファイルで宣言されたターゲットのラベル値属性に指定された文字列を渡した場合と同じ Label 値になります。
使用上の注意: この関数と Label() の違いは、Label() は BUILD ファイルのパッケージではなく、呼び出し元の .bzl ファイルのパッケージのコンテキストを使用する点です。コンパイラなど、マクロにハードコードされた固定ターゲットを参照する必要がある場合は、Label() を使用します。BUILD ファイルが提供するラベル文字列を Label オブジェクトに正規化する必要がある場合は、package_relative_label() を使用します。(パッケージのコンテキストでは、BUILD ファイルまたは呼び出し元の .bzl ファイル以外に文字列を Label に変換する方法はありません。そのため、外側のマクロは、ラベルの文字列ではなく内側のマクロに常に Label オブジェクトを渡す必要があります)。
          
      
パラメータ
| パラメータ | 説明 | 
|---|---|
| input | string; or Label、
                                     必須入力ラベル文字列またはラベル オブジェクト。Label オブジェクトが渡された場合は、そのまま返されます。 | 
repository_name
string native.repository_name()
local_repository(name='local', path=...) によって呼び出されたパッケージでは、@local に設定されます。メイン リポジトリのパッケージでは、@ に設定されます。この関数は非推奨の変数 REPOSITORY_NAME と同等です。
        サブパッケージ
sequence native.subpackages(include, exclude=[], allow_empty=False)
パラメータ
| パラメータ | 説明 | 
|---|---|
| include | sequence of strings、
                                     必須サブパッケージ スキャンに含める glob パターンのリスト。 | 
| exclude | sequence of strings、
                                     デフォルト = []サブパッケージ スキャンから除外する glob パターンのリスト。 | 
| allow_empty | デフォルト = False 呼び出しが空のリストを返した場合に失敗するかどうか。デフォルトでは、空のリストは BUILD ファイルで潜在的に、subpackages() の呼び出しが過剰であることを示しています。true に設定すると、この関数が成功する可能性があります。 |