From 7e6cb84c879a3d5080bd53183f80575d10a45cd5 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Fri, 18 Nov 2022 15:44:49 +0200 Subject: [PATCH] Add "env.IsCleanTarget()" to the Build API --- platformio/builder/main.py | 9 ++++----- platformio/builder/tools/piotarget.py | 10 ++++++++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/platformio/builder/main.py b/platformio/builder/main.py index 36121743..b56dc2a2 100644 --- a/platformio/builder/main.py +++ b/platformio/builder/main.py @@ -157,11 +157,6 @@ if env.subst("$BUILD_CACHE_DIR"): os.makedirs(env.subst("$BUILD_CACHE_DIR")) env.CacheDir("$BUILD_CACHE_DIR") -is_clean_all = "cleanall" in COMMAND_LINE_TARGETS -if env.GetOption("clean") or is_clean_all: - env.PioClean(is_clean_all) - env.Exit(0) - if not int(ARGUMENTS.get("PIOVERBOSE", 0)): click.echo("Verbose mode can be enabled via `-v, --verbose` option") @@ -185,6 +180,10 @@ env.SConsignFile( for item in env.GetExtraScripts("pre"): env.SConscript(item, exports="env") +if env.IsCleanTarget(): + env.CleanProject("cleanall" in COMMAND_LINE_TARGETS) + env.Exit(0) + env.SConscript("$BUILD_SCRIPT") if "UPLOAD_FLAGS" in env: diff --git a/platformio/builder/tools/piotarget.py b/platformio/builder/tools/piotarget.py index 51333e4d..f2dc774d 100644 --- a/platformio/builder/tools/piotarget.py +++ b/platformio/builder/tools/piotarget.py @@ -16,6 +16,7 @@ import os from SCons.Action import Action # pylint: disable=import-error from SCons.Script import ARGUMENTS # pylint: disable=import-error +from SCons.Script import COMMAND_LINE_TARGETS # pylint: disable=import-error from SCons.Script import AlwaysBuild # pylint: disable=import-error from platformio import compat, fs @@ -27,7 +28,11 @@ def VerboseAction(_, act, actstr): return Action(act, actstr) -def PioClean(env, clean_all=False): +def IsCleanTarget(env): + return env.GetOption("clean") or ("cleanall" in COMMAND_LINE_TARGETS) + + +def CleanProject(env, clean_all=False): def _relpath(path): if compat.IS_WINDOWS: prefix = os.getcwd()[:2].lower() @@ -103,7 +108,8 @@ def exists(_): def generate(env): env.AddMethod(VerboseAction) - env.AddMethod(PioClean) + env.AddMethod(IsCleanTarget) + env.AddMethod(CleanProject) env.AddMethod(AddTarget) env.AddMethod(AddPlatformTarget) env.AddMethod(AddCustomTarget)