Objective-C ルール

<ph type="x-smartling-placeholder"></ph> 問題を報告 ソースを表示 夜間 · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

ルール

objc_import

ルールソースを表示
objc_import(name, deps, hdrs, alwayslink, archives, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, includes, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)

このルールは、すでにコンパイル済みの静的ライブラリを .a ファイルの形式でカプセル化します。また、同じ Cloud Storage バケットを使用して、 objc_library でサポートされている属性。

引数

属性
name

名前:必須

このターゲットの名前。

deps

ラベルのリスト。デフォルトは [] です。

このターゲットが依存するターゲットのリスト。
hdrs

ラベルのリスト。デフォルトは [] です

公開されている C、C++、Objective-C、Objective-C++ のヘッダー ファイルのリスト 依存するルールのソースに含まれている必要があります。

これらのヘッダーは、ライブラリの公開インターフェースを記述したものです。 ルールに含まれているか、または独立している できます。このライブラリのクライアントに含めることを想定していないヘッダー srcs 属性で指定する必要があります。

モジュールが有効になっている場合、これらはソースとは別にコンパイルされます。

ブール値デフォルトは False です。

1 の場合、このライブラリに(直接または間接的に)依存するバンドルまたはバイナリは、srcsnon_arc_srcs にリストされているファイルのすべてのオブジェクト ファイルをリンクします。バイナリによって参照されるシンボルが含まれていない場合でも同様です。これは、Java 内のコードで明示的に呼び出していない場合に バイナリを受け取るコード(たとえば、コールバックを受け取るためにコードが登録されている場合) 提供します。
archives

ラベルのリスト(必須)

このターゲットに依存する Objective-C ターゲットに提供される .a ファイルのリスト。
includes

文字列のリスト。デフォルトは [] です。

このターゲットに追加する #include/#import 検索パスのリスト 依存します。 これは、サポートしていないサードパーティおよびオープンソース ライブラリを ワークスペース全体のパスを #import/#include ステートメント。

パスはパッケージ ディレクトリを基準に解釈され、実際のクライアント ルートに加えて、genfiles ルートおよび bin ルート(blaze-genfiles/pkg/includedirblaze-out/pkg/includedir など)が含まれます。

COPTS とは異なり、これらのフラグは、このルールとそれに依存するすべてのルールに追加されます。(注: コンテナが依存するルールではありません)。影響が広範囲に及ぶ可能性があるため、十分に注意してください。判断に迷う場合は、 「-iquote」COPTS に渡します。

sdk_dylibs

文字列のリスト。デフォルトは [] です。

リンクする SDK .dylib ライブラリの名前。例: 「libz」または 「libarchive」。 バイナリに依存関係ツリーに C++ または Objective-C++ のソースが含まれている場合、「libc++」が自動的に含まれます。バイナリをリンクするときに、そのバイナリの伝播依存関係グラフに名前が指定されているすべてのライブラリが使用されます。
sdk_frameworks

文字列のリスト。デフォルトは [] です。

リンクする SDK フレームワークの名前(「AddressBook」、「QuartzCore」など)。

最上位の Apple バイナリをリンクすると、そのバイナリにリストされているすべての SDK フレームワークが 推移的依存関係グラフがリンクされています

sdk_includes

文字列のリスト。デフォルトは [] です。

このターゲットとすべての依存ターゲットに追加する #include/#import 検索パスのリスト。各パスは $(SDKROOT)/usr/include からの相対パスです。
textual_hdrs

ラベルのリスト。デフォルトは [] です

サポートされている C、C++、Objective-C、および Objective-C++ ファイルのリスト このルールのソースファイル、またはこのルールの ライブラリです。hdr とは異なり、これらはソースから別途コンパイルされません。
weak_sdk_frameworks

文字列のリスト。デフォルトは [] です。

弱いリンクを設定する SDK フレームワークの名前。たとえば 「MediaAccessibility」。 定期的にリンクされている SDK フレームワークとの違いは、シンボルが 依存関係が弱くリンクされている場合、そのフレームワークが 実行時に存在しません。

objc_library

<ph type="x-smartling-placeholder"></ph> ルールのソースを表示
objc_library(name, deps, srcs, data, hdrs, alwayslink, compatible_with, copts, defines, deprecation, distribs, enable_modules, exec_compatible_with, exec_properties, features, implementation_deps, includes, linkopts, module_map, module_name, non_arc_srcs, pch, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, stamp, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)

このルールは、指定された Objective-C ソースファイルから静的ライブラリを生成します。

引数

属性
name

名前: 必須

このターゲットの一意の名前。

deps

ラベルのリスト。デフォルトは [] です

このターゲットが依存するターゲットのリスト。
srcs

ラベルのリスト。デフォルトは [] です。

ライブラリ ターゲットの作成時に処理される C、C++、Objective-C、Objective-C++ のソースファイルとヘッダー ファイル、またはアセンブリ ソースファイル(「.s」、「.S」、「.asm」)のリスト。これらは、チェックインしたファイルと、生成されたすべてのファイルです。 ソースファイルは Clang で .o ファイルにコンパイルされます。ヘッダー ファイル srcs 属性の任意のソースまたはヘッダーによってインクルードまたはインポートできる アクセスできますが、hdrs のヘッダーやこれに依存する 表示されます。 また、事前コンパイルされた .o ファイルを srcs として指定することもできます。シンボル リンカーのエラーが発生しないように、指定された .o ファイルのアーキテクチャとビルドのアーキテクチャの整合性を確認してください。
hdrs

ラベルのリスト。デフォルトは [] です

公開されている C、C++、Objective-C、Objective-C++ のヘッダー ファイルのリスト 依存するルールのソースに含まれている必要があります。

これらのヘッダーは、ライブラリの公開インターフェースを記述したものです。 ルールに含まれているか、または独立している できます。このライブラリのクライアントに含めることを想定していないヘッダー srcs 属性で指定する必要があります。

モジュールが有効になっている場合、これらはソースとは別にコンパイルされます。

ブール値デフォルトは False です。

1 の場合、これに(直接的または間接的に)依存するバンドルまたはバイナリ リストにあるファイルのすべてのオブジェクト ファイルを srcsnon_arc_srcs(含まれていないものも含む) バイナリによって参照されるシンボル。 これは、コードがバイナリ内のコードによって明示的に呼び出されない場合(コードがサービスから提供されるコールバックを受け取るように登録されている場合など)に便利です。
copts

文字列のリスト。デフォルトは [] です。

コンパイラに渡す追加のフラグ。 「変数を作成」による置換を適用し、 Bourne シェルのトークン化。 これらのフラグはこのターゲットにのみ適用されます。 関係するようになります。

生成された Xcode プロジェクトでは、ディレクトリ パスは「-I」を使用して指定します。使用すると、 copt が解析され、先頭に「$(WORKSPACE_ROOT)/」が付加されます相対パスの場合は 関連する Xcode ターゲットのヘッダー検索パスに追加されます。

defines

文字列のリスト。デフォルトは [] です。

コンパイラに渡す追加の -D フラグ。これらは KEY=VALUE 形式または単純に KEY 形式で、このターゲットのコンパイラ(copts の場合と同様に)だけでなく、このターゲットのすべての objc_ 依存関係にも渡されます。「変数を作成」の置換と Bourne シェルのトークン化の対象となります。
enable_modules

ブール値デフォルトは False です。

clang モジュールのサポートを有効にします(-fmodules を介して)。これを 1 に設定すると、システム ヘッダーや他のターゲットを @import できます。 @import UIKit; @import path_to_package_target;
implementation_deps

ラベルのリスト。デフォルトは [] です

ライブラリ ターゲットが依存する他のライブラリのリスト。他社との違い deps: これらのライブラリのヘッダーとインクルード パス(および 推移的依存関係)は、このライブラリのコンパイルにのみ使用され、 依存します。implementation_deps で指定されたライブラリは引き続きリンクされています バイナリ ターゲットに格納されます。
includes

文字列のリスト。デフォルトは [] です。

このターゲットに追加する #include/#import 検索パスのリスト 依存します。 これは、サポートしていないサードパーティおよびオープンソース ライブラリを ワークスペース全体のパスを #import/#include ステートメント。

パスはパッケージ ディレクトリを基準に解釈され、実際のクライアント ルートに加えて、genfiles ルートおよび bin ルート(blaze-genfiles/pkg/includedirblaze-out/pkg/includedir など)が含まれます。

COPTS とは異なり、これらのフラグは、このルールとそれに依存するすべてのルールに追加されます。(注: コンテナが依存するルールではありません)。影響が広範囲に及ぶ可能性があるため、十分に注意してください。不明な場合は、代わりに COPTS に「-iquote」フラグを追加します。

linkopts

文字列のリスト。デフォルトは [] です。

リンカーに渡す追加のフラグ。
module_map

ラベル(デフォルトは None

このターゲット用のカスタム Clang モジュールマップ。カスタム モジュール マップの使用はおすすめしません。ほとんど Bazel で生成されたモジュール マップを使用する必要があります。 指定すると、Bazel はこのターゲットのモジュール マップを生成しませんが、 渡されます。
module_name

String;デフォルトは "" です。

このターゲットのモジュール名を設定します。デフォルトでは、モジュール名は _ で置き換えられたすべての特殊記号。例://foo/baz:bar は foo_baz_bar としてインポートできます。
non_arc_srcs

ラベルのリスト。デフォルトは [] です

作成のために処理される Objective-C ファイルのリスト ARC を使用しないライブラリ ターゲット。 この属性に含まれるファイルは、 srcs 属性ですが、ARC を有効にせずにコンパイルされます。
pch

ラベル:デフォルトは None です

コンパイルされるすべてのソースファイルの先頭に付加するヘッダー ファイル(両曲線とも アークなし)。 BUILD ファイルでは pch ファイルの使用は積極的に推奨されず、非推奨と見なされます。pch ファイルは実際にはプリコンパイルされないため、 ビルド速度が向上しており、単なるグローバルな依存関係に過ぎません。ビルドから 効率性の面では 必要なものを直接含めた方がよいでしょう スキャンできます。
sdk_dylibs

文字列のリスト。デフォルトは [] です。

リンクする SDK .dylib ライブラリの名前。例: 「libz」または 「libarchive」。 バイナリに依存関係ツリーに C++ または Objective-C++ のソースが含まれている場合、「libc++」が自動的に含まれます。バイナリをリンクするときに、そのバイナリの伝播依存関係グラフに名前が指定されているすべてのライブラリが使用されます。
sdk_frameworks

文字列のリスト。デフォルトは [] です。

リンクする SDK フレームワークの名前(「AddressBook」、「QuartzCore」など)。

最上位の Apple バイナリをリンクすると、そのバイナリにリストされているすべての SDK フレームワークが 推移的依存関係グラフがリンクされています

sdk_includes

文字列のリスト。デフォルトは [] です。

このターゲットとすべての依存ターゲットに追加する #include/#import 検索パスのリスト。各パスは $(SDKROOT)/usr/include からの相対パスです。
stamp

ブール値デフォルトは False です。

textual_hdrs

ラベルのリスト。デフォルトは [] です

このルールのソースファイルまたはこのライブラリのユーザーによってヘッダーとして含められた C、C++、Objective-C、Objective-C++ ファイルのリスト。hdrs とは異なり、オブジェクトは あります。
weak_sdk_frameworks

文字列のリスト。デフォルトは [] です。

弱いリンクを設定したい SDK フレームワークの名前。たとえば、「MediaAccessibility」などです。通常リンクされた SDK フレームワークとは異なり、弱くリンクされたフレームワークのシンボルが実行時に存在しない場合、エラーは発生しません。