From 825c60e2bd3d6eda466f570cdbd5180d9e3815d9 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Fri, 27 May 2016 14:47:22 +0300 Subject: [PATCH] Automatically add SCons to the packages list if it is missed in platform manifest // Issue #479 --- platformio/managers/platform.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/platformio/managers/platform.py b/platformio/managers/platform.py index 608fa34b..778896e4 100644 --- a/platformio/managers/platform.py +++ b/platformio/managers/platform.py @@ -309,7 +309,14 @@ class BasePlatform(PlatformPackagesMixin): return self.get_boards(id_) def get_packages(self): - return self.manifest.get("packages", {}) + packages = self.manifest.get("packages", {}) + if "tool-scons" not in packages: + packages['tool-scons'] = { + "version": self.manifest.get("engines", {}).get( + "scons", ">=2.3.0,<2.6.0"), + "optional": False + } + return packages def get_frameworks(self): return self.get_manifest().get("frameworks") @@ -353,13 +360,6 @@ class BasePlatform(PlatformPackagesMixin): _pkg_name = frameworks[framework]['package'] self.get_packages()[_pkg_name]['optional'] = False - # append SCons tool - self.get_packages()['tool-scons'] = { - "version": self.manifest.get("engines", {}).get( - "scons", ">=2.3.0,<2.5.0"), - "optional": False - } - # enable upload tools for upload targets if any(["upload" in t for t in targets] + ["program" in targets]): for _name, _opts in self.get_packages().iteritems(): @@ -413,8 +413,7 @@ class BasePlatform(PlatformPackagesMixin): cmd = [ os.path.normpath(sys.executable), - join(util.get_home_dir(), "packages", "tool-scons", - "script", "scons"), + join(self.get_package_dir("tool-scons"), "script", "scons"), "-Q", "-j %d" % self.get_job_nums(), "--warn=no-no-parallel-support",