summaryrefslogtreecommitdiff
path: root/android/configurable_properties.go
diff options
context:
space:
mode:
author Cole Faust <colefaust@google.com> 2024-04-11 17:43:00 -0700
committer Cole Faust <colefaust@google.com> 2024-05-02 15:41:24 -0700
commita963b94cde194257fa67ce9596026a4da2fe7523 (patch)
tree8bffbc8bdaa97f5bb57f533422623b62287f1326 /android/configurable_properties.go
parent01bd5b1ddf0706ecb683f1fc70bf1d11028e7591 (diff)
Make the enabled property configurable
This allows using select statements with it. Bug: 323382414 Test: m nothing --no-skip-soong-tests Change-Id: I6f3efaaa3d82505e38a91ee4ba0e18e404360191 Merged-In: If355d24506e3f117d27b21442a6c02bca3402dc7
Diffstat (limited to 'android/configurable_properties.go')
-rw-r--r--android/configurable_properties.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/android/configurable_properties.go b/android/configurable_properties.go
new file mode 100644
index 000000000..dad42fa1d
--- /dev/null
+++ b/android/configurable_properties.go
@@ -0,0 +1,28 @@
+package android
+
+import "github.com/google/blueprint/proptools"
+
+// CreateSelectOsToBool is a utility function that makes it easy to create a
+// Configurable property value that maps from os to a bool. Use an empty string
+// to indicate a "default" case.
+func CreateSelectOsToBool(cases map[string]*bool) proptools.Configurable[bool] {
+ var resultCases []proptools.ConfigurableCase[bool]
+ for pattern, value := range cases {
+ if pattern == "" {
+ resultCases = append(resultCases, proptools.NewConfigurableCase(
+ []proptools.ConfigurablePattern{proptools.NewDefaultConfigurablePattern()},
+ value,
+ ))
+ } else {
+ resultCases = append(resultCases, proptools.NewConfigurableCase(
+ []proptools.ConfigurablePattern{proptools.NewStringConfigurablePattern(pattern)},
+ value,
+ ))
+ }
+ }
+
+ return proptools.NewConfigurable(
+ []proptools.ConfigurableCondition{proptools.NewConfigurableCondition("os", nil)},
+ resultCases,
+ )
+}