กฎ Objective-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)

กฎนี้ใช้ 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

Name; required

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

deps

List of labels; optional

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

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

การแปล J2ObjC จะทำงานแตกต่างกันไปตามประเภทของไฟล์ต้นฉบับ Java ที่รวมอยู่ในการปิดแบบสกรรม สำหรับไฟล์ต้นฉบับ .java แต่ละรายการที่รวมอยู่ใน srcs ของ java_library ระบบจะสร้างไฟล์ต้นฉบับ .h และ .m ที่เกี่ยวข้อง สำหรับ 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 รวม และทำการลิงก์ที่ระดับไบนารีด้วย สำหรับ Proto //some/proto/foo.proto ผู้ใช้จะอ้างอิงโค้ดที่สร้างขึ้นได้โดยใช้เส้นทางการนำเข้า some/proto/foo.j2objc.pb.h

entry_classes

List of strings; optional

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

List of labels; optional

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

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)

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

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

Attributes
name

Name; required

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

hdrs

List of labels; optional

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

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

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

Boolean; optional; default is False

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

List of labels; required

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

List of strings; optional

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

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

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

sdk_dylibs

List of strings; optional

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

List of strings; optional

ชื่อของเฟรมเวิร์ก SDK ที่จะลิงก์ด้วย (เช่น "AddressBook", "QuartzCore") โดยจะมี "UIKit" และ "Foundation" รวมอยู่ด้วยเสมอเมื่อสร้างสำหรับแพลตฟอร์ม iOS, tvOS และ watchOS ส่วนใน macOS จะมีเฉพาะ "Foundation" เท่านั้น

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

sdk_includes

List of strings; optional

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

List of labels; optional

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

List of strings; optional

ชื่อเฟรมเวิร์ก 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, 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)

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

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

Attributes
name

Name; required

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

deps

List of labels; optional

รายการเป้าหมายที่ลิงก์เข้าด้วยกันเพื่อสร้างกลุ่มสุดท้าย
srcs

List of labels; optional

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

List of labels; optional

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

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

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

Boolean; optional; default is False

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

List of strings; optional

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

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

defines

List of strings; optional

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

Boolean; optional; default is False

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

List of strings; optional

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

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

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

linkopts

List of strings; optional

แฟล็กเพิ่มเติมเพื่อส่งผ่านไปยัง Linker
module_map

Label; optional

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

String; optional

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

List of labels; optional

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

Label; optional

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

List of labels; optional

รายการเป้าหมายเฟรมเวิร์กที่โหลดล่าช้าขณะรันไทม์ ซึ่งจะรวมอยู่ใน App Bundle แต่ไม่ได้ลิงก์กัน ณ เวลาบิลด์
sdk_dylibs

List of strings; optional

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

List of strings; optional

ชื่อของเฟรมเวิร์ก SDK ที่จะลิงก์ด้วย (เช่น "AddressBook", "QuartzCore") โดยจะมี "UIKit" และ "Foundation" รวมอยู่ด้วยเสมอเมื่อสร้างสำหรับแพลตฟอร์ม iOS, tvOS และ watchOS ส่วนใน macOS จะมีเฉพาะ "Foundation" เท่านั้น

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

sdk_includes

List of strings; optional

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

List of labels; optional

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

List of strings; optional

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

available_xcodes

available_xcodes(name, default, deprecation, distribs, features, licenses, tags, testonly, versions, visibility)

เป้าหมาย 2 ข้อของกฎนี้ที่อินสแตนซ์ของกฎ xcode_config อาจอ้างอิงเพื่อระบุเวอร์ชัน xcode จากระยะไกลและที่ใช้ได้ในเครื่อง การดำเนินการนี้ทำให้เลือกเวอร์ชัน xcode อย่างเป็นทางการจาก xcode ที่มีร่วมกันได้

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

Attributes
name

Name; required

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

default

Label; required; nonconfigurable

เวอร์ชัน xcode เริ่มต้นสำหรับแพลตฟอร์มนี้
versions

List of labels; optional; nonconfigurable

เวอร์ชัน xcode ที่พร้อมใช้งานในแพลตฟอร์มนี้

xcode_config

xcode_config(name, default, deprecation, distribs, features, licenses, local_versions, remote_versions, tags, testonly, versions, visibility)

Flag บิลด์ --xcode_version_config จะอ้างอิงเป้าหมายเดียวของกฎนี้ได้เพื่อแปลแฟล็ก --xcode_version เป็นเวอร์ชัน xcode อย่างเป็นทางการที่ยอมรับ ซึ่งทำให้สามารถเลือกเวอร์ชัน xcode ที่เป็นทางการจากชื่อแทนที่ลงทะเบียนไว้จำนวนหนึ่ง

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

Attributes
name

Name; required

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

default

Label; optional; nonconfigurable

xcode เวอร์ชันอย่างเป็นทางการเริ่มต้นที่จะใช้ ระบบจะใช้เวอร์ชันที่ระบุโดยเป้าหมาย xcode_version ที่ระบุหากไม่ได้ระบุแฟล็กบิลด์ xcode_version ต้องระบุค่านี้หากมีการตั้งค่า versions ระบบอาจไม่ได้ตั้งค่านี้หากมีการตั้งค่า remote_versions หรือ local_versions
local_versions

Label; optional; nonconfigurable

xcode_version targets that are available locally. These are used along with local_versions to select a mutually available version. This may not be set if versions is set.
remote_versions

Label; optional; nonconfigurable

xcode_version targets that are available remotely. These are used along with remote_versions to select a mutually available version. This may not be set if versions is set.
versions

List of labels; optional; nonconfigurable

ยอมรับ xcode_version targets that may be used. If the value of the xcode_version build flag matches one of the aliases or version number of any of the given xcode_version targets, the matching target will be used. This may not be set if remote_versions or local_versions is set. รายการ

xcode_version

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

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

Attributes
name

Name; required

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

default_ios_sdk_version

String; optional; nonconfigurable

เวอร์ชัน SDK ของ iOS ที่ใช้โดยค่าเริ่มต้นเมื่อมีการใช้ xcode เวอร์ชันนี้ แฟล็กบิลด์ ios_sdk_version จะลบล้างค่าที่ระบุไว้ที่นี่
default_macos_sdk_version

String; optional; nonconfigurable

เวอร์ชัน SDK ของ Macosx ที่ใช้โดยค่าเริ่มต้นเมื่อมีการใช้ xcode เวอร์ชันนี้ แฟล็กบิลด์ macos_sdk_version จะลบล้างค่าที่ระบุไว้ที่นี่
default_tvos_sdk_version

String; optional; nonconfigurable

เวอร์ชัน SDK ของ Tvo ที่ใช้โดยค่าเริ่มต้นเมื่อมีการใช้ xcode เวอร์ชันนี้ แฟล็กบิลด์ tvos_sdk_version จะลบล้างค่าที่ระบุไว้ที่นี่
default_watchos_sdk_version

String; optional; nonconfigurable

เวอร์ชัน SDK ของสมาร์ทวอทช์ที่ใช้โดยค่าเริ่มต้นเมื่อมีการใช้ xcode เวอร์ชันนี้ แฟล็กบิลด์ watchos_sdk_version จะลบล้างค่าที่ระบุไว้ที่นี่
version

String; required; nonconfigurable

หมายเลขเวอร์ชันอย่างเป็นทางการของ Xcode เวอร์ชัน