ルール
j2objc_library
ルールのソースを表示j2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, exec_compatible_with, exec_properties, features, jre_deps, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
このルールは、J2ObjC を使用して Java ソースファイルを Objective-C に変換します。Objective-C は、objc_library ルールと objc_binary ルールの依存関係として使用できます。J2ObjC 自体の詳細については、J2ObjC のサイトをご覧ください。
カスタム J2ObjC トランスパイル フラグは、コマンドラインでビルドフラグ --j2objc_translation_flags
を使用して指定できます。
j2objc_library ターゲットに含まれる変換済みファイルは、デフォルトのコンパイル構成を使用してコンパイルされます。これは、属性にコンパイル オプションを指定しない objc_library ルールのソースと同じ構成です。
さらに、生成されたコードはソースレベルではなくターゲット レベルで重複排除されます。同じ Java ソースファイルを含む 2 つの異なる Java ターゲットがある場合、リンク時に重複シンボルエラーが表示されることがあります。この問題を解決する正しい方法は、共有 Java ソースファイルを、依存できる別の共通ターゲットに移動することです。
引数
属性 | |
---|---|
name |
名前(必須) このターゲットの一意の名前。 |
deps
|
ラベルのリスト。デフォルトは j2objc_library 、java_library 、java_import 、java_proto_library ターゲットのリスト。
J2ObjC 変換の動作は、推移的クロージャに含まれるソース Java ソースファイルのタイプによって異なります。 ユーザーは、J2ObjC で生成されたヘッダー ファイルをコードにインポートできます。これらのファイルのインポートパスは、元の Java アーティファクトのルート相対パスです。たとえば、
proto_library ルールがこのルールの推移的クロージャに含まれている場合、J2ObjC proto もバイナリレベルで生成、コンパイル、リンクされます。proto |
entry_classes
|
文字列のリスト。デフォルトは --j2objc_dead_code_removal
がオンの場合、この属性は必須です。Java クラスは、Java 言語仕様で定義されている正規名で指定する必要があります。フラグ --j2objc_dead_code_removal を指定すると、エントリクラスのリストが推移的に収集され、デッドコード分析を行うためのエントリ ポイントとして使用されます。未使用のクラスは、最終的な ObjC App Bundle から削除されます。
|
jre_deps
|
ラベルのリスト。デフォルトは j2objc_library ルールで変換されるすべての Java コードに必要な追加の JRE エミュレーション ライブラリのリスト。デフォルトでは、JRE のコア機能のみがリンクされています。 |
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
ファイルの形式でカプセル化します。また、objc_library
でサポートされているものと同じ属性を使用して、ヘッダーとリソースをエクスポートすることもできます。
引数
属性 | |
---|---|
name |
名前(必須) このターゲットの一意の名前。 |
deps
|
ラベルのリスト。デフォルトは |
hdrs
|
ラベルのリスト。デフォルトは これらのヘッダーは、ライブラリの公開インターフェースを記述するもので、このルールまたは依存ルールのソースがインクルードできるようになります。このライブラリのクライアントによってインクルードされることを意図していないヘッダーは、srcs 属性でリストする必要があります。 モジュールが有効になっている場合、これらはソースとは別にコンパイルされます。 |
alwayslink
|
ブール値。デフォルトは srcs と non_arc_srcs にリストされているファイルのすべてのオブジェクト ファイルにリンクします。これには、バイナリによって参照されるシンボルが含まれていないファイルも含まれます。
これは、バイナリ内のコードによってコードが明示的に呼び出されていない場合(たとえば、なんらかのサービスから提供されるコールバックを受け取るようにコードが登録されている場合)に役立ちます。 |
archives
|
ラベルのリスト。必須 このターゲットに依存する Objective-C ターゲットに提供される.a ファイルのリスト。 |
includes
|
文字列のリスト。デフォルトは #include/#import 検索パスのリスト。これは、#import/#include ステートメントでワークスペース パス全体を指定していないサードパーティ ライブラリとオープンソース ライブラリをサポートするためです。
パスはパッケージ ディレクトリを基準として相対的に解釈され、実際のクライアント ルートに加えて genfiles と bin のルート( COPTS とは異なり、これらのフラグはこのルールとそれに依存するすべてのルールに追加されます。(注: コンテナが依存するルールではありません)。広範囲の影響が及ぶ可能性があるため、注意が必要です。判断に迷う場合は、代わりに「-iquo」フラグを COPTS に追加してください。 |
sdk_dylibs
|
文字列のリスト。デフォルトは |
sdk_frameworks
|
文字列のリスト。デフォルトは トップレベルの Apple バイナリをリンクすると、そのバイナリの推移的依存関係グラフにリストされているすべての SDK フレームワークがリンクされます。 |
sdk_includes
|
文字列のリスト。デフォルトは #include/#import 検索パスのリスト。各パスは $(SDKROOT)/usr/include からの相対パスです。 |
textual_hdrs
|
ラベルのリスト。デフォルトは |
weak_sdk_frameworks
|
文字列のリスト。デフォルトは |
objc_library
ルールのソースを表示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
|
ラベルのリスト。デフォルトは |
hdrs
|
ラベルのリスト。デフォルトは これらのヘッダーは、ライブラリの公開インターフェースを記述するもので、このルールまたは依存ルールのソースがインクルードできるようになります。このライブラリのクライアントによってインクルードされることを意図していないヘッダーは、srcs 属性でリストする必要があります。 モジュールが有効になっている場合、これらはソースとは別にコンパイルされます。 |
alwayslink
|
ブール値。デフォルトは srcs と non_arc_srcs にリストされているファイルのすべてのオブジェクト ファイルにリンクします。これには、バイナリによって参照されるシンボルが含まれていないファイルも含まれます。
これは、バイナリ内のコードによってコードが明示的に呼び出されていない場合(たとえば、なんらかのサービスから提供されるコールバックを受け取るようにコードが登録されている場合)に役立ちます。 |
copts
|
文字列のリスト。デフォルトは 生成された Xcode プロジェクトでは、copts で「-I」フラグを使用して指定されたディレクトリ パスが解析され、相対パスの場合は先頭に「$(WORKSPACE_ROOT)/」が付加され、関連付けられた Xcode ターゲットのヘッダー検索パスに追加されます。 |
defines
|
文字列のリスト。デフォルトは -D フラグ。形式は KEY=VALUE または単に KEY にする必要があります。また、このターゲットのコンパイラ(copts と同様)だけでなく、このターゲットのすべての objc_ 依存先にも渡されます。「変数を作成」の置換と Bourne シェルのトークン化が適用されます。 |
enable_modules
|
ブール値。デフォルトは |
implementation_deps
|
ラベルのリスト。デフォルトは deps とは異なり、これらのライブラリのヘッダーとインクルード パス(およびそのすべての推移的依存関係)は、このライブラリのコンパイルにのみ使用され、このライブラリに依存するライブラリには使用されません。implementation_deps で指定されたライブラリは、このライブラリに依存するバイナリ ターゲットにリンクされます。 |
includes
|
文字列のリスト。デフォルトは #include/#import 検索パスのリスト。これは、#import/#include ステートメントでワークスペース パス全体を指定していないサードパーティ ライブラリとオープンソース ライブラリをサポートするためです。
パスはパッケージ ディレクトリを基準として相対的に解釈され、実際のクライアント ルートに加えて genfiles と bin のルート( COPTS とは異なり、これらのフラグはこのルールとそれに依存するすべてのルールに追加されます。(注: コンテナが依存するルールではありません)。広範囲の影響が及ぶ可能性があるため、注意が必要です。判断に迷う場合は、代わりに「-iquo」フラグを COPTS に追加してください。 |
linkopts
|
文字列のリスト。デフォルトは |
module_map
|
ラベル: デフォルトは |
module_name
|
文字列。デフォルトは |
non_arc_srcs
|
ラベルのリスト。デフォルトは |
pch
|
ラベル: デフォルトは |
sdk_dylibs
|
文字列のリスト。デフォルトは |
sdk_frameworks
|
文字列のリスト。デフォルトは トップレベルの Apple バイナリをリンクすると、そのバイナリの推移的依存関係グラフにリストされているすべての SDK フレームワークがリンクされます。 |
sdk_includes
|
文字列のリスト。デフォルトは #include/#import 検索パスのリスト。各パスは $(SDKROOT)/usr/include からの相対パスです。 |
stamp
|
ブール値。デフォルトは |
textual_hdrs
|
ラベルのリスト。デフォルトは |
weak_sdk_frameworks
|
文字列のリスト。デフォルトは |