From f01cd7570c7ee223324528adca31aa04d4371615 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Fri, 1 Jul 2022 20:14:58 +0300 Subject: [PATCH] Fix handling of unknown targets when processing pre/post actions --- platformio/builder/tools/piohooks.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/platformio/builder/tools/piohooks.py b/platformio/builder/tools/piohooks.py index 653a7f30..acd43fbf 100644 --- a/platformio/builder/tools/piohooks.py +++ b/platformio/builder/tools/piohooks.py @@ -17,11 +17,21 @@ from __future__ import absolute_import def AddActionWrapper(handler): def wraps(env, files, action): - nodes = env.arg2nodes(files, env.fs.Entry) - unknown_nodes = [node for node in nodes if not node.exists()] - if unknown_nodes: - env.Append(**{"_PIO_DELAYED_ACTIONS": [(handler, unknown_nodes, action)]}) - return handler([node for node in nodes if node.exists()], action) + if not isinstance(files, (list, tuple, set)): + files = [files] + known_nodes = [] + unknown_files = [] + for item in files: + nodes = env.arg2nodes(item, env.fs.Entry) + if nodes and nodes[0].exists(): + known_nodes.extend(nodes) + else: + unknown_files.append(item) + if unknown_files: + env.Append(**{"_PIO_DELAYED_ACTIONS": [(handler, unknown_files, action)]}) + if known_nodes: + return handler(known_nodes, action) + return [] return wraps