1*333d2b36SAndroid Build Coastguard Workerpackage android 2*333d2b36SAndroid Build Coastguard Worker 3*333d2b36SAndroid Build Coastguard Workerimport "github.com/google/blueprint/proptools" 4*333d2b36SAndroid Build Coastguard Worker 5*333d2b36SAndroid Build Coastguard Worker// CreateSelectOsToBool is a utility function that makes it easy to create a 6*333d2b36SAndroid Build Coastguard Worker// Configurable property value that maps from os to a bool. Use an empty string 7*333d2b36SAndroid Build Coastguard Worker// to indicate a "default" case. 8*333d2b36SAndroid Build Coastguard Workerfunc CreateSelectOsToBool(cases map[string]*bool) proptools.Configurable[bool] { 9*333d2b36SAndroid Build Coastguard Worker var resultCases []proptools.ConfigurableCase[bool] 10*333d2b36SAndroid Build Coastguard Worker for pattern, value := range cases { 11*333d2b36SAndroid Build Coastguard Worker if pattern == "" { 12*333d2b36SAndroid Build Coastguard Worker resultCases = append(resultCases, proptools.NewConfigurableCase( 13*333d2b36SAndroid Build Coastguard Worker []proptools.ConfigurablePattern{proptools.NewDefaultConfigurablePattern()}, 14*333d2b36SAndroid Build Coastguard Worker value, 15*333d2b36SAndroid Build Coastguard Worker )) 16*333d2b36SAndroid Build Coastguard Worker } else { 17*333d2b36SAndroid Build Coastguard Worker resultCases = append(resultCases, proptools.NewConfigurableCase( 18*333d2b36SAndroid Build Coastguard Worker []proptools.ConfigurablePattern{proptools.NewStringConfigurablePattern(pattern)}, 19*333d2b36SAndroid Build Coastguard Worker value, 20*333d2b36SAndroid Build Coastguard Worker )) 21*333d2b36SAndroid Build Coastguard Worker } 22*333d2b36SAndroid Build Coastguard Worker } 23*333d2b36SAndroid Build Coastguard Worker 24*333d2b36SAndroid Build Coastguard Worker return proptools.NewConfigurable( 25*333d2b36SAndroid Build Coastguard Worker []proptools.ConfigurableCondition{proptools.NewConfigurableCondition("os", nil)}, 26*333d2b36SAndroid Build Coastguard Worker resultCases, 27*333d2b36SAndroid Build Coastguard Worker ) 28*333d2b36SAndroid Build Coastguard Worker} 29*333d2b36SAndroid Build Coastguard Worker 30*333d2b36SAndroid Build Coastguard Workerfunc NewSimpleConfigurable[T proptools.ConfigurableElements](value T) proptools.Configurable[T] { 31*333d2b36SAndroid Build Coastguard Worker return proptools.NewConfigurable(nil, []proptools.ConfigurableCase[T]{ 32*333d2b36SAndroid Build Coastguard Worker proptools.NewConfigurableCase(nil, &value), 33*333d2b36SAndroid Build Coastguard Worker }) 34*333d2b36SAndroid Build Coastguard Worker} 35