Add notdir implementation
mk2rbc would already translate notdir calls, but since there was no implementation it would fail at runtime. Bug: 201700692 Test: m rbcrun; rbcrun build/make/tests/run.rbc Change-Id: Ie0f4e7b65448e612fa56f87b0bc138648cc0ad58
This commit is contained in:
@@ -361,7 +361,7 @@ def _addsuffix(suffix, string_or_list):
|
|||||||
def __words(string_or_list):
|
def __words(string_or_list):
|
||||||
if type(string_or_list) == "list":
|
if type(string_or_list) == "list":
|
||||||
return string_or_list
|
return string_or_list
|
||||||
return string_or_list.split()
|
return _mkstrip(string_or_list).split()
|
||||||
|
|
||||||
# Handle manipulation functions.
|
# Handle manipulation functions.
|
||||||
# A handle passed to a PCM consists of:
|
# A handle passed to a PCM consists of:
|
||||||
@@ -485,6 +485,13 @@ def _filter(pattern, text):
|
|||||||
res.append(w)
|
res.append(w)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
def _notdir(paths):
|
||||||
|
"""Equivalent to the GNU make function $(notdir).
|
||||||
|
|
||||||
|
Returns the name of the file at the end of each path in paths.
|
||||||
|
"""
|
||||||
|
return " ".join([__base(w) for w in __words(paths)])
|
||||||
|
|
||||||
def __mk2regex(words):
|
def __mk2regex(words):
|
||||||
"""Returns regular expression equivalent to Make pattern."""
|
"""Returns regular expression equivalent to Make pattern."""
|
||||||
|
|
||||||
@@ -674,6 +681,7 @@ rblf = struct(
|
|||||||
mkwarning = _mkwarning,
|
mkwarning = _mkwarning,
|
||||||
mkstrip = _mkstrip,
|
mkstrip = _mkstrip,
|
||||||
mksubst = _mksubst,
|
mksubst = _mksubst,
|
||||||
|
notdir = _notdir,
|
||||||
printvars = _printvars,
|
printvars = _printvars,
|
||||||
printglobals = _printglobals,
|
printglobals = _printglobals,
|
||||||
product_configuration = _product_configuration,
|
product_configuration = _product_configuration,
|
||||||
|
@@ -52,6 +52,11 @@ assert_eq(["from/a:to/a", "from/b:to/b"], rblf.product_copy_files_by_pattern("fr
|
|||||||
assert_eq([], rblf.filter(["a", "", "b"], "f"))
|
assert_eq([], rblf.filter(["a", "", "b"], "f"))
|
||||||
assert_eq(["", "b"], rblf.filter_out(["a", "" ], ["a", "", "b"] ))
|
assert_eq(["", "b"], rblf.filter_out(["a", "" ], ["a", "", "b"] ))
|
||||||
|
|
||||||
|
assert_eq("foo.c no_folder", rblf.notdir(["src/foo.c", "no_folder"]))
|
||||||
|
assert_eq("foo.c no_folder", rblf.notdir("src/foo.c no_folder"))
|
||||||
|
assert_eq("", rblf.notdir("/"))
|
||||||
|
assert_eq("", rblf.notdir(""))
|
||||||
|
|
||||||
(globals, config, globals_base) = rblf.product_configuration("test/device", init, version_defaults)
|
(globals, config, globals_base) = rblf.product_configuration("test/device", init, version_defaults)
|
||||||
assert_eq(
|
assert_eq(
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user