platform_build_blueprint/proptools
Cole Faust 021cc8f5b8 Add support for unset select branches
Currently, with the arch/os mutator, you can override a property
using the default value for just a few arch types, for example:

cc_defaults {
    name: "my_defaults",
    target: {
        windows: {
            enabled: true,
        }
    }
}

cc_binary {
    name: "foo",
    enabled: false,
    defaults: ["my_defaults"],
}

You could make a select statment that acts like the above if it were
all in one module, but currently with select statements you can't make
a defaults module that can be generically applied to any other module
and have the same behavior as the above.

After this cl, the defaults module could look like:

cc_defaults {
    name: "my_defaults",
    enabled: select(variant("arch"), {
        "windows": true,
        _: unset,
    }),
}

Which would have the same behavior. Unset may also be useful for
setting the property under some configurations, but wanting to leave
the implementation-specific default value in others.

Bug: 323382414
Test: m nothing --no-skip-soong-tests
Change-Id: I3ea3277ea8b9a0ac5e613b4378945388b9df036a
2024-04-02 16:35:33 -07:00
..
clone.go Select statements 2024-03-06 15:00:39 -08:00
clone_test.go Fix TestCloneProperties for go 1.21 2023-11-08 22:07:58 -08:00
configurable.go Add support for unset select branches 2024-04-02 16:35:33 -07:00
escape.go Use maps and slices packages 2024-04-01 15:54:22 -07:00
escape_test.go Use maps and slices packages 2024-04-01 15:54:22 -07:00
extend.go Use maps and slices packages 2024-04-01 15:54:22 -07:00
extend_test.go Add support for unset select branches 2024-04-02 16:35:33 -07:00
filter.go Don't recurse into configurable properties in filterPropertyStructFields 2024-03-26 16:46:48 -07:00
filter_test.go Always shard structs if they would exceed maxNameSize even if unfiltered 2021-03-26 09:59:19 +00:00
hash_provider.go Use WriteString in hashProviderInternal 2024-02-02 15:57:26 -08:00
hash_provider_test.go Enforce that providers are not changed 2024-01-30 15:18:24 -08:00
proptools.go Add proptools.Slice 2024-03-14 14:28:52 -07:00
proptools_test.go Select statements 2024-03-06 15:00:39 -08:00
tag.go Select statements 2024-03-06 15:00:39 -08:00
tag_test.go propertyIndexesWithTag can handle slice of struct 2021-02-24 01:02:59 +09:00
typeequal.go Support nil pointers to structs in properties 2016-08-05 17:19:36 -07:00
typeequal_test.go Support nil pointers to structs in properties 2016-08-05 17:19:36 -07:00
unpack.go Add support for unset select branches 2024-04-02 16:35:33 -07:00
unpack_test.go Add support for unset select branches 2024-04-02 16:35:33 -07:00