Optional modules, i.e. those modules which may be provided by Google or
vendors depending on the vendor, need to have its own Soong config
variable that controls whether prebuilts are used or not. Without that
the build will always attempt to use the Google prebuilt module instead
of the vendor provided module.
This change:
1. Adds support for specifying which modules are optional and will
generate a module specific soong_config_module_type that uses a
module specific Soong config variable.
2. Generates the soong_config_module_type for optional modules inline
in the snapshot Android.bp file (instead of importing from a
manually curated definitions files). That simplifies the cost of
adding optional modules.
3. Adds some extra tests to ensure that S and Tiramisu behave the
same way.
Bug: 233965247
Test: atest mainline_modules_sdks_test
packages/modules/common/build/mainline_modules_sdks.sh
# Check the output to ensure that wifi uses the wifi specific
# Soong config but ipsec (as a non-optional module) does not.
# Unpack the wifi snapshot into prebuilts/module_sdk/Wifi
Change-Id: I6a85b6f9877fc251010ff2bbee75fe8fa99db9b4