@@ -851,6 +851,8 @@ func (rc *ruleContext) Attr(thread *starlark.Thread, name string) (starlark.Valu
851
851
}, nil
852
852
case "runfiles" :
853
853
return starlark .NewBuiltin ("ctx.runfiles" , rc .doRunfiles ), nil
854
+ case "target_platform_has_constraint" :
855
+ return starlark .NewBuiltin ("ctx.target_platform_has_constraint" , rc .doTargetPlatformHasConstraint ), nil
854
856
case "toolchains" :
855
857
execGroups := rc .ruleDefinition .Message .ExecGroups
856
858
execGroupIndex , ok := sort .Find (
@@ -1174,6 +1176,21 @@ func (ruleContext) doRunfiles(thread *starlark.Thread, b *starlark.Builtin, args
1174
1176
), nil
1175
1177
}
1176
1178
1179
+ func (ruleContext ) doTargetPlatformHasConstraint (thread * starlark.Thread , b * starlark.Builtin , args starlark.Tuple , kwargs []starlark.Tuple ) (starlark.Value , error ) {
1180
+ if len (args ) != 1 {
1181
+ return nil , fmt .Errorf ("%s: got %d positional arguments, want 1" , b .Name (), len (args ))
1182
+ }
1183
+ var constraintValue * model_starlark.Struct
1184
+ if err := starlark .UnpackArgs (
1185
+ b .Name (), args , kwargs ,
1186
+ "constraintValue" , unpack .Bind (thread , & constraintValue , unpack.Type [* model_starlark.Struct ]("struct" )),
1187
+ ); err != nil {
1188
+ return nil , err
1189
+ }
1190
+
1191
+ return nil , errors .New ("TODO: Implement target platform has constraint" )
1192
+ }
1193
+
1177
1194
func (rc * ruleContext ) getAttrValueParts (namedAttr * model_starlark_pb.NamedAttr ) (valueParts model_core.Message [[]* model_starlark_pb.Value ], visibilityFromPackage label.CanonicalPackage , err error ) {
1178
1195
attr := namedAttr .Attr
1179
1196
var badCanonicalPackage label.CanonicalPackage
0 commit comments