platform_build_soong/android
Dan Willemsen b0935db8c3 soong config: add value_variable substitution
There are some cases that aren't handled with the existing variable
types for booleans or known lists of strings. Similarly to our
product_variables that uses %s / %d for things like
PLATFORM_SDK_VERSION, allow vendors to define their own config variables
to be substituted into properties.

For example, some of the makefiles that I've attempted to convert had
the option to pass in version numbers from the board, or the default
display size:

  -DDISPLAY_VERSION=550
  -DDISP_H=1080

These examples happen to be integers, but since our configuration
language (make) doesn't support numbers, %s works just as well.

This change will allow the above to be represented using:

  soong_config_module_type {
      name: "acme_cc_defaults",
      module_type: "cc_defaults",
      config_namespace: "acme",
      value_variables: [
          "DISPLAY_VERSION",
	  "DISP_H",
      ],
      properties: ["cflags"],
  }

  acme_cc_defaults {
      name: "my_defaults",
      soong_config_variables: {
          DISPLAY_VERSION: {
	      cflags: ["-DDISPLAY_VERSION=%s"],
	  },
	  DISP_H: {
	      cflags: ["-DDISP_H=%s"],
	  }
      },
  }

Test: built-in tests
Change-Id: I18f35746b5cc39c304a136980249e886d38c6df6
2020-03-24 07:15:16 -07:00
..
soongconfig soong config: add value_variable substitution 2020-03-24 07:15:16 -07:00
android_test.go Share buildDir for android/soong/android tests 2019-06-10 15:51:06 -07:00
androidmk.go Enable androidmk processing in sdk testing 2020-03-06 09:45:54 +00:00
androidmk_test.go Move filesystem into Config 2019-12-18 08:19:10 -08:00
apex.go apex: Deprecate legacy_android10_support prop 2020-03-14 16:03:24 +09:00
api_levels.go Merge changes I9f8df94f,I2d7f5c56,I0ebb7381,Ieefcfc1a am: a6bf56d4be 2019-06-10 10:00:33 -07:00
arch.go Merge "Remove unused mips workarounds." 2020-03-16 21:06:13 +00:00
arch_test.go Do a better job removing tags from arch structs 2020-01-22 18:30:56 -08:00
config.go Merge "Apply EnforceRROExemptedTargets in Soong" 2020-03-19 01:47:54 +00:00
config_test.go Fix `go vet` issues 2018-07-22 21:18:45 -07:00
csuite_config.go Create C-Suite config module 2019-10-18 18:28:00 +00:00
csuite_config_test.go Move filesystem into Config 2019-12-18 08:19:10 -08:00
defaults.go Fix product variables in defaults modules 2020-02-06 17:43:29 -08:00
defaults_test.go Fix product variables in defaults modules 2020-02-06 17:43:29 -08:00
defs.go Create a highmem pool and put metalava into it 2020-01-24 11:44:23 -08:00
env.go Sandbox soong_build by changing to root directory 2020-01-11 01:11:46 +00:00
expand.go Fix android.Expand and ninja escaping 2019-07-11 14:52:17 -07:00
expand_test.go Fix android.Expand and ninja escaping 2019-07-11 14:52:17 -07:00
filegroup.go Replace ctx.ExpandSources with android.PathsForModuleSrc 2019-03-20 19:36:13 +00:00
hooks.go Follow input changes to proptools.CloneEmptyProperties 2020-01-28 12:17:06 -08:00
image.go Add ramdisk image. 2020-01-22 16:54:18 -08:00
makevars.go Sandbox soong_build by changing to root directory 2020-01-11 01:11:46 +00:00
metrics.go Collect metrics from inside soong_build 2020-02-25 20:50:00 +00:00
module.go Add support for using cc_library in sdk/module_exports 2020-03-20 16:55:24 +00:00
module_test.go Move filesystem into Config 2019-12-18 08:19:10 -08:00
mutator.go Follow input changes to proptools.CloneEmptyProperties 2020-01-28 12:17:06 -08:00
mutator_test.go Add FinalDeps mutator phase, where CreateVariations is disallowed. 2020-01-21 11:40:02 +00:00
namespace.go Simplify vendor conditionals 2020-01-24 16:43:40 -08:00
namespace_test.go Move filesystem into Config 2019-12-18 08:19:10 -08:00
neverallow.go Enable vndk-ext for product variants 2020-03-04 01:22:16 +00:00
neverallow_test.go Move filesystem into Config 2019-12-18 08:19:10 -08:00
notices.go Make a soong-only copy of generate-notice-files.py 2020-03-03 13:50:53 -08:00
onceper.go Convert droidstubs to android.RuleBuilder 2019-07-18 14:28:14 -07:00
onceper_test.go Prevent hangs in OncePer when the callback panics 2019-05-14 18:40:13 +00:00
override_module.go Rename OverridableModuleBase.properties. 2020-01-10 13:26:00 -08:00
package.go Dedup package build components registration 2020-01-15 11:17:57 +00:00
package_ctx.go Add support for experimentally enabling RBE support on specific rules. 2020-01-28 12:42:47 -05:00
package_test.go Dedup package build components registration 2020-01-15 11:17:57 +00:00
path_properties.go Dedup path properties across property structs 2019-07-16 09:52:23 -07:00
path_properties_test.go Move filesystem into Config 2019-12-18 08:19:10 -08:00
paths.go Add a nice install paths for module SDKs and exports. 2020-03-04 14:20:46 +00:00
paths_test.go Optimize FirstUniqueStrings and FirstUniquePaths 2020-03-02 15:00:15 -08:00
prebuilt.go Refactor prebuilt to use srcs supplier function 2020-03-16 19:27:11 +00:00
prebuilt_etc.go Add ramdisk image. 2020-01-22 16:54:18 -08:00
prebuilt_etc_test.go Move filesystem into Config 2019-12-18 08:19:10 -08:00
prebuilt_test.go Exclude source->prebuilt deps from visibility enforcement 2020-01-15 11:17:57 +00:00
proto.go Add method to determine variations from a Target 2019-10-16 14:52:30 -07:00
register.go Add FinalDeps mutator phase, where CreateVariations is disallowed. 2020-01-21 11:40:02 +00:00
rule_builder.go Add support for order-only dependencies to RuleBuilder 2020-02-28 18:16:13 +00:00
rule_builder_test.go Add support for order-only dependencies to RuleBuilder 2020-02-28 18:16:13 +00:00
sandbox.go Sandbox soong_build by changing to root directory 2020-01-11 01:11:46 +00:00
sdk.go Remove old SdkMemberType API for creating snapshot modules 2020-03-23 08:48:03 +00:00
sh_binary.go Make sh_binary a HostToolProvider 2019-12-19 09:22:36 -08:00
sh_binary_test.go Move filesystem into Config 2019-12-18 08:19:10 -08:00
singleton.go Create a highmem pool and put metalava into it 2020-01-24 11:44:23 -08:00
soong_config_modules.go soong config: add value_variable substitution 2020-03-24 07:15:16 -07:00
soong_config_modules_test.go soong config: add value_variable substitution 2020-03-24 07:15:16 -07:00
testing.go Enable androidmk processing in sdk testing 2020-03-06 09:45:54 +00:00
util.go Optimize FirstUniqueStrings and FirstUniquePaths 2020-03-02 15:00:15 -08:00
util_test.go Optimize FirstUniqueStrings and FirstUniquePaths 2020-03-02 15:00:15 -08:00
variable.go Apply EnforceRROExemptedTargets in Soong 2020-03-09 16:06:19 +09:00
variable_test.go Fix product variables in defaults modules 2020-02-06 17:43:29 -08:00
visibility.go Simplify visibility rules that include //visibility:public 2020-02-20 11:41:17 +00:00
visibility_test.go Simplify visibility rules that include //visibility:public 2020-02-20 11:41:17 +00:00
vts_config.go Allow vts config to be packaged in other test suites 2020-02-13 16:06:49 -08:00
vts_config_test.go Move filesystem into Config 2019-12-18 08:19:10 -08:00
writedocs.go Split up Soong build doc. 2019-02-20 15:43:06 -08:00