ルール
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 ターゲットに含まれる変換済みファイルは、デフォルトのコンパイル構成を使用してコンパイルされます。これは、属性でコンパイル オプションが指定されていない 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  | 
| entry_classes | 文字列のリスト。デフォルトは  --j2objc_dead_code_removal
        がオンの場合、この属性は必須です。Java クラスは、Java 言語仕様で定義されている正規名で指定する必要があります。フラグ--j2objc_dead_code_removalが指定されている場合、エントリ クラスのリストが推移的に収集され、デッドコード分析を実行するためのエントリ ポイントとして使用されます。未使用のクラスは、最終的な ObjC アプリバンドルから削除されます。 | 
| 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)
このルールの単一のターゲットは、--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 のバージョンの公式バージョン番号。 |