Loading mk2rbc/mk2rbc.go +9 −13 Original line number Diff line number Diff line Loading @@ -807,10 +807,7 @@ func (ctx *parseContext) handleSubConfig( if len(matchingPaths) > maxMatchingFiles { return []starlarkNode{ctx.newBadNode(v, "there are >%d files matching the pattern, please rewrite it", maxMatchingFiles)} } if len(matchingPaths) == 1 { res := inheritedStaticModule{ctx.newDependentModule(matchingPaths[0], loadAlways && ctx.ifNestLevel == 0), loadAlways} return []starlarkNode{processModule(res)} } else { needsWarning := pathPattern[0] == "" && len(ctx.includeTops) == 0 res := inheritedDynamicModule{*varPath, []*moduleInfo{}, loadAlways, ctx.errorLocation(v), needsWarning} for _, p := range matchingPaths { Loading @@ -821,7 +818,6 @@ func (ctx *parseContext) handleSubConfig( } return []starlarkNode{processModule(res)} } } func (ctx *parseContext) findMatchingPaths(pattern []string) []string { files := ctx.script.makefileFinder.Find(".") Loading mk2rbc/mk2rbc_test.go +35 −5 Original line number Diff line number Diff line Loading @@ -1081,7 +1081,13 @@ load("//vendor/foo1:cfg.star|init", _cfg_init = "init") def init(g, handle): cfg = rblf.cfg(handle) g["MY_PATH"] = "foo" rblf.inherit(handle, "vendor/foo1/cfg", _cfg_init) _entry = { "vendor/foo1/cfg.mk": ("vendor/foo1/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("product.mk", "Cannot find %s" % ("%s/cfg.mk" % g["MY_PATH"])) rblf.inherit(handle, _varmod, _varmod_init) `, }, { Loading @@ -1101,8 +1107,20 @@ load("//vendor/foo1:cfg.star|init", _cfg_init = "init") def init(g, handle): cfg = rblf.cfg(handle) g["MY_PATH"] = "foo" rblf.inherit(handle, "vendor/foo1/cfg", _cfg_init) rblf.inherit(handle, "vendor/foo1/cfg", _cfg_init) _entry = { "vendor/foo1/cfg.mk": ("vendor/foo1/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("product.mk", "Cannot find %s" % ("%s/cfg.mk" % g["MY_PATH"])) rblf.inherit(handle, _varmod, _varmod_init) _entry = { "vendor/foo1/cfg.mk": ("vendor/foo1/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("product.mk", "Cannot find %s" % ("%s/cfg.mk" % g["MY_PATH"])) rblf.inherit(handle, _varmod, _varmod_init) `, }, { Loading @@ -1126,9 +1144,21 @@ load("//bar:font.star|init", _font1_init = "init") def init(g, handle): cfg = rblf.cfg(handle) rblf.inherit(handle, "foo/font", _font_init) _entry = { "foo/font.mk": ("foo/font", _font_init), }.get("%s/font.mk" % g.get("MY_VAR", "")) (_varmod, _varmod_init) = _entry if _entry else (None, None) if not _varmod_init: rblf.mkerror("product.mk", "Cannot find %s" % ("%s/font.mk" % g.get("MY_VAR", ""))) rblf.inherit(handle, _varmod, _varmod_init) # There's some space and even this comment between the include_top and the inherit-product rblf.inherit(handle, "foo/font", _font_init) _entry = { "foo/font.mk": ("foo/font", _font_init), }.get("%s/font.mk" % g.get("MY_VAR", "")) (_varmod, _varmod_init) = _entry if _entry else (None, None) if not _varmod_init: rblf.mkerror("product.mk", "Cannot find %s" % ("%s/font.mk" % g.get("MY_VAR", ""))) rblf.inherit(handle, _varmod, _varmod_init) rblf.mkwarning("product.mk:11", "Please avoid starting an include path with a variable. See https://source.android.com/setup/build/bazel/product_config/issues/includes for details.") _entry = { "foo/font.mk": ("foo/font", _font_init), Loading Loading
mk2rbc/mk2rbc.go +9 −13 Original line number Diff line number Diff line Loading @@ -807,10 +807,7 @@ func (ctx *parseContext) handleSubConfig( if len(matchingPaths) > maxMatchingFiles { return []starlarkNode{ctx.newBadNode(v, "there are >%d files matching the pattern, please rewrite it", maxMatchingFiles)} } if len(matchingPaths) == 1 { res := inheritedStaticModule{ctx.newDependentModule(matchingPaths[0], loadAlways && ctx.ifNestLevel == 0), loadAlways} return []starlarkNode{processModule(res)} } else { needsWarning := pathPattern[0] == "" && len(ctx.includeTops) == 0 res := inheritedDynamicModule{*varPath, []*moduleInfo{}, loadAlways, ctx.errorLocation(v), needsWarning} for _, p := range matchingPaths { Loading @@ -821,7 +818,6 @@ func (ctx *parseContext) handleSubConfig( } return []starlarkNode{processModule(res)} } } func (ctx *parseContext) findMatchingPaths(pattern []string) []string { files := ctx.script.makefileFinder.Find(".") Loading
mk2rbc/mk2rbc_test.go +35 −5 Original line number Diff line number Diff line Loading @@ -1081,7 +1081,13 @@ load("//vendor/foo1:cfg.star|init", _cfg_init = "init") def init(g, handle): cfg = rblf.cfg(handle) g["MY_PATH"] = "foo" rblf.inherit(handle, "vendor/foo1/cfg", _cfg_init) _entry = { "vendor/foo1/cfg.mk": ("vendor/foo1/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("product.mk", "Cannot find %s" % ("%s/cfg.mk" % g["MY_PATH"])) rblf.inherit(handle, _varmod, _varmod_init) `, }, { Loading @@ -1101,8 +1107,20 @@ load("//vendor/foo1:cfg.star|init", _cfg_init = "init") def init(g, handle): cfg = rblf.cfg(handle) g["MY_PATH"] = "foo" rblf.inherit(handle, "vendor/foo1/cfg", _cfg_init) rblf.inherit(handle, "vendor/foo1/cfg", _cfg_init) _entry = { "vendor/foo1/cfg.mk": ("vendor/foo1/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("product.mk", "Cannot find %s" % ("%s/cfg.mk" % g["MY_PATH"])) rblf.inherit(handle, _varmod, _varmod_init) _entry = { "vendor/foo1/cfg.mk": ("vendor/foo1/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("product.mk", "Cannot find %s" % ("%s/cfg.mk" % g["MY_PATH"])) rblf.inherit(handle, _varmod, _varmod_init) `, }, { Loading @@ -1126,9 +1144,21 @@ load("//bar:font.star|init", _font1_init = "init") def init(g, handle): cfg = rblf.cfg(handle) rblf.inherit(handle, "foo/font", _font_init) _entry = { "foo/font.mk": ("foo/font", _font_init), }.get("%s/font.mk" % g.get("MY_VAR", "")) (_varmod, _varmod_init) = _entry if _entry else (None, None) if not _varmod_init: rblf.mkerror("product.mk", "Cannot find %s" % ("%s/font.mk" % g.get("MY_VAR", ""))) rblf.inherit(handle, _varmod, _varmod_init) # There's some space and even this comment between the include_top and the inherit-product rblf.inherit(handle, "foo/font", _font_init) _entry = { "foo/font.mk": ("foo/font", _font_init), }.get("%s/font.mk" % g.get("MY_VAR", "")) (_varmod, _varmod_init) = _entry if _entry else (None, None) if not _varmod_init: rblf.mkerror("product.mk", "Cannot find %s" % ("%s/font.mk" % g.get("MY_VAR", ""))) rblf.inherit(handle, _varmod, _varmod_init) rblf.mkwarning("product.mk:11", "Please avoid starting an include path with a variable. See https://source.android.com/setup/build/bazel/product_config/issues/includes for details.") _entry = { "foo/font.mk": ("foo/font", _font_init), Loading