ルール
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 とは異なり、これらのフラグはこのルールおよびそれに依存するすべてのルールに追加されます。(注: コンテナが依存するルールではありません)。広範囲の影響が及ぶ可能性があるため、細心の注意を払ってください。不明な場合は、代わりに 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, 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)
このルールの 2 つのターゲットは、xcode_config
ルール インスタンスによって依存され、リモートおよびローカルで利用可能な xcode バージョンを示します。これにより、一括で利用可能な 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)
このルールの 1 つのターゲットは --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)
その 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 バージョンの正式なバージョン番号。 |