Fix whitespace in soong_config_set calls

In make, soong_config_set uses an $(eval) to set it's value, expanding
the value of the soong config variable _before_ evaluating the value.
Because of this, make will strip trailing whitespace like it does on
regular assignments.

Make rbcrun match this behavior.

Test: ./out/rbcrun ./build/make/tests/run.rbc
Change-Id: I907e85cdf50f6fac54331c0d1044f0d53bec22ed
This commit is contained in:
Cole Faust 2023-05-02 10:11:02 -07:00
parent a5530711fb
commit 3736374dfe
3 changed files with 7 additions and 1 deletions

View file

@ -394,6 +394,10 @@ def _soong_config_namespace(g, nsname):
def _soong_config_set(g, nsname, var, value):
"""Assigns the value to the variable in the namespace."""
_soong_config_namespace(g, nsname)
if type(value) == "string":
# Trim right spaces, because in make the variable is set in an $(eval),
# which will ignore trailing spaces.
value = value.rstrip(" ")
g[_soong_config_namespaces_key][nsname][var]=value
def _soong_config_append(g, nsname, var, value):

View file

@ -54,6 +54,7 @@ def init(g, handle):
rblf.soong_config_append(g, "NS1", "v2", "def")
rblf.soong_config_set(g, "NS2", "v3", "abc")
rblf.soong_config_set(g, "NS2", "v3", "xyz")
rblf.soong_config_set(g, "NS2", "v4", "xyz ")
rblf.mkdist_for_goals(g, "goal", "dir1/file1:out1 dir1/file2:out2")
rblf.mkdist_for_goals(g, "goal", "dir2/file2:")

View file

@ -144,7 +144,8 @@ assert_eq(
"v2": "def"
},
"NS2": {
"v3": "xyz"
"v3": "xyz",
"v4": "xyz"
}
},
{k:v for k, v in sorted(ns.items()) }