diff --git a/core/config.mk b/core/config.mk index e24e957930ef2a6e65227ae2e949eeeacb6dcbac..93052adc554a53dbe242075c512e1dcc22e7f56f 100644 --- a/core/config.mk +++ b/core/config.mk @@ -304,7 +304,7 @@ $(eval SOONG_CONFIG_$(strip $1)_$(strip $2):=$3) endef # soong_config_append appends to the value of the variable in the given Soong -# config namespace. If the varabile does not exist, it will be defined. If the +# config namespace. If the variable does not exist, it will be defined. If the # namespace does not exist, it will be defined. # $1 is the namespace, $2 is the variable name, $3 is the value define soong_config_append @@ -312,6 +312,14 @@ $(call soong_config_define_internal,$1,$2) \ $(eval SOONG_CONFIG_$(strip $1)_$(strip $2):=$(SOONG_CONFIG_$(strip $1)_$(strip $2)) $3) endef +# soong_config_append gets to the value of the variable in the given Soong +# config namespace. If the namespace or variables does not exist, an +# empty string will be returned. +# $1 is the namespace, $2 is the variable name +define soong_config_get +$(SOONG_CONFIG_$(strip $1)_$(strip $2)) +endef + # Set the extensions used for various packages COMMON_PACKAGE_SUFFIX := .zip COMMON_JAVA_PACKAGE_SUFFIX := .jar diff --git a/core/product_config.rbc b/core/product_config.rbc index fe6ba7c9b6e564e5149e3659f42a53f16806ac90..24e38b1f8fa3541f26a85e6d6a953094c92d903e 100644 --- a/core/product_config.rbc +++ b/core/product_config.rbc @@ -321,6 +321,11 @@ def _soong_config_append(g, nsname, var, value): ns[var] += " " + value +def _soong_config_get(g, nsname, var): + """Gets to the value of the variable in the namespace.""" + return g.get(_soong_config_namespaces_key, {}).get(nsname, {}).get(var, None) + + def _abspath(path): """Provided for compatibility, to be removed later.""" return path @@ -644,6 +649,7 @@ rblf = struct( soong_config_namespace = _soong_config_namespace, soong_config_append = _soong_config_append, soong_config_set = _soong_config_set, + soong_config_get = _soong_config_get, abspath = _abspath, addprefix = _addprefix, addsuffix = _addsuffix, diff --git a/target/product/runtime_libart.mk b/target/product/runtime_libart.mk index 301605aeb0853832ae56efad2ab85b3e87eff5e8..43fb8fcebaf53cf674f0b40c04eca28a9ce35b9a 100644 --- a/target/product/runtime_libart.mk +++ b/target/product/runtime_libart.mk @@ -61,7 +61,7 @@ else apex_test_module := art-check-release-apex-gen-fakebin endif -ifeq (true,$(SOONG_CONFIG_art_module_source_build) +ifeq (true,$(call soong_config_get,art_module,source_build)) PRODUCT_HOST_PACKAGES += $(apex_test_module) endif diff --git a/tests/run.rbc b/tests/run.rbc index 3bb9b55b7b610435eb32686df05f0f57b333aeae..b40d1c612b70acaff48e3c04116d78d9c5cf7795 100644 --- a/tests/run.rbc +++ b/tests/run.rbc @@ -94,3 +94,6 @@ assert_eq( assert_eq("S", globals["PLATFORM_VERSION"]) assert_eq(30, globals["PLATFORM_SDK_VERSION"]) + +assert_eq("xyz", rblf.soong_config_get(globals, "NS2", "v3")) +assert_eq(None, rblf.soong_config_get(globals, "NS2", "nonexistant_var"))