Quy tắc
j2objc_library
j2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, features, jre_deps, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
Quy tắc này sử dụng J2ObjC để dịch các tệp nguồn Java sang Objective-C. Sau đó, các tệp này có thể được dùng làm phần phụ thuộc của các quy tắc objc_library và objc_binary. Bạn có thể tìm thấy thông tin chi tiết về J2ObjC tại trang web J2ObjC
Bạn có thể chỉ định cờ dịch chuyển J2ObjC tuỳ chỉnh bằng cách sử dụng cờ bản dựng --j2objc_translation_flags
trong dòng lệnh.
Xin lưu ý rằng các tệp đã dịch có trong mục tiêu j2objc_library sẽ được biên dịch bằng cấu hình biên dịch mặc định, tương tự cấu hình như đối với các nguồn của quy tắc objc_library không có lựa chọn biên dịch nào được chỉ định trong các thuộc tính.
Ngoài ra, mã đã tạo sẽ được loại bỏ trùng lặp ở cấp đích, chứ không phải ở cấp nguồn. Nếu có hai mục tiêu Java khác nhau bao gồm cùng một tệp nguồn Java, thì bạn có thể thấy lỗi biểu tượng trùng lặp tại thời điểm liên kết. Cách chính xác để giải quyết vấn đề này là di chuyển các tệp nguồn Java dùng chung sang một mục tiêu chung riêng biệt có thể được phụ thuộc.
Đối số
Thuộc tính | |
---|---|
name |
Tên dành riêng cho mục tiêu này. |
deps
|
j2objc_library , java_library , java_import và java_proto_library có chứa các tệp Java cần được sao chép sang Objective-C.
Tất cả các mục tiêu Quá trình dịch J2ObjC hoạt động theo cách khác nhau tuỳ thuộc vào loại tệp nguồn Java nguồn có trong phần đóng bắc cầu. Đối với mỗi tệp nguồn .java có trong Người dùng có thể nhập các tệp tiêu đề do J2ObjC tạo trong mã của họ. Đường dẫn nhập cho các tệp này là đường dẫn tương đối gốc của cấu phần phần mềm Java gốc. Ví dụ:
Nếu các quy tắc proto_library đang đóng bắc cầu của quy tắc này, thì các protos J2ObjC cũng sẽ được tạo, biên dịch và liên kết ở cấp nhị phân. Đối với proto |
entry_classes
|
--j2objc_dead_code_removal
đang bật. Lớp Java phải được chỉ định trong tên chuẩn của chúng, như được xác định trong Thông số kỹ thuật ngôn ngữ Java.
Khi chỉ định cờ --j2objc_dead_code_removal , danh sách các lớp mục nhập sẽ được thu thập theo cách bắc cầu và dùng làm điểm truy cập để thực hiện việc phân tích mã không hoạt động.
Sau đó, các lớp không dùng đến sẽ bị xoá khỏi gói ứng dụng ObjC cuối cùng.
|
jre_deps
|
j2objc_library này. Chỉ có chức năng JRE cốt lõi được liên kết theo mặc định.
|
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)
Quy tắc này đóng gói một thư viện tĩnh đã biên dịch dưới dạng tệp .a
. Tính năng này cũng cho phép xuất tiêu đề và tài nguyên bằng cách sử dụng các thuộc tính mà objc_library
hỗ trợ.
Đối số
Thuộc tính | |
---|---|
name |
Tên dành riêng cho mục tiêu này. |
hdrs
|
Những tiêu đề này mô tả giao diện công khai của thư viện và sẽ được cung cấp để các nguồn tham gia quy tắc này hoặc trong các quy tắc phụ thuộc. Các tiêu đề không phải do ứng dụng của thư viện này sử dụng nên được liệt kê trong thuộc tính srcs. Các mô-đun này sẽ được biên dịch riêng biệt với nguồn nếu bật các mô-đun. |
alwayslink
|
srcs và non_arc_srcs , ngay cả khi một số gói không chứa ký hiệu mà tệp nhị phân tham chiếu.
Điều này sẽ hữu ích nếu mã của bạn không được gọi rõ ràng bằng mã trong tệp nhị phân, chẳng hạn như khi mã của bạn đăng ký nhận một số lệnh gọi lại do một số dịch vụ cung cấp.
|
archives
|
.a được cung cấp cho các mục tiêu Objective-C phụ thuộc vào mục tiêu này.
|
includes
|
#include/#import cần thêm vào mục tiêu này và tất cả các mục tiêu tuỳ thuộc.
Việc này nhằm hỗ trợ các thư viện bên thứ ba và thư viện nguồn mở không chỉ định toàn bộ đường dẫn không gian làm việc trong các câu lệnh #import/#include .
Các đường dẫn được diễn giải tương ứng với thư mục gói, cũng như các genfile và gốc bin (ví dụ: Không giống như COPTS, những cờ này được thêm cho quy tắc này và mọi quy tắc phụ thuộc vào quy tắc đó. (Lưu ý: không phải các quy tắc mà nó phụ thuộc vào!) Hãy hết sức cẩn trọng vì việc này có thể gây ra những ảnh hưởng rất lớn. Khi không chắc chắn, hãy thêm cờ "-i ngôn ngữ" vào COPTS. |
sdk_dylibs
|
|
sdk_frameworks
|
Khi liên kết một tệp nhị phân Apple cấp cao nhất, tất cả khung SDK có trong biểu đồ phần phụ thuộc bắc cầu của tệp nhị phân đó đều được liên kết. |
sdk_includes
|
#include/#import cần thêm vào mục tiêu này và tất cả các mục tiêu phụ thuộc, trong đó mỗi đường dẫn đều tương ứng với $(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, 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)
Quy tắc này tạo ra một thư viện tĩnh từ các tệp nguồn Objective-C đã cho.
Đối số
Thuộc tính | |
---|---|
name |
Tên dành riêng cho mục tiêu này. |
deps
|
|
srcs
|
|
hdrs
|
Những tiêu đề này mô tả giao diện công khai của thư viện và sẽ được cung cấp để các nguồn tham gia quy tắc này hoặc trong các quy tắc phụ thuộc. Các tiêu đề không phải do ứng dụng của thư viện này sử dụng nên được liệt kê trong thuộc tính srcs. Các mô-đun này sẽ được biên dịch riêng biệt với nguồn nếu bật các mô-đun. |
alwayslink
|
srcs và non_arc_srcs , ngay cả khi một số gói không chứa ký hiệu mà tệp nhị phân tham chiếu.
Điều này sẽ hữu ích nếu mã của bạn không được gọi rõ ràng bằng mã trong tệp nhị phân, chẳng hạn như khi mã của bạn đăng ký nhận một số lệnh gọi lại do một số dịch vụ cung cấp.
|
copts
|
Xin lưu ý rằng đối với dự án Xcode đã tạo, các đường dẫn thư mục được chỉ định bằng cờ "-I" trong copts sẽ được phân tích cú pháp, thêm vào trước "$(WORKSPACE_ROOT)/" nếu chúng là đường dẫn tương đối và được thêm vào đường dẫn tìm kiếm ở tiêu đề cho mục tiêu Xcode được liên kết. |
defines
|
-D để truyền đến trình biên dịch. Chúng phải ở dạng KEY=VALUE hoặc đơn giản là KEY và được chuyển không chỉ cho trình biên dịch cho mục tiêu này (dưới dạng copts ) mà còn được chuyển cho tất cả những phần phụ thuộc objc_ của mục tiêu này.
Có thể thay thế "Tạo biến" và
mã thông báo shell shell.
|
enable_modules
|
|
includes
|
#include/#import cần thêm vào mục tiêu này và tất cả các mục tiêu tuỳ thuộc.
Việc này nhằm hỗ trợ các thư viện bên thứ ba và thư viện nguồn mở không chỉ định toàn bộ đường dẫn không gian làm việc trong các câu lệnh #import/#include .
Các đường dẫn được diễn giải tương ứng với thư mục gói, cũng như các genfile và gốc bin (ví dụ: Không giống như COPTS, những cờ này được thêm cho quy tắc này và mọi quy tắc phụ thuộc vào quy tắc đó. (Lưu ý: không phải các quy tắc mà nó phụ thuộc vào!) Hãy hết sức cẩn trọng vì việc này có thể gây ra những ảnh hưởng rất lớn. Khi không chắc chắn, hãy thêm cờ "-i ngôn ngữ" vào COPTS. |
linkopts
|
|
module_map
|
|
module_name
|
|
non_arc_srcs
|
|
pch
|
|
runtime_deps
|
|
sdk_dylibs
|
|
sdk_frameworks
|
Khi liên kết một tệp nhị phân Apple cấp cao nhất, tất cả khung SDK có trong biểu đồ phần phụ thuộc bắc cầu của tệp nhị phân đó đều được liên kết. |
sdk_includes
|
#include/#import cần thêm vào mục tiêu này và tất cả các mục tiêu phụ thuộc, trong đó mỗi đường dẫn đều tương ứng với $(SDKROOT)/usr/include .
|
textual_hdrs
|
|
weak_sdk_frameworks
|
|
available_xcodes
available_xcodes(name, default, deprecation, distribs, features, licenses, tags, testonly, versions, visibility)
Một thực thể quy tắc xcode_config
có thể dựa vào 2 mục tiêu của quy tắc này để cho biết các phiên bản xcode có sẵn từ xa và cục bộ.
Điều này cho phép lựa chọn phiên bản xcode chính thức từ các xcodes có sẵn chung.
Đối số
Thuộc tính | |
---|---|
name |
Tên dành riêng cho mục tiêu này. |
default
|
|
versions
|
|
xcode_config
xcode_config(name, default, deprecation, distribs, features, licenses, local_versions, remote_versions, tags, testonly, versions, visibility)
Một mục tiêu duy nhất của quy tắc này có thể được tham chiếu bằng cờ bản dựng --xcode_version_config
để chuyển đổi cờ --xcode_version
thành phiên bản xcode chính thức được chấp nhận.
Điều này cho phép lựa chọn phiên bản xcode chính thức từ một số bí danh đã đăng ký.
Đối số
Thuộc tính | |
---|---|
name |
Tên dành riêng cho mục tiêu này. |
default
|
xcode_version đã cung cấp chỉ định sẽ được sử dụng nếu không có cờ bản dựng xcode_version nào được chỉ định. Đây là yêu cầu bắt buộc nếu bạn đặt bất kỳ versions nào. Bạn không thể đặt chính sách này nếu đã đặt remote_versions hoặc local_versions .
|
local_versions
|
xcode_version |
remote_versions
|
xcode_version |
versions
|
xcode_version nội dung thay đổi được chấp nhận |
xcode_version
xcode_version(name, default_ios_sdk_version, default_macos_sdk_version, default_tvos_sdk_version, default_watchos_sdk_version, deprecation, distribs, features, licenses, tags, testonly, version, visibility)
Đại diện cho một phiên bản xcode chính thức có các bí danh được chấp nhận cho phiên bản xcode đó.
Xem quy tắc xcode_config
.
Đối số
Thuộc tính | |
---|---|
name |
Tên dành riêng cho mục tiêu này. |
default_ios_sdk_version
|
ios_sdk_version sẽ ghi đè giá trị được chỉ định tại đây.
|
default_macos_sdk_version
|
macos_sdk_version sẽ ghi đè giá trị được chỉ định tại đây.
|
default_tvos_sdk_version
|
tvos_sdk_version sẽ ghi đè giá trị được chỉ định tại đây.
|
default_watchos_sdk_version
|
watchos_sdk_version sẽ ghi đè giá trị được chỉ định tại đây.
|
version
|
|