diff --git a/py/mkrules.mk b/py/mkrules.mk index 5050935873..4addac38a6 100644 --- a/py/mkrules.mk +++ b/py/mkrules.mk @@ -206,6 +206,9 @@ MICROPY_MANIFEST_MPY_LIB_DIR = $(MPY_LIB_DIR) MICROPY_MANIFEST_PORT_DIR = $(shell pwd) MICROPY_MANIFEST_BOARD_DIR = $(BOARD_DIR) MICROPY_MANIFEST_MPY_DIR = $(TOP) +# Set variables for BOARD and BOARD_VARIANT by default +MICROPY_MANIFEST_BOARD = $(BOARD) +MICROPY_MANIFEST_BOARD_VARIANT = $(BOARD_VARIANT) # Find all MICROPY_MANIFEST_* variables and turn them into command line arguments. MANIFEST_VARIABLES = $(foreach var,$(filter MICROPY_MANIFEST_%, $(.VARIABLES)),-v "$(subst MICROPY_MANIFEST_,,$(var))=$($(var))") diff --git a/tools/makemanifest.py b/tools/makemanifest.py index a74a6934ae..92b9cfaf92 100644 --- a/tools/makemanifest.py +++ b/tools/makemanifest.py @@ -143,7 +143,7 @@ def main(): # Extract variables for substitution. for var in args.var: name, value = var.split("=", 1) - if os.path.exists(value): + if name in ("MPY_DIR", "MPY_LIB_DIR", "BOARD_DIR", "PORT_DIR") and os.path.exists(value): value = os.path.abspath(value) VARS[name] = value diff --git a/tools/manifestfile.py b/tools/manifestfile.py index beaa36d0f5..c0efb4d662 100644 --- a/tools/manifestfile.py +++ b/tools/manifestfile.py @@ -222,6 +222,7 @@ class ManifestFile: "add_library": self.add_library, "package": self.package, "module": self.module, + "resolve": self.resolve, "options": IncludeOptions(**kwargs), } @@ -572,6 +573,12 @@ class ManifestFile: """ self._freeze_internal(path, script, exts=(".mpy",), kind=KIND_FREEZE_MPY, opt=opt) + def resolve(self, name): + if name[0] == "$" and name[1:] in self._path_vars.keys(): + return self._path_vars[name[1:]] + else: + return None + # Generate a temporary file with a line appended to the end that adds __version__. @contextlib.contextmanager