Quy tắc
j2objc_library
Xem nguồn quy tắcj2objc_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ó thể được dùng làm phần phụ thuộc của quy tắc objc_library và objc_binary. Bạn có thể xem thông tin chi tiết về J2ObjC tại trang web J2ObjC
Bạn có thể chỉ định cờ biên dịch chuyển đổi 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, cùng cấu hình với các nguồn của quy tắc objc_library không có tuỳ chọn biên dịch đượ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ó hai mục tiêu Java khác nhau chứa cùng một tệp nguồn Java, bạn có thể thấy lỗi trùng lặp ký hiệu 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 vào một mục tiêu chung riêng biệt mà bạn có thể dựa vào.
Đối số
Thuộc tính | |
---|---|
name |
Tên; bắt buộc Tên duy nhất cho mục tiêu này. |
deps
|
Danh sách nhãn; mặc định là j2objc_library , java_library , java_import và java_proto_library chứa các tệp Java cần được chuyển đổi 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ép đó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 ứng với thư mục gốc 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 tập hợp đó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. Đối với proto |
entry_classes
|
Danh sách chuỗi; mặc định là --j2objc_dead_code_removal
đang bật. Các lớp Java phải được chỉ định trong tên chuẩn theo định nghĩa của Quy cách 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 một cách bắc cầu và dùng làm điểm truy cập để thực hiện phân tích mã chết.
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
|
Danh sách nhãn; mặc định là j2objc_library này. Theo mặc định, chỉ chức năng JRE cốt lõi mới được liên kết.
|
objc_import
Xem nguồn quy tắcobjc_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)
Quy tắc này đóng gói một thư viện tĩnh đã biên dịch ở dạng tệp .a
. Phương thức 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; bắt buộc Tên duy nhất cho mục tiêu này. |
deps
|
Danh sách nhãn; mặc định là |
hdrs
|
Danh sách nhãn; mặc định là Các tiêu đề này mô tả giao diện công khai cho 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 trong các quy tắc phụ thuộc. Các tiêu đề không phải là tiêu đề mà ứng dụng của thư viện này đưa vào nên được liệt kê trong thuộc tính srcs. Các tệp này sẽ được biên dịch riêng biệt với nguồn nếu bạn bật mô-đun. |
alwayslink
|
Boolean; mặc định là srcs và non_arc_srcs , ngay cả khi một số tệp không chứa ký hiệu nào được tệp nhị phân tham chiếu.
Điều này hữu ích nếu mã của bạn không được mã trong tệp nhị phân gọi một cách rõ ràng, 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
|
Danh sách nhãn; bắt buộc Danh sách các tệp.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
|
Danh sách chuỗi; mặc định là #include/#import để 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 là để hỗ trợ các thư viện nguồn mở và bên thứ ba 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 được diễn giải tương ứng với thư mục gói, đồng thời các thư mục gốc genfiles và bin (ví dụ: Không giống như COPTS, các cờ này được thêm vào quy tắc này và mọi quy tắc phụ thuộc vào quy tắc này. (Lưu ý: không phải là các 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ể gây ra những hậu quả sâu rộng. Nếu không chắc chắn, hãy thêm cờ "-iquote" vào COPTS. |
sdk_dylibs
|
Danh sách chuỗi; mặc định là |
sdk_frameworks
|
Danh sách chuỗi; mặc định là Khi liên kết tệp nhị phân cấp cao nhất của Apple, tất cả khung SDK được liệt kê trong biểu đồ phần phụ thuộc bắc cầu của tệp nhị phân đó sẽ được liên kết. |
sdk_includes
|
Danh sách chuỗi; mặc định là #include/#import để 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
|
Danh sách nhãn; mặc định là |
weak_sdk_frameworks
|
Danh sách chuỗi; mặc định là |
objc_library
Xem nguồn quy tắcobjc_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)
Quy tắc này tạo 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; bắt buộc Tên duy nhất cho mục tiêu này. |
deps
|
Danh sách nhãn; mặc định là |
srcs
|
Danh sách nhãn; mặc định là |
hdrs
|
Danh sách nhãn; mặc định là Các tiêu đề này mô tả giao diện công khai cho 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 trong các quy tắc phụ thuộc. Các tiêu đề không phải là tiêu đề mà ứng dụng của thư viện này đưa vào nên được liệt kê trong thuộc tính srcs. Các tệp này sẽ được biên dịch riêng biệt với nguồn nếu bạn bật mô-đun. |
alwayslink
|
Boolean; mặc định là srcs và non_arc_srcs , ngay cả khi một số tệp không chứa ký hiệu nào được tệp nhị phân tham chiếu.
Điều này hữu ích nếu mã của bạn không được mã trong tệp nhị phân gọi một cách rõ ràng, 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
|
Danh sách chuỗi; mặc định là Xin lưu ý rằng đối với dự án Xcode được 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 "$(WORKSPACE_ROOT)/" nếu đó là đườ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
|
Danh sách chuỗi; mặc định là -D bổ sung để truyền đến trình biên dịch. Các đối tượng này phải ở dạng KEY=VALUE hoặc đơn giản là KEY và không chỉ được truyền đến trình biên dịch cho mục tiêu này (như copts ) mà còn được truyền đến tất cả phần phụ thuộc objc_ của mục tiêu này.
Chịu sự thay thế "Tạo biến" và tạo mã thông báo shell Bourne.
|
enable_modules
|
Boolean; mặc định là |
implementation_deps
|
Danh sách nhãn; mặc định là deps , tiêu đề và đường dẫn bao gồm của các thư viện này (và tất cả phần phụ thuộc bắc cầu của chúng) 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 thư viện này. Các thư viện được chỉ định bằng 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
|
Danh sách chuỗi; mặc định là #include/#import để 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 là để hỗ trợ các thư viện nguồn mở và bên thứ ba 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 được diễn giải tương ứng với thư mục gói, đồng thời các thư mục gốc genfiles và bin (ví dụ: Không giống như COPTS, các cờ này được thêm vào quy tắc này và mọi quy tắc phụ thuộc vào quy tắc này. (Lưu ý: không phải là các 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ể gây ra những hậu quả sâu rộng. Nếu không chắc chắn, hãy thêm cờ "-iquote" vào COPTS. |
linkopts
|
Danh sách chuỗi; mặc định là |
module_map
|
Nhãn; mặc định là |
module_name
|
Chuỗi; mặc định là |
non_arc_srcs
|
Danh sách nhãn; mặc định là |
pch
|
Nhãn; mặc định là |
sdk_dylibs
|
Danh sách chuỗi; mặc định là |
sdk_frameworks
|
Danh sách chuỗi; mặc định là Khi liên kết tệp nhị phân cấp cao nhất của Apple, tất cả khung SDK được liệt kê trong biểu đồ phần phụ thuộc bắc cầu của tệp nhị phân đó sẽ được liên kết. |
sdk_includes
|
Danh sách chuỗi; mặc định là #include/#import để 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
|
Danh sách nhãn; mặc định là |
weak_sdk_frameworks
|
Danh sách chuỗi; mặc định là |
available_xcodes
Xem nguồn quy tắcavailable_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 có sẵn từ xa và cục bộ.
Thao tác này cho phép chọn một phiên bản xcode chính thức trong số các xcode có sẵn.
Đối số
Thuộc tính | |
---|---|
name |
Tên; bắt buộc Tên duy nhất cho mục tiêu này. |
default
|
Nhãn; không thể định cấu hình; bắt buộc Phiên bản xcode mặc định cho nền tảng này. |
versions
|
Danh sách nhãn; không thể định cấu hình; mặc định là |
xcode_config
Xem nguồn quy tắcxcode_config(name, default, deprecation, distribs, features, licenses, local_versions, remote_versions, tags, testonly, versions, visibility)
Cờ bản dựng --xcode_version_config
có thể tham chiếu đến một mục tiêu duy nhất của quy tắc này để dịch cờ --xcode_version
thành phiên bản xcode chính thức được chấp nhận.
Thao tác này cho phép chọn một phiên bản xcode chính thức trong số các bí danh đã đăng ký.
Đối số
Thuộc tính | |
---|---|
name |
Tên; bắt buộc Tên duy nhất cho mục tiêu này. |
default
|
Nhãn; không thể định cấu hình; mặc định là xcode_version được 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. Bạn phải có thuộc tính này nếu đặt bất kỳ versions nào. Bạn không thể đặt thuộc tính này nếu đã đặt remote_versions hoặc local_versions .
|
local_versions
|
Nhãn; không thể định cấu hình; mặc định là xcode_version có sẵn cục bộ.
Các giá trị này được dùng cùng với local_versions để chọn một phiên bản có sẵn. Bạn không thể đặt thuộc tính này nếu đã đặt versions .
|
remote_versions
|
Nhãn; không thể định cấu hình; mặc định là xcode_version có sẵn từ xa.
Các giá trị này được dùng cùng với remote_versions để chọn một phiên bản có sẵn. Bạn không thể đặt thuộc tính này nếu đã đặt versions .
|
versions
|
Danh sách nhãn; không thể định cấu hình; mặc định là xcode_version được chấp nhận mà bạn có thể sử dụng.
Nếu giá trị của cờ bản dựng xcode_version khớp với một trong các bí danh hoặc số phiên bản của bất kỳ mục tiêu xcode_version nào đã cho, thì mục tiêu khớp sẽ được sử dụng. Bạn không thể đặt thuộc tính này nếu đã đặt remote_versions hoặc local_versions .
|
xcode_version
Xem nguồn quy tắcxcode_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)
Biểu thị một phiên bản xcode chính thức duy nhất 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; bắt buộc Tên duy nhất cho mục tiêu này. |
default_ios_sdk_version
|
Chuỗi; không thể định cấu hình; mặc định là ios_sdk_version sẽ ghi đè giá trị được chỉ định tại đây.
|
default_macos_sdk_version
|
Chuỗi; không thể định cấu hình; mặc định là macos_sdk_version sẽ ghi đè giá trị được chỉ định tại đây.
|
default_tvos_sdk_version
|
Chuỗi; không thể định cấu hình; mặc định là tvos_sdk_version sẽ ghi đè giá trị được chỉ định tại đây.
|
default_visionos_sdk_version
|
Chuỗi; không thể định cấu hình; mặc định là visionos_sdk_version sẽ ghi đè giá trị được chỉ định tại đây.
|
default_watchos_sdk_version
|
Chuỗi; không thể định cấu hình; mặc định là watchos_sdk_version sẽ ghi đè giá trị được chỉ định tại đây.
|
version
|
Chuỗi; không thể định cấu hình; bắt buộc Số phiên bản chính thức của một phiên bản Xcode. |