native.cc_library โปรดทราบว่าโมดูลดั้งเดิมจะใช้ได้เฉพาะในระยะการโหลด (เช่น สำหรับมาโคร ไม่ใช่สำหรับการติดตั้งใช้งานกฎ) แอตทริบิวต์จะละเว้นค่า None และถือว่าแอตทริบิวต์ไม่ได้ตั้งค่านอกจากนี้ ยังมีฟังก์ชันต่อไปนี้ให้ใช้งานด้วย
สมาชิก
- existing_rule
 - existing_rules
 - exports_files
 - glob
 - module_name
 - module_version
 - package_group
 - package_name
 - package_relative_label
 - repo_name
 - repository_name
 - แพ็กเกจย่อย
 
existing_rule
unknown native.existing_rule(name)
None หากไม่มีอินสแตนซ์กฎที่มีชื่อนั้นในที่นี้ ออบเจ็กต์ที่ไม่เปลี่ยนแปลงซึ่งคล้ายกับพจนานุกรมหมายถึงออบเจ็กต์ที่ไม่เปลี่ยนแปลงอย่างลึกซึ้ง x ที่รองรับการทำซ้ำที่คล้ายกับพจนานุกรม len(x), name in x, x[name], x.get(name), x.items(), x.keys() และ x.values()
หากตั้งค่าแฟล็ก --noincompatible_existing_rules_immutable_view ระบบจะแสดงผลพจนานุกรมที่เปลี่ยนแปลงได้ใหม่ซึ่งมีเนื้อหาเดียวกันแทน
ผลลัพธ์จะมีรายการสำหรับแอตทริบิวต์แต่ละรายการ ยกเว้นแอตทริบิวต์ส่วนตัว (ซึ่งชื่อไม่ได้ขึ้นต้นด้วยตัวอักษร) และแอตทริบิวต์เดิมบางประเภทที่แสดงไม่ได้ นอกจากนี้ dict ยังมีรายการสำหรับ name และ kind ของอินสแตนซ์กฎ (เช่น 'cc_binary')
ค่าของผลลัพธ์แสดงค่าแอตทริบิวต์ดังนี้
- แอตทริบิวต์ประเภท str, int และ bool จะแสดงตามที่เป็น
 - ป้ายกำกับจะแปลงเป็นสตริงในรูปแบบ 
':foo'สำหรับเป้าหมายในแพ็กเกจเดียวกัน หรือ'//pkg:name'สำหรับเป้าหมายในแพ็กเกจอื่น - รายการจะแสดงเป็นทูเพิล และจะแปลงพจนานุกรมเป็นพจนานุกรมใหม่ที่เปลี่ยนแปลงได้ ระบบจะแปลงองค์ประกอบขององค์ประกอบเหล่านั้นแบบเรียกซ้ำในลักษณะเดียวกัน
 - ระบบจะแสดงค่า 
selectพร้อมกับเนื้อหาที่แปลงแล้วตามที่อธิบายไว้ข้างต้น - ระบบจะยกเว้นแอตทริบิวต์ที่ไม่ได้ระบุค่าในระหว่างการสร้างอินสแตนซ์ของกฎและมีการคำนวณค่าเริ่มต้นจากผลลัพธ์ (ค่าเริ่มต้นที่คำนวณแล้วจะคำนวณไม่ได้จนกว่าจะถึงระยะการวิเคราะห์)
 
หากเป็นไปได้ ให้หลีกเลี่ยงการใช้ฟังก์ชันนี้ ซึ่งทำให้ไฟล์ BUILD เปราะบางและขึ้นอยู่กับลำดับ นอกจากนี้ โปรดทราบว่าการแปลงค่าแอตทริบิวต์ของกฎจากแบบฟอร์มภายในเป็น Starlark นั้นแตกต่างจากการแปลงค่าอื่นๆ อีก 2 รายการเล็กน้อย โดยรายการหนึ่งใช้โดยค่าเริ่มต้นที่คำนวณแล้ว และอีกรายการหนึ่งใช้โดย ctx.attr.foo
          
      
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              name
             | 
            
                                     ต้องระบุ ชื่อของเป้าหมาย  | 
          
existing_rules
unknown native.existing_rules()
existing_rule(name) จะแสดงในที่นี้ ออบเจ็กต์ที่ไม่เปลี่ยนแปลงซึ่งคล้ายกับพจนานุกรมหมายถึงออบเจ็กต์ที่ไม่เปลี่ยนแปลงอย่างลึกซึ้ง x ที่รองรับการทำซ้ำที่คล้ายกับพจนานุกรม len(x), name in x, x[name], x.get(name), x.items(), x.keys() และ x.values()
หากตั้งค่าแฟล็ก --noincompatible_existing_rules_immutable_view ระบบจะแสดงผลพจนานุกรมที่เปลี่ยนแปลงได้ใหม่ซึ่งมีเนื้อหาเดียวกันแทน
หมายเหตุ: หลีกเลี่ยงการใช้ฟังก์ชันนี้หากเป็นไปได้ ซึ่งทำให้ไฟล์ BUILD เปราะบางและขึ้นอยู่กับลำดับ นอกจากนี้ หากตั้งค่า --noincompatible_existing_rules_immutable_view ฟีเจอร์นี้อาจมีค่าใช้จ่ายสูงมาก โดยเฉพาะอย่างยิ่งหากเรียกใช้ภายในลูป
        
exports_files
None native.exports_files(srcs, visibility=None, licenses=None)พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              srcs
             | 
            
                          ลำดับของสตริง
                                     ต้องระบุ รายการไฟล์ที่จะส่งออก  | 
          
              visibility
             | 
            
                          sequence หรือ None
                                     ค่าเริ่มต้นคือ Noneสามารถระบุการประกาศระดับการมองเห็นได้ เป้าหมายที่ระบุจะเห็นไฟล์ หากไม่ได้ระบุระดับการมองเห็น ไฟล์จะปรากฏในทุกแพ็กเกจ  | 
          
              licenses
             | 
            
                          ลำดับของสตริง หรือ None
                                     ค่าเริ่มต้นคือ Noneต้องระบุใบอนุญาต  | 
          
glob
sequence native.glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
- ตรงกับรูปแบบอย่างน้อย 1 รูปแบบใน 
include - ไม่ตรงกับรูปแบบใดๆ ใน 
exclude(ค่าเริ่มต้น[]) 
exclude_directories (ตั้งค่าเป็น 1) ระบบจะละเว้นไฟล์ประเภทไดเรกทอรีจากผลลัพธ์ (ค่าเริ่มต้น 1)
          
      พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              include
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []รายการรูปแบบ Glob ที่จะรวม  | 
          
              exclude
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []รายการรูปแบบ Glob ที่จะยกเว้น  | 
          
              exclude_directories
             | 
            
                                     ค่าเริ่มต้นคือ 1แฟล็กที่ระบุว่าจะยกเว้นไดเรกทอรีหรือไม่  | 
          
              allow_empty
             | 
            
                                     ค่าเริ่มต้นคือ unboundเราอนุญาตให้รูปแบบ Glob ไม่ตรงกับอะไรเลยหรือไม่ หาก `allow_empty` เป็น False รูปแบบการรวมแต่ละรายการต้องตรงกับรายการใดรายการหนึ่ง และผลลัพธ์สุดท้ายต้องไม่ว่าง (หลังจากยกเว้นรายการที่ตรงกับรูปแบบ `exclude`)  | 
          
module_name
string native.module_name()
module.name ที่เห็นใน module_ctx.modules
         อาจส่งคืน None
        module_version
string native.module_version()
module.version ที่เห็นใน module_ctx.modules
         อาจส่งคืน None
        package_group
None native.package_group(name, packages=[], includes=[])visibility
          
      พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              name
             | 
            
                                     ต้องระบุ ชื่อที่ไม่ซ้ำกันสำหรับกฎนี้  | 
          
              packages
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []การแจงนับแพ็กเกจทั้งหมดในกลุ่มนี้  | 
          
              includes
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []กลุ่มแพ็กเกจอื่นๆ ที่รวมอยู่ในกลุ่มนี้  | 
          
package_name
string native.package_name()
some/package/BUILD ค่าจะเป็น some/package หากไฟล์ BUILD เรียกใช้ฟังก์ชันที่กำหนดไว้ในไฟล์ .bzl package_name() จะตรงกับแพ็กเกจไฟล์ BUILD ของผู้เรียก
        package_relative_label
Label native.package_relative_label(input)
BUILD ที่มาโครปัจจุบันกำลังดำเนินการ) หากอินพุตเป็น Label อยู่แล้ว ระบบจะแสดงผลอินพุตดังกล่าวโดยไม่มีการเปลี่ยนแปลงฟังก์ชันนี้จะเรียกใช้ได้เฉพาะในขณะที่ประเมินไฟล์ BUILD และมาโครที่เรียกใช้โดยตรงหรือโดยอ้อมเท่านั้น แต่จะเรียกใช้ในฟังก์ชันการใช้งานกฎไม่ได้ (เช่น)
ผลลัพธ์ของฟังก์ชันนี้คือค่า Label เดียวกันกับที่จะได้จากการส่งสตริงที่กำหนดไปยังแอตทริบิวต์ที่มีค่าเป็นป้ายกำกับของเป้าหมายที่ประกาศไว้ในไฟล์ BUILD 
หมายเหตุการใช้งาน: ความแตกต่างระหว่างฟังก์ชันนี้กับ Label() คือ Label() ใช้บริบทของแพ็กเกจของไฟล์ .bzl ที่เรียกใช้ ไม่ใช่แพ็กเกจของไฟล์ BUILD ใช้ Label() เมื่อต้องการอ้างอิงเป้าหมายที่แน่นอนซึ่งมีการฮาร์ดโค้ดลงในมาโคร เช่น คอมไพเลอร์ ใช้ package_relative_label() เมื่อต้องการทำให้สตริงป้ายกำกับที่ไฟล์ BUILD จัดหาให้เป็นออบเจ็กต์ Label (ไม่มีวิธีแปลงสตริงเป็น Label ในบริบทของแพ็กเกจอื่นที่ไม่ใช่ไฟล์ BUILD หรือไฟล์ .bzl ที่เรียกใช้ ด้วยเหตุนี้ แมโครภายนอกจึงควรส่งออบเจ็กต์ป้ายกำกับไปยังแมโครภายในเสมอแทนที่จะส่งสตริงป้ายกำกับ)
          
      
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              input
             | 
            
                          สตริงหรือป้ายกำกับ
                                     ต้องระบุ สตริงป้ายกำกับอินพุตหรือออบเจ็กต์ป้ายกำกับ หากมีการส่งออบเจ็กต์ป้ายกำกับ ระบบจะแสดงผลตามที่ส่ง  | 
          
repo_name
string native.repo_name()
repository_name
string native.repository_name()
--+incompatible_enable_deprecated_label_apis เลิกใช้งานแล้ว ขอแนะนำให้ใช้
repo_name แทน ซึ่งไม่มีเครื่องหมาย @ ที่ไม่ถูกต้องนำหน้า แต่ทำงานเหมือนกันในส่วนอื่นๆชื่อที่แน่นอนของที่เก็บที่มีแพ็กเกจที่กำลังประเมิน โดยมีเครื่องหมาย @ (@) นำหน้า เช่น ในแพ็กเกจที่สร้างขึ้นโดยส่วน WORKSPACE local_repository(name='local', path=...) ระบบจะตั้งค่าเป็น @local ในแพ็กเกจในที่เก็บข้อมูลหลัก ระบบจะตั้งค่าเป็น @
        
แพ็กเกจย่อย
sequence native.subpackages(include, exclude=[], allow_empty=False)
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              include
             | 
            
                          ลำดับของสตริง
                                     ต้องระบุ รายการรูปแบบ Glob ที่จะรวมในการสแกนแพ็กเกจย่อย  | 
          
              exclude
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []รายการรูปแบบ Glob ที่จะยกเว้นจากการสแกนแพ็กเกจย่อย  | 
          
              allow_empty
             | 
            
                                     ค่าเริ่มต้นคือ Falseไม่ว่าเราจะล้มเหลวหรือไม่หากการเรียกใช้ส่งคืนรายการที่ว่างเปล่า โดยค่าเริ่มต้น รายการที่ว่างเปล่าจะบ่งบอกถึงข้อผิดพลาดที่อาจเกิดขึ้นในไฟล์ BUILD ซึ่งการเรียกใช้ subpackages() นั้นไม่จำเป็น การตั้งค่าเป็น "จริง" จะช่วยให้ฟังก์ชันนี้ทำงานได้สำเร็จในกรณีดังกล่าว  |