diff --git a/mk2rbc/mk2rbc.go b/mk2rbc/mk2rbc.go index 8807437aa..5ce031daa 100644 --- a/mk2rbc/mk2rbc.go +++ b/mk2rbc/mk2rbc.go @@ -110,6 +110,7 @@ var knownFunctions = map[string]interface { "require-artifacts-in-path-relaxed": &simpleCallParser{name: baseName + ".require_artifacts_in_path_relaxed", returnType: starlarkTypeVoid}, // TODO(asmundak): remove it once all calls are removed from configuration makefiles. see b/183161002 "shell": &shellCallParser{}, + "sort": &simpleCallParser{name: baseName + ".mksort", returnType: starlarkTypeList}, "strip": &simpleCallParser{name: baseName + ".mkstrip", returnType: starlarkTypeString}, "subst": &substCallParser{fname: "subst"}, "warning": &makeControlFuncParser{name: baseName + ".mkwarning"}, diff --git a/mk2rbc/mk2rbc_test.go b/mk2rbc/mk2rbc_test.go index 369881387..f94aa18f5 100644 --- a/mk2rbc/mk2rbc_test.go +++ b/mk2rbc/mk2rbc_test.go @@ -1022,12 +1022,13 @@ def init(g, handle): `, }, { - desc: "strip function", + desc: "strip/sort functions", mkname: "product.mk", in: ` ifeq ($(filter hwaddress,$(PRODUCT_PACKAGES)),) PRODUCT_PACKAGES := $(strip $(PRODUCT_PACKAGES) hwaddress) endif +MY_VAR := $(sort b a c) `, expected: `load("//build/make/core:product_config.rbc", "rblf") @@ -1036,6 +1037,7 @@ def init(g, handle): if "hwaddress" not in cfg.get("PRODUCT_PACKAGES", []): rblf.setdefault(handle, "PRODUCT_PACKAGES") cfg["PRODUCT_PACKAGES"] = (rblf.mkstrip("%s hwaddress" % " ".join(cfg.get("PRODUCT_PACKAGES", [])))).split() + g["MY_VAR"] = rblf.mksort("b a c") `, }, {