ルール
j2objc_library
ルールのソースを表示j2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, features, jre_deps, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
このルールでは、J2ObjC を使用して Java ソースファイルを Objective-C に変換し、objc_library および objc_binary ルールの依存関係として使用できます。J2ObjC 自体について詳しくは、J2ObjC サイトをご覧ください。
カスタム J2ObjC トランスパイル フラグは、コマンドラインでビルドフラグ --j2objc_translation_flags
を使用して指定できます。
j2objc_library ターゲットに含まれる変換したファイルは、デフォルトのコンパイル構成(obbrac_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, hdrs, alwayslink, archives, compatible_with, deprecation, distribs, features, includes, licenses, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, visibility, weak_sdk_frameworks)
このルールは、すでにコンパイルされている静的ライブラリを .a
ファイルの形式でカプセル化します。また、objc_library
でサポートされているものと同じ属性を使用して、ヘッダーとリソースをエクスポートすることもできます。
引数
属性 | |
---|---|
name |
このターゲットの一意の名前。 |
hdrs
|
これらのヘッダーはライブラリの公開インターフェースを表し、このルールまたは依存ルールのソースで使用できるようになります。このライブラリのクライアントに含めることを想定していないヘッダーは、代わりに srcs 属性に含める必要があります。 モジュールが有効になっている場合、これらはソースとは別にコンパイルされます。 |
alwayslink
|
srcs と non_arc_srcs にリストされているファイルのすべてのオブジェクト ファイルにリンクします。これには、一部のファイルでバイナリから参照されるシンボルが含まれていない場合も含まれます。これは、バイナリ内のコードによってコードを明示的に呼び出さない場合(サービスが提供するコールバックを受け取るようにコードを登録する場合など)に便利です。
|
archives
|
.a ファイルのリスト。 |
includes
|
#include/#import 検索パスのリスト。これは、#import/#include ステートメントでワークスペースのパス全体を指定しないサードパーティ ライブラリとオープンソース ライブラリをサポートするためのものです。
パスはパッケージ ディレクトリを基準として解釈され、genfile と bin ルート( COPTS とは異なり、これらのフラグはこのルールおよびそれに依存するすべてのルールに追加されます。(注: これはルールに依存しません)。これは広範囲に影響する可能性があるため、注意が必要です。判断がつかない場合は、COPTS に「-iquote」フラグを追加してください。 |
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, includes, licenses, linkopts, module_map, module_name, non_arc_srcs, pch, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, 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 プロジェクトでは、copt で「-I」フラグを使用して指定されたディレクトリ パスが解析され、相対パスの場合は先頭に「$(WORKSPACE_ROOT)/」が付加され、関連する Xcode ターゲットのヘッダー検索パスに追加されます。 |
defines
|
-D フラグ。形式は KEY=VALUE または単に KEY とし、このターゲットのコンパイラ(copts と同様)だけでなく、このターゲットの objc_ のすべての依存関係にも渡します。Make 変数の置換とBourne シェルのトークン化が適用されます。 |
enable_modules
|
|
includes
|
#include/#import 検索パスのリスト。これは、#import/#include ステートメントでワークスペースのパス全体を指定しないサードパーティ ライブラリとオープンソース ライブラリをサポートするためのものです。
パスはパッケージ ディレクトリを基準として解釈され、genfile と bin ルート( COPTS とは異なり、これらのフラグはこのルールおよびそれに依存するすべてのルールに追加されます。(注: これはルールに依存しません)。これは広範囲に影響する可能性があるため、注意が必要です。判断がつかない場合は、COPTS に「-iquote」フラグを追加してください。 |
linkopts
|
|
module_map
|
|
module_name
|
|
non_arc_srcs
|
|
pch
|
|
sdk_dylibs
|
|
sdk_frameworks
|
トップレベルの Apple バイナリをリンクすると、そのバイナリの推移的依存関係グラフに記載されているすべての SDK フレームワークがリンクされます。 |
sdk_includes
|
#include/#import 検索パスのリスト。各パスは $(SDKROOT)/usr/include を基準とします。
|
textual_hdrs
|
|
weak_sdk_frameworks
|
|
available_xcodes
ルールのソースを表示available_xcodes(name, default, deprecation, distribs, features, licenses, tags, testonly, versions, visibility)
このルールの 2 つのターゲットは、xcode_config
ルール インスタンスに依存して、リモートとローカルで使用可能な xcode バージョンを指定できます。これにより、まとめて利用可能な xcode から正式な Xcode バージョンを選択できます。
引数
属性 | |
---|---|
name |
このターゲットの一意の名前。 |
default
|
|
versions
|
|
xcode_config
ルールのソースを表示xcode_config(name, default, deprecation, distribs, features, licenses, local_versions, remote_versions, tags, testonly, versions, visibility)
このルールの単一のターゲットを --xcode_version_config
ビルドフラグで参照して、--xcode_version
フラグを承認済みの公式 xcode バージョンに変換できます。これにより、複数の登録済みエイリアスから公式の Xcode バージョンを選択できます。
引数
属性 | |
---|---|
name |
このターゲットの一意の名前。 |
default
|
xcode_version ターゲットで指定されたバージョンは、xcode_version ビルドフラグが指定されていない場合に使用されます。これは、versions が設定されている場合に必要です。remote_versions または local_versions が設定されている場合は、設定できません。 |
local_versions
|
xcode_version |
remote_versions
|
xcode_version |
versions
|
xcode_version |
xcode_version
ルールのソースを表示xcode_version(name, default_ios_sdk_version, default_macos_sdk_version, default_tvos_sdk_version, default_watchos_sdk_version, deprecation, distribs, features, licenses, tags, testonly, version, visibility)
その xcode バージョンの有効なエイリアスを持つ単一の正式な xcode バージョンを表します。
xcode_config
ルールをご覧ください。
引数
属性 | |
---|---|
name |
このターゲットの一意の名前。 |
default_ios_sdk_version
|
ios_sdk_version ビルドフラグは、ここで指定された値をオーバーライドします。
|
default_macos_sdk_version
|
macos_sdk_version ビルドフラグは、ここで指定された値をオーバーライドします。
|
default_tvos_sdk_version
|
tvos_sdk_version ビルドフラグは、ここで指定された値をオーバーライドします。
|
default_watchos_sdk_version
|
watchos_sdk_version ビルドフラグは、ここで指定された値をオーバーライドします。
|
version
|
|