กฎ Objective-C

รายงานปัญหา ดูแหล่งที่มา Nightly{/19/} Nightly{/19/} /4} /20}

กฎ

j2objc_library

ดูแหล่งที่มาของกฎ
j2objc_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)

กฎนี้ใช้ J2ObjC เพื่อแปลไฟล์ต้นฉบับ Java เป็น Objective-C ซึ่งจะนำไปใช้เป็นทรัพยากร Dependency ของกฎ objc_library และ objc_binary ดูข้อมูลโดยละเอียดเกี่ยวกับ J2ObjC ได้ที่เว็บไซต์ J2ObjC

ระบุแฟล็กการเปลี่ยนรูปแบบ J2ObjC ที่กำหนดเองได้โดยใช้แฟล็กบิลด์ --j2objc_translation_flags ในบรรทัดคำสั่ง

โปรดทราบว่าไฟล์ที่แปลแล้วที่อยู่ในเป้าหมาย j2objc_library จะถูกคอมไพล์โดยใช้การกำหนดค่าการคอมไพล์เริ่มต้น ซึ่งเป็นการกำหนดค่าเดียวกันกับแหล่งที่มาของกฎ objc_library ที่ไม่ได้ระบุตัวเลือกการรวบรวมไว้ในแอตทริบิวต์

นอกจากนี้ ระบบจะกรองโค้ดที่สร้างขึ้นที่ซ้ำกันออกที่ระดับเป้าหมาย ไม่ใช่ระดับแหล่งที่มา หากคุณมีเป้าหมาย Java 2 รายการที่แตกต่างกันซึ่งมีไฟล์แหล่งที่มา Java เดียวกัน คุณอาจเห็นข้อผิดพลาดเกี่ยวกับสัญลักษณ์ที่ซ้ำกันในเวลาลิงก์ วิธีที่ถูกต้องในการแก้ไขปัญหานี้คือย้ายไฟล์ซอร์สของ Java ที่แชร์ไปยังเป้าหมายทั่วไปแยกต่างหากที่อาจพึ่งพาได้

อาร์กิวเมนต์

Attributes
name

ชื่อ ต้องระบุ

ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้

deps

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการเป้าหมาย j2objc_library, java_library, java_import และ java_proto_library ที่มีไฟล์ Java ที่จะแปลงเป็น Objective-C

เป้าหมาย java_library และ java_import ทั้งหมดที่เข้าถึงได้ชั่วคราวผ่าน exports, deps และ runtime_deps จะได้รับการแปลและคอมไพล์ รวมถึงไฟล์ที่สร้างจากการประมวลผลคำอธิบายประกอบของ Java ไม่รองรับเป้าหมาย code>java_import ที่ไม่ได้ระบุ srcjar

การแปล J2ObjC จะทำงานแตกต่างกันไปตามประเภทของไฟล์ซอร์สของ Java ต้นทางที่รวมอยู่ในการปิดแบบทรานซิทีฟ ระบบจะสร้างไฟล์ต้นฉบับ .h และ .m ที่เกี่ยวข้องสำหรับไฟล์ต้นฉบับ .java ที่รวมอยู่ใน srcs จาก java_library สำหรับ Jar ต้นทางแต่ละรายการที่อยู่ใน srcs ของ java_library หรือ srcjar จาก java_import ระบบจะสร้างไฟล์ต้นฉบับ .h และ .m ที่เกี่ยวข้องขึ้นพร้อมกับโค้ดทั้งหมดสำหรับ Jar นั้น

ผู้ใช้จะนำเข้าไฟล์ส่วนหัวที่ J2ObjC สร้างขึ้นในโค้ดได้ เส้นทางการนำเข้าสำหรับไฟล์เหล่านี้เป็นเส้นทางที่สัมพันธ์กับรูทของอาร์ติแฟกต์ Java ดั้งเดิม ตัวอย่างเช่น //some/package/foo.java มีเส้นทางการนำเข้าเป็น some/package/foo.h และ //some/package/bar.srcjar มี some/package/bar.h

หากกฎ proto_library อยู่ระหว่างการปิดแบบทรานซิทีฟของกฎนี้ ระบบก็จะสร้างโปรโต J2ObjC คอมไพล์ และลิงก์กันที่ระดับไบนารีด้วย สำหรับ Proto //some/proto/foo.proto ผู้ใช้จะอ้างอิงโค้ดที่สร้างขึ้นได้โดยใช้เส้นทางการนำเข้า some/proto/foo.j2objc.pb.h

entry_classes

รายการสตริง ค่าเริ่มต้นคือ []

รายการคลาสของ Java ที่มีคู่ ObjC ที่แปลแล้วจะถูกอ้างอิงโดยตรงโดยโค้ด ObjC ของผู้ใช้ ต้องใช้แอตทริบิวต์นี้หากแฟล็ก --j2objc_dead_code_removal เปิดอยู่ คลาส Java ควรมีการระบุไว้ในชื่อตามรูปแบบบัญญัติตามที่กำหนดโดยข้อกำหนดภาษาสำหรับ Java เมื่อระบุ Flag --j2objc_dead_code_removal ระบบจะรวบรวมรายการคลาสรายการแบบทางอ้อมและใช้เป็นจุดแรกเข้าเพื่อทำการวิเคราะห์โค้ดที่ใช้งานไม่ได้ จากนั้นคลาสที่ไม่ได้ใช้งานจะถูกนำออกจาก App Bundle ของ ObjC
jre_deps

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการไลบรารีการจำลอง JRE เพิ่มเติมที่จำเป็นสำหรับโค้ด Java ทั้งหมดที่แปลโดยกฎ j2objc_library นี้ มีเพียงฟังก์ชันหลักของ JRE เท่านั้นที่ลิงก์โดยค่าเริ่มต้น

objc_import

ดูแหล่งที่มาของกฎ
objc_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)

กฎนี้สรุปไลบรารีแบบคงที่ที่คอมไพล์แล้วในรูปแบบไฟล์ .a ทั้งยังช่วยให้ส่งออกส่วนหัวและทรัพยากรโดยใช้แอตทริบิวต์เดียวกันกับที่ objc_library รองรับได้ด้วย

อาร์กิวเมนต์

Attributes
name

ชื่อ ต้องระบุ

ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้

deps

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการของเป้าหมายที่เป้าหมายนี้ใช้อยู่
hdrs

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการไฟล์ส่วนหัว C, C++, Objective-C และ Objective-C++ ที่เผยแพร่โดยไลบรารีนี้ที่จะรวมโดยแหล่งที่มาในกฎที่อ้างอิง

ส่วนหัวเหล่านี้อธิบายอินเทอร์เฟซสาธารณะสำหรับไลบรารีและแหล่งที่มาต่างๆ ในกฎนี้หรือกฎที่ขึ้นต้นจะนำไปรวมได้ ส่วนหัวที่ไม่ได้รวมไว้โดยไคลเอ็นต์ของไลบรารีนี้ควรแสดงอยู่ในแอตทริบิวต์ srcs แทน

ระบบจะคอมไพล์เหล่านี้แยกต่างหากจากแหล่งที่มาหากมีการเปิดใช้โมดูล

บูลีน ค่าเริ่มต้นคือ False

หากเป็น 1 ไฟล์หรือไบนารีใดๆ ที่ขึ้นอยู่กับ (ทั้งโดยตรงหรือโดยอ้อม) ในไลบรารีนี้จะลิงก์ในไฟล์ออบเจ็กต์ทั้งหมดของไฟล์ที่แสดงอยู่ใน srcs และ non_arc_srcs แม้ว่าบางรายการจะไม่มีสัญลักษณ์ที่ไบนารีอ้างอิงก็ตาม วิธีนี้มีประโยชน์หากโค้ดไม่ได้ถูกเรียกอย่างชัดเจนด้วยโค้ดในไบนารี เช่น หากโค้ดของคุณลงทะเบียนเพื่อรับ Callback ที่บริการบางอย่างให้
archives

รายการป้ายกำกับ ต้องระบุ

รายการไฟล์ .a รายการที่ระบุให้กับเป้าหมาย Objective-C ขึ้นอยู่กับเป้าหมายนี้
includes

รายการสตริง ค่าเริ่มต้นคือ []

รายการเส้นทางการค้นหา #include/#import รายการที่จะเพิ่มไปยังเป้าหมายนี้ และเป้าหมายทั้งหมดที่เกี่ยวข้อง การดำเนินการนี้มีไว้เพื่อรองรับไลบรารีของบุคคลที่สามและไลบรารีโอเพนซอร์สที่ไม่ได้ระบุเส้นทางของพื้นที่ทำงานทั้งหมดในคำสั่ง #import/#include

ระบบจะแปลเส้นทางแบบสัมพัทธ์กับไดเรกทอรีแพ็กเกจ รวมถึงรวม Genfiles และรูท bin (เช่น blaze-genfiles/pkg/includedir และ blaze-out/pkg/includedir) เพิ่มเติมจากรูทจริงของไคลเอ็นต์

ซึ่งต่างจาก COPTS ตรงที่จะเพิ่มแฟล็กเหล่านี้สำหรับกฎนี้และกฎทุกกฎที่อ้างอิงกฎดังกล่าว (หมายเหตุ: ไม่ใช่กฎเกณฑ์แต่อย่างใด) โปรดใช้ความระมัดระวังเป็นอย่างยิ่งเนื่องจากอาจทำให้เกิดผลกระทบอย่างมาก หากไม่แน่ใจ ให้เพิ่มแฟล็ก "-iquote" ลงใน COPTS แทน

sdk_dylibs

รายการสตริง ค่าเริ่มต้นคือ []

ชื่อของไลบรารี SDK .dylib ที่จะลิงก์ด้วย ตัวอย่างเช่น "libz" หรือ "libarchive" ระบบจะรวม "libc++" โดยอัตโนมัติหากไบนารีมีแหล่งที่มา C++ หรือ Objective-C++ ในแผนผังทรัพยากร Dependency เมื่อลิงก์ไบนารี ระบบจะใช้ไลบรารีทั้งหมดที่มีชื่ออยู่ในกราฟ Dependency แบบทรานซิทีฟของไบนารีนั้น
sdk_frameworks

รายการสตริง ค่าเริ่มต้นคือ []

ชื่อของเฟรมเวิร์ก SDK ที่จะลิงก์ด้วย (เช่น "AddressBook", "QuartzCore")

เมื่อลิงก์ไบนารีของ Apple ระดับบนสุด เฟรมเวิร์ก SDK ทั้งหมดที่แสดงในกราฟทรัพยากร Dependency แบบสําเนาของไบนารีนั้นจะลิงก์กัน

sdk_includes

รายการสตริง ค่าเริ่มต้นคือ []

รายการเส้นทางการค้นหา #include/#import รายการที่เพิ่มไปยังเป้าหมายนี้และเป้าหมายที่เกี่ยวข้องทั้งหมด โดยที่แต่ละเส้นทางสัมพันธ์กับ $(SDKROOT)/usr/include
textual_hdrs

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการไฟล์ C, C++, Objective-C และ Objective-C++ ที่รวมไว้เป็นส่วนหัวตามไฟล์ต้นฉบับในกฎนี้หรือโดยผู้ใช้ไลบรารีนี้ สิ่งเหล่านี้จะไม่ถูกคอมไพล์แยกต่างหากจากแหล่งที่มา ซึ่งต่างจาก hdr
weak_sdk_frameworks

รายการสตริง ค่าเริ่มต้นคือ []

ชื่อของเฟรมเวิร์ก SDK ที่จะลิงก์ด้วยเล็กน้อย ตัวอย่างเช่น "MediaAccessibility" ซึ่งแตกต่างจากเฟรมเวิร์ก SDK ที่ลิงก์เป็นประจำ สัญลักษณ์จากเฟรมเวิร์กที่ลิงก์อย่างไม่มีประสิทธิภาพจะไม่ทำให้เกิดข้อผิดพลาดหากไม่ได้แสดงขณะรันไทม์

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, 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)

กฎนี้สร้างไลบรารีแบบคงที่จากไฟล์ต้นฉบับ Objective-C ที่ระบุ

อาร์กิวเมนต์

Attributes
name

ชื่อ ต้องระบุ

ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้

deps

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการของเป้าหมายที่เป้าหมายนี้ใช้อยู่
srcs

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการไฟล์ต้นทางและส่วนหัว C, C++, Objective-C และ Objective-C++ และ/หรือ (".s", ".S" หรือ ".asm") ที่ประมวลผลเพื่อสร้างเป้าหมายไลบรารี ไฟล์เหล่านี้คือไฟล์ที่เช็คอินของคุณ รวมถึงไฟล์ที่สร้างขึ้น ไฟล์ต้นฉบับจะรวมเข้าด้วยกันเป็นไฟล์ .o ด้วย Clang ไฟล์ส่วนหัว อาจรวม/นำเข้าโดยแหล่งที่มาหรือส่วนหัวในแอตทริบิวต์ srcs ของเป้าหมายนี้ แต่ไม่ใช่จากส่วนหัวใน hdr หรือเป้าหมายใดๆ ที่ขึ้นอยู่กับกฎนี้ นอกจากนี้ ยังอาจระบุไฟล์ .o ที่คอมไพล์ไว้ล่วงหน้าเป็น src ได้ด้วย โปรดตรวจสอบว่าสถาปัตยกรรมของไฟล์ .o ที่ระบุและบิลด์มีความสอดคล้องกัน เพื่อหลีกเลี่ยงข้อผิดพลาดเกี่ยวกับสัญลักษณ์ Linker ที่ขาดหายไป
hdrs

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการไฟล์ส่วนหัว C, C++, Objective-C และ Objective-C++ ที่เผยแพร่โดยไลบรารีนี้ที่จะรวมโดยแหล่งที่มาในกฎที่อ้างอิง

ส่วนหัวเหล่านี้อธิบายอินเทอร์เฟซสาธารณะสำหรับไลบรารีและแหล่งที่มาต่างๆ ในกฎนี้หรือกฎที่ขึ้นต้นจะนำไปรวมได้ ส่วนหัวที่ไม่ได้รวมไว้โดยไคลเอ็นต์ของไลบรารีนี้ควรแสดงอยู่ในแอตทริบิวต์ srcs แทน

ระบบจะคอมไพล์เหล่านี้แยกต่างหากจากแหล่งที่มาหากมีการเปิดใช้โมดูล

บูลีน ค่าเริ่มต้นคือ False

หากเป็น 1 ไฟล์หรือไบนารีใดๆ ที่ขึ้นอยู่กับ (ทั้งโดยตรงหรือโดยอ้อม) ในไลบรารีนี้จะลิงก์ในไฟล์ออบเจ็กต์ทั้งหมดของไฟล์ที่แสดงอยู่ใน srcs และ non_arc_srcs แม้ว่าบางรายการจะไม่มีสัญลักษณ์ที่ไบนารีอ้างอิงก็ตาม วิธีนี้มีประโยชน์หากโค้ดไม่ได้ถูกเรียกอย่างชัดเจนด้วยโค้ดในไบนารี เช่น หากโค้ดของคุณลงทะเบียนเพื่อรับ Callback ที่บริการบางอย่างให้
copts

รายการสตริง ค่าเริ่มต้นคือ []

แฟล็กเพิ่มเติมที่จะส่งผ่านไปยังคอมไพเลอร์ ขึ้นอยู่กับการแทนที่ "MakeVariable" และการแปลงข้อมูลเป็นโทเค็นของ Bourne Shell ค่าสถานะเหล่านี้จะใช้กับเป้าหมายนี้เท่านั้น และจะไม่มีผลกับเป้าหมายที่เป้าหมายดังกล่าวใช้หรือเป้าหมายที่อิงตามเป้าหมาย

โปรดทราบว่าสำหรับโปรเจ็กต์ Xcode ที่สร้างขึ้น เส้นทางไดเรกทอรีที่ระบุโดยใช้แฟล็ก "-I" ในคอปเตอร์จะถูกแยกวิเคราะห์ไว้ข้างหน้า "$(WORKSPACE_ROOT)/" หากเส้นทางนั้นเป็นเส้นทางสัมพัทธ์ และเพิ่มลงในเส้นทางการค้นหาส่วนหัวสำหรับเป้าหมาย Xcode ที่เกี่ยวข้อง

defines

รายการสตริง ค่าเริ่มต้นคือ []

แฟล็ก -D เพิ่มเติมที่จะส่งผ่านไปยังคอมไพเลอร์ โดยควรอยู่ในรูปแบบ KEY=VALUE หรือเพียง KEY และส่งผ่านไปยังคอมไพเลอร์สำหรับเป้าหมายนี้ (เหมือน copts) แต่รวมถึงทรัพยากร Dependency ทั้งหมดของ objc_ ของเป้าหมายนี้ด้วย ขึ้นอยู่กับการแทนที่ "MakeVariable" และการแปลงข้อมูลเป็นโทเค็นของ Bourne Shell
enable_modules

บูลีน ค่าเริ่มต้นคือ False

เปิดใช้การสนับสนุนโมดูลคำซ้ำ (ผ่าน -fmodules) การตั้งค่าเป็น 1 จะช่วยให้คุณสามารถ @นำเข้าส่วนหัวของระบบและเป้าหมายอื่นๆ ดังนี้ @import UIKit; @import path_to_package_target;
implementation_deps

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการของไลบรารีอื่นๆ ที่เป้าหมายไลบรารีอิงตาม ส่วนหัวและพาธของไลบรารีเหล่านี้ (และ Dep สับเปลี่ยนทั้งหมด) ต่างจาก deps ตรงที่จะมีการใช้สำหรับการคอมไพล์ไลบรารีนี้เท่านั้น ไม่ใช่ไลบรารีที่ขึ้นอยู่กับไลบรารีนี้ ไลบรารีที่ระบุด้วย implementation_deps ยังคงลิงก์ในเป้าหมายไบนารีที่ขึ้นอยู่กับไลบรารีนี้
includes

รายการสตริง ค่าเริ่มต้นคือ []

รายการเส้นทางการค้นหา #include/#import รายการที่จะเพิ่มไปยังเป้าหมายนี้ และเป้าหมายทั้งหมดที่เกี่ยวข้อง การดำเนินการนี้มีไว้เพื่อรองรับไลบรารีของบุคคลที่สามและไลบรารีโอเพนซอร์สที่ไม่ได้ระบุเส้นทางของพื้นที่ทำงานทั้งหมดในคำสั่ง #import/#include

ระบบจะแปลเส้นทางแบบสัมพัทธ์กับไดเรกทอรีแพ็กเกจ รวมถึงรวม Genfiles และรูท bin (เช่น blaze-genfiles/pkg/includedir และ blaze-out/pkg/includedir) เพิ่มเติมจากรูทจริงของไคลเอ็นต์

ซึ่งต่างจาก COPTS ตรงที่จะเพิ่มแฟล็กเหล่านี้สำหรับกฎนี้และกฎทุกกฎที่อ้างอิงกฎดังกล่าว (หมายเหตุ: ไม่ใช่กฎเกณฑ์แต่อย่างใด) โปรดใช้ความระมัดระวังเป็นอย่างยิ่งเนื่องจากอาจทำให้เกิดผลกระทบอย่างมาก หากไม่แน่ใจ ให้เพิ่มแฟล็ก "-iquote" ลงใน COPTS แทน

linkopts

รายการสตริง ค่าเริ่มต้นคือ []

แฟล็กเพิ่มเติมสำหรับส่งผ่านไปยัง Linker
module_map

ป้ายกำกับ ค่าเริ่มต้นคือ None

แผนที่โมดูล Clang ที่กำหนดเองของเป้าหมายนี้ เราไม่แนะนำให้ใช้แผนที่โมดูลที่กำหนดเอง ผู้ใช้ส่วนใหญ่ควรใช้แผนที่โมดูลที่สร้างโดย Bazel หากระบุไว้ Bazel จะไม่สร้างแมปโมดูลสำหรับเป้าหมายนี้ แต่จะส่งแมปโมดูลที่ให้ไว้ไปยังคอมไพเลอร์
module_name

สตริง ค่าเริ่มต้นคือ ""

ตั้งชื่อโมดูลสำหรับเป้าหมายนี้ โดยค่าเริ่มต้น ชื่อโมดูลจะเป็นเส้นทางเป้าหมายที่มีสัญลักษณ์พิเศษทั้งหมดที่แทนที่ด้วย _ เช่น //foo/baz:bar สามารถนำเข้าเป็น foo_baz_bar ได้
non_arc_srcs

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการไฟล์ Objective-C ที่ประมวลผลเพื่อสร้างเป้าหมายไลบรารีที่ "ไม่ใช้ ARC" ระบบจะดำเนินการกับไฟล์ในแอตทริบิวต์นี้คล้ายกับไฟล์ในแอตทริบิวต์srcs แต่จะถูกคอมไพล์โดยไม่ใช้ ARC
pch

ป้ายกำกับ ค่าเริ่มต้นคือ None

ไฟล์ส่วนหัวเพื่อเพิ่มไว้ข้างหน้าไฟล์ต้นฉบับทั้งหมดที่ทำการคอมไพล์ (ทั้งแบบโค้งและไม่มีส่วนโค้ง) ไม่สนับสนุนให้ใช้ไฟล์ PCH ในไฟล์ BUILD อย่างต่อเนื่อง และควรถือว่าเป็นการเลิกใช้งาน จริงๆ แล้วไฟล์ pch ไม่ได้คอมไพล์ไว้ล่วงหน้า จึงไม่ใช่การเพิ่มประสิทธิภาพความเร็วของบิลด์ และเป็นเพียงทรัพยากร Dependency ทั่วโลกเท่านั้น จากมุมมองที่มีประสิทธิภาพในการสร้าง คุณจะใส่สิ่งที่ต้องการได้โดยตรงในแหล่งที่มาที่ต้องการ
sdk_dylibs

รายการสตริง ค่าเริ่มต้นคือ []

ชื่อของไลบรารี SDK .dylib ที่จะลิงก์ด้วย ตัวอย่างเช่น "libz" หรือ "libarchive" ระบบจะรวม "libc++" โดยอัตโนมัติหากไบนารีมีแหล่งที่มา C++ หรือ Objective-C++ ในแผนผังทรัพยากร Dependency เมื่อลิงก์ไบนารี ระบบจะใช้ไลบรารีทั้งหมดที่มีชื่ออยู่ในกราฟ Dependency แบบทรานซิทีฟของไบนารีนั้น
sdk_frameworks

รายการสตริง ค่าเริ่มต้นคือ []

ชื่อของเฟรมเวิร์ก SDK ที่จะลิงก์ด้วย (เช่น "AddressBook", "QuartzCore")

เมื่อลิงก์ไบนารีของ Apple ระดับบนสุด เฟรมเวิร์ก SDK ทั้งหมดที่แสดงในกราฟทรัพยากร Dependency แบบสําเนาของไบนารีนั้นจะลิงก์กัน

sdk_includes

รายการสตริง ค่าเริ่มต้นคือ []

รายการเส้นทางการค้นหา #include/#import รายการที่เพิ่มไปยังเป้าหมายนี้และเป้าหมายที่เกี่ยวข้องทั้งหมด โดยที่แต่ละเส้นทางสัมพันธ์กับ $(SDKROOT)/usr/include
stamp

บูลีน ค่าเริ่มต้นคือ False

textual_hdrs

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการไฟล์ C, C++, Objective-C และ Objective-C++ ที่รวมไว้เป็นส่วนหัวตามไฟล์ต้นฉบับในกฎนี้หรือโดยผู้ใช้ไลบรารีนี้ สิ่งเหล่านี้จะไม่ถูกคอมไพล์แยกต่างหากจากแหล่งที่มา ซึ่งต่างจาก hdr
weak_sdk_frameworks

รายการสตริง ค่าเริ่มต้นคือ []

ชื่อของเฟรมเวิร์ก SDK ที่จะลิงก์ด้วยเล็กน้อย ตัวอย่างเช่น "MediaAccessibility" ซึ่งแตกต่างจากเฟรมเวิร์ก SDK ที่ลิงก์เป็นประจำ สัญลักษณ์จากเฟรมเวิร์กที่ลิงก์อย่างไม่มีประสิทธิภาพจะไม่ทำให้เกิดข้อผิดพลาดหากไม่ได้แสดงขณะรันไทม์