ルール
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, 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 とビンルート(例: 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, runtime_deps, 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
|
|
runtime_deps
|
|
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_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
|
|