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 nguồn Java các tệp vào Target-C, các tệp này sau đó có thể được dùng làm phần phụ thuộc của objc_library và objc_binary quy tắc. Bạn có thể tìm thấy thông tin chi tiết về J2ObjC tại Trang web của J2ObjC
Bạn có thể chỉ định cờ chuyển đổi J2ObjC tuỳ chỉnh bằ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 đưa vào mục tiêu j2objc_library sẽ được được biên dịch bằng cách sử dụng cấu hình biên dịch mặc định, cùng cấu hình như đối với các nguồn của một quy tắc objc_library không có tuỳ chọn biên dịch nào được chỉ định trong các thuộc tính.
Ngoài ra, mã được tạo sẽ được loại bỏ trùng lặp ở cấp mục tiêu, chứ không phải ở cấp nguồn. Nếu có đích Java khác nhau bao gồm cùng tệp nguồn Java, 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 đúng để giải quyết vấn đề này là di chuyển các tệp nguồn Java được chia sẻ vào một mục tiêu chung riêng biệt có thể phụ thuộc vào.
Đối số
Thuộc tính | |
---|---|
name |
Tên duy nhất cho mục tiêu này. |
deps
|
j2objc_library , java_library ,
Các mục tiêu java_import và java_proto_library chứa
Các tệp Java sẽ được chuyển đổi sang Object-C.
Có thể đạt được tất cả mục tiêu Bản dịch J2ObjC hoạt động khác nhau tuỳ thuộc vào loại nguồn Java
tệp có trong đóng chuyển tiếp. Đố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 gốc tương đối của cấu phần phần mềm Java ban đầu. Ví dụ:
Nếu các quy tắc proto_library nằm trong cầu đóng bắc cầu của quy tắc này, thì các proto J2ObjC cũng sẽ
được tạo, biên dịch và liên kết ở cấp độ nhị phân. Cho proto
|
entry_classes
|
--j2objc_dead_code_removal
đang bật. Các lớp Java phải được chỉ định trong tên chuẩn của chúng như được xác định bằng
Java
Quy cách ngôn ngữ.
Khi cờ --j2objc_dead_code_removal được chỉ định, danh sách các lớp mục nhập
sẽ được thu thập bắc cầu và dùng làm điểm truy cập để tiến hành phân tích mã bị lỗi.
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 quy tắc. Theo mặc định, chỉ chức năng JRE chính mới được liên kết.
|
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 đã được biên dịch dưới dạng một
Tệp .a
. API này cũng cho phép xuất tiêu đề và tài nguyên bằng cùng một
do objc_library
hỗ trợ.
Đối số
Thuộc tính | |
---|---|
name |
Tên duy nhất cho mục tiêu này. |
hdrs
|
Các tiêu đề này mô tả giao diện công khai của thư viện và sẽ được cung cấp để đưa vào bởi các nguồn trong quy tắc này hoặc độc lập quy tắc. Tiêu đề không dành cho ứng dụng khách của thư viện này thay vào đó sẽ đượ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ạn bật các mô-đun. |
alwayslink
|
srcs và non_arc_srcs , ngay cả khi một số thuộc tính không chứa
được tham chiếu bởi tệp nhị phân.
Điều này rất 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, ví dụ: nếu 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 Target-C nhắm mục tiêu
phụ thuộc vào mục tiêu này.
|
includes
|
#include/#import đường dẫn tìm kiếm để thêm vào mục tiêu này
và tất cả các mục tiêu phụ thuộc.
Điều 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âu lệnh #import/#include .
Các đường dẫn này được diễn giải tương ứng với thư mục gói và
tệp gen 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 nó. (Lưu ý: không phải quy tắc mà nó phụ thuộc vào!) Hãy thật cẩn thận, vì việc này có thể có ảnh hưởng sâu rộng. Khi nghi ngờ, hãy thêm "-dấu ngoặc kép" gắn cờ vào COPTS. |
sdk_dylibs
|
|
sdk_frameworks
|
Khi liên kết một tệp nhị phân cấp cao nhất của Apple, tất cả khung SDK được liệt kê trong tệp nhị phân đó biểu đồ phần phụ thuộc bắc cầu được liên kết. |
sdk_includes
|
#include/#import đường dẫn tìm kiếm để 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 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, 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)
Quy tắc này tạo ra một thư viện tĩnh từ các tệp nguồn Target-C đã cho.
Đối số
Thuộc tính | |
---|---|
name |
Tên duy nhất cho mục tiêu này. |
deps
|
|
srcs
|
|
hdrs
|
Các tiêu đề này mô tả giao diện công khai của thư viện và sẽ được cung cấp để đưa vào bởi các nguồn trong quy tắc này hoặc độc lập quy tắc. Tiêu đề không dành cho ứng dụng khách của thư viện này thay vào đó sẽ đượ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ạn bật các mô-đun. |
alwayslink
|
srcs và non_arc_srcs , ngay cả khi một số thuộc tính không chứa
được tham chiếu bởi tệp nhị phân.
Điều này rất 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, ví dụ: nếu 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
|
Lưu ý rằng đối với dự án Xcode đã tạo, đường dẫn thư mục được chỉ định bằng "-I" cờ ở copt được phân tích cú pháp, thêm "$(WORKSPACE_ROOT)/" nếu đó là các đường dẫn tương đối và đã 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 bổ sung để truyền đến trình biên dịch. Các nhãn này phải ở định dạng
có dạng KEY=VALUE hoặc đơn giản là KEY và
không chỉ được truyền cho trình biên dịch cho mục tiêu này (dưới dạng copts
) mà còn cho tất cả những người phụ thuộc objc_ của mục tiêu này.
Theo sự thay thế "Tạo biến" và
Mã hoá bằng mã thông báo shell Bourne.
|
enable_modules
|
|
implementation_deps
|
deps , tiêu đề và bao gồm đường dẫn của các thư viện này (cũng như tất cả các đường dẫn
Phần phụ thuộc bắc cầu) chỉ được dùng để biên dịch thư viện này chứ không phải các thư viện
phụ thuộc vào mã đó. Các thư viện được chỉ định với implementation_deps vẫn được liên kết
trong các mục tiêu nhị phân phụ thuộc vào thư viện này.
|
includes
|
#include/#import đường dẫn tìm kiếm để thêm vào mục tiêu này
và tất cả các mục tiêu phụ thuộc.
Điều 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âu lệnh #import/#include .
Các đường dẫn này được diễn giải tương ứng với thư mục gói và
tệp gen 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 nó. (Lưu ý: không phải quy tắc mà nó phụ thuộc vào!) Hãy thật cẩn thận, vì việc này có thể có ảnh hưởng sâu rộng. Khi nghi ngờ, hãy thêm "-dấu ngoặc kép" gắn cờ 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 cấp cao nhất của Apple, tất cả khung SDK được liệt kê trong tệp nhị phân đó biểu đồ phần phụ thuộc bắc cầu được liên kết. |
sdk_includes
|
#include/#import đường dẫn tìm kiếm để 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 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ể phụ thuộc vào hai mục tiêu của quy tắc này để
cho biết các phiên bản xcode từ xa và cục bộ có sẵn.
Điều này cho phép lựa chọn phiên bản xcode chính thức từ các mã xcode có sẵn chung.
Đối số
Thuộc tính | |
---|---|
name |
Tên duy nhất 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)
Bản dựng --xcode_version_config
có thể tham chiếu một mục tiêu duy nhất của quy tắc này
để chuyển 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 duy nhất cho mục tiêu này. |
default
|
xcode_version đã cung cấp 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 có
Đã đặt versions . Bạn có thể không thiết lập được chế độ này nếu remote_versions hoặc
Đã đặt 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_visionos_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ó 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 duy nhất cho mục tiêu này. |
default_ios_sdk_version
|
ios_sdk_version sẽ ghi đè giá trị được chỉ định ở đây.
|
default_macos_sdk_version
|
macos_sdk_version sẽ ghi đè giá trị được chỉ định ở đây.
|
default_tvos_sdk_version
|
tvos_sdk_version sẽ ghi đè giá trị được chỉ định ở đây.
|
default_visionos_sdk_version
|
visionos_sdk_version sẽ ghi đè giá trị được chỉ định ở đây.
|
default_watchos_sdk_version
|
watchos_sdk_version sẽ ghi đè giá trị được chỉ định ở đây.
|
version
|
|