กฎ
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 ซึ่งหลังจากนั้นจะใช้เป็นทรัพยากร Dependency ของกฎ 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 ที่มีไฟล์ Java ที่จะแปลงเป็น Objective-C
เป้าหมาย การแปล J2ObjC จะทํางานแตกต่างกันไปตามประเภทของไฟล์แหล่งที่มาของ Java ที่มาในการปิดแบบชั่วคราว สําหรับไฟล์แหล่งที่มา .java แต่ละไฟล์ที่รวมอยู่ใน ผู้ใช้จะนําเข้าไฟล์ส่วนหัวที่ J2ObjC สร้างขึ้นในโค้ดได้ เส้นทางการนําเข้าสําหรับไฟล์เหล่านี้คือเส้นทางแบบรูทของอาร์ติแฟกต์ดั้งเดิมของ Java ตัวอย่างเช่น
หากกฎ proto_library อยู่ในแบบปิดชั่วคราวของกฎนี้ ระบบจะสร้างโปรเจ็กเตอร์ J2ObjC ขึ้น รวบรวม และผสานรวมในระดับไบนารีด้วย สําหรับต้นแบบ |
entry_classes
|
--j2objc_dead_code_removal
อยู่ คุณควรระบุคลาส Java ในชื่อ Canonical ตามที่กําหนดไว้ในข้อกําหนดภาษา Java
เมื่อระบุแฟล็ก --j2objc_dead_code_removal ระบบจะรวบรวมรายการคลาสรายการชั่วคราวและใช้เป็นจุดแรกเข้าเพื่อทําการวิเคราะห์โค้ดที่ตายแล้ว
ระบบจะนําคลาสที่ไม่ได้ใช้ออกจาก App Bundle สุดท้ายของ ObjC
|
jre_deps
|
j2objc_library นี้ ระบบจะลิงก์เฉพาะฟังก์ชัน JRE หลักเท่านั้นโดยค่าเริ่มต้น
|
การนําเข้า OBJC
ดูแหล่งที่มาของกฎ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
|
ส่วนหัวเหล่านี้จะอธิบายอินเทอร์เฟซสาธารณะของไลบรารีและทําให้พร้อมใช้งานในแหล่งที่มาในกฎนี้หรือในกฎที่เกี่ยวข้อง ส่วนหัวที่ไม่ได้รวมไว้โดยไคลเอ็นต์ของไลบรารีนี้ควรแสดงอยู่ในแอตทริบิวต์ src แทน รายการเหล่านี้จะได้รับการรวบรวมแยกมาจากแหล่งที่มาหากเปิดใช้โมดูล |
alwayslink
|
srcs และ non_arc_srcs แม้ว่าบางส่วนจะไม่มีสัญลักษณ์ที่อ้างอิงถึงโดยไบนารีนั้น
วิธีนี้มีประโยชน์หากไม่มีการเรียกใช้โค้ดอย่างชัดแจ้งในไบนารี เช่น หากโค้ดลงทะเบียนเพื่อรับโค้ดเรียกกลับจากบริการบางอย่าง
|
archives
|
.a ที่ให้ไว้กับเป้าหมาย Objective-C ที่ขึ้นอยู่กับเป้าหมายนี้
|
includes
|
#include/#import รายการที่จะเพิ่มไปยังเป้าหมายนี้และเป้าหมายทั้งหมด
การดําเนินการนี้รองรับไลบรารีของบุคคลที่สามและโอเพนซอร์สแบบโอเพนซอร์สที่ไม่ระบุเส้นทางพื้นที่ทํางานทั้งหมดในคําสั่ง #import/#include
เส้นทางได้รับการตีความโดยสัมพันธ์กับไดเรกทอรีแพ็กเกจ และ genfile และรูทของ bin (เช่น การแจ้งว่าไม่เหมาะสมเหล่านี้สําหรับกฎนี้และกฎทั้งหมดที่ใช้กฎดังกล่าวไม่เหมือนกับ COPTS (หมายเหตุ: ไม่ใช่กฎที่เหมาะสม) โปรดระวังให้ดี เพราะอาจมีผลกระทบมากมาย หากไม่แน่ใจ ให้เพิ่มแฟล็ก "-iquote" ไปยัง COPTS แทน |
sdk_dylibs
|
|
sdk_frameworks
|
เมื่อลิงก์ไบนารี Apple ระดับบนสุด ระบบจะลิงก์เฟรมเวิร์ก SDK ทั้งหมดที่แสดงอยู่ในกราฟการพึ่งพาชั่วคราวของไบนารีนั้น |
sdk_includes
|
#include/#import รายการที่เพิ่มไปยังเป้าหมายนี้และเป้าหมายทั้งหมด ทั้งนี้ขึ้นอยู่กับแต่ละเส้นทางจะสัมพันธ์กับ $(SDKROOT)/usr/include
|
textual_hdrs
|
|
weak_sdk_frameworks
|
|
ไลบรารี OBJC
ดูแหล่งที่มาของกฎ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, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)
กฎนี้จะสร้างไลบรารีแบบคงที่จากไฟล์แหล่งที่มา Objective-C ที่ระบุ
อาร์กิวเมนต์
แอตทริบิวต์ | |
---|---|
name |
ชื่อที่ไม่ซ้ํากันสําหรับเป้าหมายนี้ |
deps
|
|
srcs
|
|
hdrs
|
ส่วนหัวเหล่านี้จะอธิบายอินเทอร์เฟซสาธารณะของไลบรารีและทําให้พร้อมใช้งานในแหล่งที่มาในกฎนี้หรือในกฎที่เกี่ยวข้อง ส่วนหัวที่ไม่ได้รวมไว้โดยไคลเอ็นต์ของไลบรารีนี้ควรแสดงอยู่ในแอตทริบิวต์ src แทน รายการเหล่านี้จะได้รับการรวบรวมแยกมาจากแหล่งที่มาหากเปิดใช้โมดูล |
alwayslink
|
srcs และ non_arc_srcs แม้ว่าบางส่วนจะไม่มีสัญลักษณ์ที่อ้างอิงถึงโดยไบนารีนั้น
วิธีนี้มีประโยชน์หากไม่มีการเรียกใช้โค้ดอย่างชัดแจ้งในไบนารี เช่น หากโค้ดลงทะเบียนเพื่อรับโค้ดเรียกกลับจากบริการบางอย่าง
|
copts
|
โปรดทราบว่าสําหรับโปรเจ็กต์ Xcode ที่สร้างขึ้น ระบบจะแยกวิเคราะห์เส้นทางไดเรกทอรีที่ระบุด้วยแฟล็ก "-I" ในค่าต่างๆ ที่มี "$(WORKSPACE_ROOT)/" ไว้ข้างหน้า หากเป็นเส้นทางแบบสัมพัทธ์ และเพิ่มไปยังเส้นทางการค้นหาส่วนหัวสําหรับเป้าหมาย Xcode ที่เกี่ยวข้อง |
defines
|
-D แฟล็กเพื่อผ่านไปยังคอมไพเลอร์ ไฟล์ต้องอยู่ในรูปแบบ KEY=VALUE หรือ KEY เท่านั้น รวมถึงส่งผ่านไปยังคอมไพเลอร์สําหรับเป้าหมายนี้ (เช่น copts ) เท่านั้น แต่ยังใช้กับคอนเทนเนอร์ objc_ ทั้งหมดของเป้าหมายนี้ด้วย
อยู่ภายใต้การแทนที่ "สร้างตัวแปร" และการแปลงเป็นโทเค็นของ Shell Bourne
|
enable_modules
|
|
includes
|
#include/#import รายการที่จะเพิ่มไปยังเป้าหมายนี้และเป้าหมายทั้งหมด
การดําเนินการนี้รองรับไลบรารีของบุคคลที่สามและโอเพนซอร์สแบบโอเพนซอร์สที่ไม่ระบุเส้นทางพื้นที่ทํางานทั้งหมดในคําสั่ง #import/#include
เส้นทางได้รับการตีความโดยสัมพันธ์กับไดเรกทอรีแพ็กเกจ และ genfile และรูทของ bin (เช่น การแจ้งว่าไม่เหมาะสมเหล่านี้สําหรับกฎนี้และกฎทั้งหมดที่ใช้กฎดังกล่าวไม่เหมือนกับ COPTS (หมายเหตุ: ไม่ใช่กฎที่เหมาะสม) โปรดระวังให้ดี เพราะอาจมีผลกระทบมากมาย หากไม่แน่ใจ ให้เพิ่มแฟล็ก "-iquote" ไปยัง COPTS แทน |
linkopts
|
|
module_map
|
|
module_name
|
|
non_arc_srcs
|
|
pch
|
|
sdk_dylibs
|
|
sdk_frameworks
|
เมื่อลิงก์ไบนารี Apple ระดับบนสุด ระบบจะลิงก์เฟรมเวิร์ก SDK ทั้งหมดที่แสดงอยู่ในกราฟการพึ่งพาชั่วคราวของไบนารีนั้น |
sdk_includes
|
#include/#import รายการที่เพิ่มไปยังเป้าหมายนี้และเป้าหมายทั้งหมด ทั้งนี้ขึ้นอยู่กับแต่ละเส้นทางจะสัมพันธ์กับ $(SDKROOT)/usr/include
|
textual_hdrs
|
|
weak_sdk_frameworks
|
|
รหัสที่ใช้ได้
ดูแหล่งที่มาของกฎavailable_xcodes(name, default, deprecation, distribs, features, licenses, tags, testonly, versions, visibility)
เป้าหมาย 2 ข้อของกฎนี้อาจใช้โดยอินสแตนซ์กฎ xcode_config
เพื่อระบุเวอร์ชัน xcode จากระยะไกลและภายในเครื่อง
ซึ่งช่วยให้เลือกเวอร์ชัน xcode อย่างเป็นทางการจาก xcode ที่พร้อมใช้งานรวมกันได้
อาร์กิวเมนต์
แอตทริบิวต์ | |
---|---|
name |
ชื่อที่ไม่ซ้ํากันสําหรับเป้าหมายนี้ |
default
|
|
versions
|
|
การกําหนดค่า xcode
ดูแหล่งที่มาของกฎ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 รายการ |
เวอร์ชันโค้ด x
ดูแหล่งที่มาของกฎ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)
แสดงเวอร์ชัน 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_watchos_sdk_version
|
watchos_sdk_version จะลบล้างค่าที่ระบุที่นี่
|
version
|
|