每隔 Label instance l, the string representation str(l) has the property that Label(str(l)) == l, regardless of where the Label() call occurs.
Members
Members
      Label
        Label Label(input)
Label object, in the context of the package where the calling .bzl source file lives. If the given value is already a Label, it is returned unchanged.For macros, a related function, native.package_relative_label(), converts the input into a Label in the context of the package currently being constructed. Use that function to mimic the string-to-label conversion that is automatically done by label-valued rule attributes.
          
      
Parameters
      
        
           
        
          
            Parameter 
            Description 
           
        
        
                  
            
              input
             
            
                          string; or Label;
                                     required
                          The input label string or Label object. If a Label object is passed, it's returned as is.
             
           
                
      
        name
        string Label.name
Label("//pkg/foo:abc").name == "abc"package
        string Label.package
Label("//pkg/foo:abc").package == "pkg/foo"relative
        Label Label.relative(relName)
//) or relative to the current package. If this label is in a remote repository, the argument will be resolved relative to that repository. If the argument contains a repository name, the current label is ignored and the argument is returned as-is, except that the repository name is rewritten if it is in the current repository mapping. Reserved labels will also be returned as-is.
For example:
Label("//foo/bar:baz").relative(":quux") == Label("//foo/bar:quux")
Label("//foo/bar:baz").relative("//wiz:quux") == Label("//wiz:quux")
Label("@repo//foo/bar:baz").relative("//wiz:quux") == Label("@repo//wiz:quux")
Label("@repo//foo/bar:baz").relative("//visibility:public") == Label("//visibility:public")
Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@other//wiz:quux")
If the repository mapping passed in is {'@other' : '@remapped'}, then the following remapping will take place:
Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")
Parameters
      
        
           
        
          
            Parameter 
            Description 
           
        
        
                  
            
              relName
             
            
                                     required
                          The label that will be resolved relative to this one.
             
           
                
      
        workspace_name
        string Label.workspace_name
Label("@foo//bar:baz").workspace_name == "foo"workspace_root
        string Label.workspace_root
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"