Quy tắc
j2objc_library
Xem nguồn quy tắcj2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, exec_compatible_with, exec_properties, features, jre_deps, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Quy tắc này sử dụng J2ObjC để dịch các tệp nguồn Java sang Target-C. Sau đó, các tệp này có thể được dùng làm phần phụ thuộc của objc_library và objc_binary. Bạn có thể xem 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á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ó cùng cấu hình như đối 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 bao gồm các tệp nguồn Java giống nhau, 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 đú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ể được phụ thuộc.
Đố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 sẽ được chuyển mã sang Mục tiêu-C.
Tất cả các mục tiêu Bản dịch J2ObjC hoạt động theo các cách khác nhau tuỳ thuộc vào loại tệp nguồn Java 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 gốc tương đối của các cấu phần phần mềm Java gốc. Ví dụ:
Nếu các quy tắc proto_library nằm trong quá trình đó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 |
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 hoá như được xác định trong Thông số kỹ thuật ngôn ngữ Java.
Khi cờ --j2objc_dead_code_removal được chỉ định, danh sách các lớp truy cậ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ã 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 chính 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, exec_compatible_with, exec_properties, features, includes, 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 đóng gói một thư viện tĩnh đã được biên dịch dưới dạng một tệp .a
. Tệp này cũng cho phép xuất tiêu đề và tài nguyên bằng cách sử dụng cù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 của thư viện và sẽ có sẵn để đưa vào các nguồn trong quy tắc này hoặc trong các quy tắc phụ thuộc. Thay vào đó, các tiêu đề không dành cho ứng dụng khách của thư viện này phải đượ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
|
Boolean; giá trị mặc định là srcs và non_arc_srcs , ngay cả khi một số tệp không chứa biểu tượng nào được tệp nhị phân tham chiếu đến.
Điều này sẽ hữu ích nếu mã không được gọi rõ ràng bằng mã trong tệp nhị phân, chẳng hạn như nếu mã của bạn đăng ký nhận một số lệnh gọi lại do dịch vụ nào đó 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 Object-C phụ thuộc vào mục tiêu này.
|
includes
|
Danh sách chuỗi; mặc định là #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.
Tính năng này nhằm 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 tệp gen và gốc thùng (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 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 cờ "-iTrích dẫn" 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 một tệp nhị phân Apple cấp cao nhất, 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 đó đều được liên kết. |
sdk_includes
|
Danh sách chuỗi; mặc định là #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 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, linkopts, module_map, module_name, non_arc_srcs, pch, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, stamp, 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; 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 của thư viện và sẽ có sẵn để đưa vào các nguồn trong quy tắc này hoặc trong các quy tắc phụ thuộc. Thay vào đó, các tiêu đề không dành cho ứng dụng khách của thư viện này phải đượ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
|
Boolean; giá trị mặc định là srcs và non_arc_srcs , ngay cả khi một số tệp không chứa biểu tượng nào được tệp nhị phân tham chiếu đến.
Điều này sẽ hữu ích nếu mã không được gọi rõ ràng bằng mã trong tệp nhị phân, chẳng hạn như nếu mã của bạn đăng ký nhận một số lệnh gọi lại do dịch vụ nào đó cung cấp.
|
copts
|
Danh sách chuỗi; mặc định là 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 hệ thống sẽ được phân tích cú pháp, thêm "$(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
|
Danh sách chuỗi; mặc định là -D bổ sung để truyền đến trình biên dịch. Các mã này phải 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 đối với mục tiêu này (như copts ) mà còn được truyền cho tất cả người phụ thuộc objc_ của mục tiêu này.
Tuân theo tuỳ chọn thay thế "Tạo biến" và tạo mã thông báo shell Bourne.
|
enable_modules
|
Boolean; giá trị mặc định là |
implementation_deps
|
Danh sách nhãn; mặc định là deps , tiêu đề và đường dẫn của các thư viện này (và tất cả các phần phụ thuộc bắc cầu của thư viện) 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 đó. 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 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.
Tính năng này nhằm 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 tệp gen và gốc thùng (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 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 cờ "-iTrích dẫn" 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; giá trị 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 một tệp nhị phân Apple cấp cao nhất, 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 đó đều được liên kết. |
sdk_includes
|
Danh sách chuỗi; mặc định là #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 tương ứng với $(SDKROOT)/usr/include .
|
stamp
|
Boolean; giá trị mặc định là |
textual_hdrs
|
Danh sách nhãn; mặc định là |
weak_sdk_frameworks
|
Danh sách chuỗi; mặc định là |