Implement include path annotation.
Include top annotation is a specially formatted comment line providing the include/inhherit file location hint. E.g., adding ``` ``` before ``` $(call inherit-product $(SRC)/foo.mk ``` is a hint to the converter to look for the `foo.mk` files under `vendor/my_vendor/` in addition to `vendor/google_devices/' Bug: 193566316 Test: internal Change-Id: I01c5dde2504f1a9eb724098b1cc03d2176ca2cf9
This commit is contained in:
@@ -919,7 +919,7 @@ def init(g, handle):
|
||||
desc: "Dynamic inherit path",
|
||||
mkname: "product.mk",
|
||||
in: `
|
||||
MY_PATH=foo
|
||||
MY_PATH:=foo
|
||||
$(call inherit-product,vendor/$(MY_PATH)/cfg.mk)
|
||||
`,
|
||||
expected: `load("//build/make/core:product_config.rbc", "rblf")
|
||||
@@ -937,6 +937,30 @@ def init(g, handle):
|
||||
if not _varmod_init:
|
||||
rblf.mkerror("cannot")
|
||||
rblf.inherit(handle, _varmod, _varmod_init)
|
||||
`,
|
||||
},
|
||||
{
|
||||
desc: "Dynamic inherit with hint",
|
||||
mkname: "product.mk",
|
||||
in: `
|
||||
MY_PATH:=foo
|
||||
#RBC# include_top vendor/foo1
|
||||
$(call inherit-product,$(MY_PATH)/cfg.mk)
|
||||
`,
|
||||
expected: `load("//build/make/core:product_config.rbc", "rblf")
|
||||
load("//vendor/foo1:cfg.star|init", _cfg_init = "init")
|
||||
|
||||
def init(g, handle):
|
||||
cfg = rblf.cfg(handle)
|
||||
g["MY_PATH"] = "foo"
|
||||
#RBC# include_top vendor/foo1
|
||||
_entry = {
|
||||
"vendor/foo1/cfg.mk": ("_cfg", _cfg_init),
|
||||
}.get("%s/cfg.mk" % g["MY_PATH"])
|
||||
(_varmod, _varmod_init) = _entry if _entry else (None, None)
|
||||
if not _varmod_init:
|
||||
rblf.mkerror("cannot")
|
||||
rblf.inherit(handle, _varmod, _varmod_init)
|
||||
`,
|
||||
},
|
||||
}
|
||||
|
Reference in New Issue
Block a user