ルール
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 もバイナリレベルで生成、コンパイル、リンクインされます。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 ステートメントでワークスペース パス全体を指定しないサードパーティ ライブラリとオープンソース ライブラリをサポートするためです。
パスはパッケージ ディレクトリを基準とする相対パスで解釈され、実際のクライアント ルートに加えて、genfile とビンルート(例: 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 プロジェクトでは、copt で -I フラグを使用して指定されたディレクトリ パスが解析され、相対パスの場合は先頭に「$(WORKSPACE_ROOT)/」が付加され、関連する Xcode ターゲットのヘッダー検索パスに追加されます。 |
defines
|
文字列のリスト。デフォルトは -D フラグ。これらは KEY=VALUE または単に KEY の形式である必要があり、このターゲットのコンパイラだけでなく(copts と同様に)、このターゲットのすべての objc_ 依存者にも渡されます。
"Make variable" 置換と Bourne シェルトークン化が適用されます。
|
enable_modules
|
ブール値。デフォルトは |
implementation_deps
|
ラベルのリスト。デフォルトは deps と異なり、これらのライブラリのヘッダーとインクルードパス(およびそのすべての推移的依存関係)は、このライブラリのコンパイルにのみ使用され、それに依存するライブラリには使用されません。implementation_deps で指定されたライブラリは、このライブラリに依存するバイナリ ターゲットでは引き続きリンクされます。
|
includes
|
文字列のリスト。デフォルトは #include/#import 検索パスと、それに依存するすべてのターゲットのリスト。これは、#import/#include ステートメントでワークスペース パス全体を指定しないサードパーティ ライブラリとオープンソース ライブラリをサポートするためです。
パスはパッケージ ディレクトリを基準とする相対パスで解釈され、実際のクライアント ルートに加えて、genfile とビンルート(例: 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)
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 のバージョンの公式バージョン番号。 |