ルール
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 に変換します。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, 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 |
名前(必須) このターゲットの一意の名前。 |
deps
|
ラベルのリスト。デフォルトは |
hdrs
|
ラベルのリスト。デフォルトは これらのヘッダーはライブラリの公開インターフェースを記述し、このルールまたは依存するルールのソースによって使用できるようになります。このライブラリのクライアントによってインクルードされることを意図していないヘッダーは、srcs 属性でリストする必要があります。 モジュールが有効になっている場合、これらはソースとは別にコンパイルされます。 |
alwayslink
|
ブール値。デフォルトは srcs と non_arc_srcs にリストされているファイルのすべてのオブジェクト ファイルにリンクします。これには、バイナリによって参照されるシンボルが含まれていないファイルも含まれます。
これは、コードがバイナリ内のコードによって明示的に呼び出されない場合(コードがサービスから提供されるコールバックを受信するように登録されている場合など)に便利です。 |
archives
|
ラベルのリスト(必須) このターゲットに依存する Objective-C ターゲットに提供される.a ファイルのリスト。
|
includes
|
文字列のリスト。デフォルトは #include/#import 検索パスのリスト。これは、#import/#include ステートメントでワークスペース パス全体を指定していないサードパーティ ライブラリとオープンソース ライブラリをサポートするためです。
パスはパッケージ ディレクトリからの相対パスとして解釈され、実際のクライアント ルートに加えて genfiles と bin ルート( COPTS とは異なり、これらのフラグはこのルールおよびそれに依存するすべてのルールに追加されます。(注: 依存するルールではありません)。広範囲の影響が及ぶ可能性があるため、細心の注意を払ってください。判断に迷う場合は、代わりに「-iquote」フラグを 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, 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 プロジェクトでは、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 とは異なり、これらのフラグはこのルールおよびそれに依存するすべてのルールに追加されます。(注: 依存するルールではありません)。影響が広範囲に及ぶ可能性があるため、十分に注意してください。不明な場合は、代わりに 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)
リモートとローカルで利用可能な Xcode のバージョンを示すために、xcode_config
ルール インスタンスによってこのルールの 2 つのターゲットを指定できます。これにより、まとめて利用可能な xcode から公式の xcode バージョンを選択できます。
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
default
|
このプラットフォームのデフォルトの Xcode バージョン。 |
versions
|
このプラットフォームで利用可能な Xcode バージョン。 |
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 のデフォルトの公式バージョン。xcode_version ビルドフラグが指定されていない場合は、指定された xcode_version ターゲットで指定されたバージョンが使用されます。versions が設定されている場合は必須です。remote_versions または local_versions が設定されている場合、これは設定されないことがあります。 |
local_versions
|
ローカルで利用可能な xcode_version ターゲット。これらは local_versions とともに使用され、相互に利用可能なバージョンを選択します。versions が設定されている場合、この値は設定されないことがあります。 |
remote_versions
|
リモートで使用可能な xcode_version ターゲット。これらは、相互に使用可能なバージョンを選択するために remote_versions とともに使用されます。versions が設定されている場合、この値は設定されないことがあります。 |
versions
|
使用できる承認済みの xcode_version ターゲット。xcode_version ビルドフラグの値が、指定された xcode_version ターゲットのいずれかのエイリアスまたはバージョン番号と一致する場合、一致するターゲットが使用されます。remote_versions または local_versions が設定されている場合、これは設定されないことがあります。 |
xcode_version
ルールソースを表示xcode_version(name, default_ios_sdk_version, default_macos_sdk_version, default_tvos_sdk_version, default_visionos_sdk_version, default_watchos_sdk_version, deprecation, distribs, features, licenses, tags, testonly, version, visibility)
1 つの公式 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_visionos_sdk_version
|
文字列、設定不可、デフォルトは visionos_sdk_version ビルドフラグは、ここで指定された値をオーバーライドします。
|
default_watchos_sdk_version
|
文字列。構成不可。デフォルトは watchos_sdk_version ビルドフラグは、ここで指定された値をオーバーライドします。
|
version
|
文字列。構成不可。必須 Xcode のバージョンの公式バージョン番号。 |