| 
									
										
										
										
											2017-06-05 16:02:39 +03:00
										 |  |  | # Copyright (c) 2014-present PlatformIO <contact@platformio.org> | 
					
						
							| 
									
										
										
										
											2015-11-18 17:16:17 +02:00
										 |  |  | # | 
					
						
							|  |  |  | # Licensed under the Apache License, Version 2.0 (the "License"); | 
					
						
							|  |  |  | # you may not use this file except in compliance with the License. | 
					
						
							|  |  |  | # You may obtain a copy of the License at | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #    http://www.apache.org/licenses/LICENSE-2.0 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Unless required by applicable law or agreed to in writing, software | 
					
						
							|  |  |  | # distributed under the License is distributed on an "AS IS" BASIS, | 
					
						
							|  |  |  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
					
						
							|  |  |  | # See the License for the specific language governing permissions and | 
					
						
							|  |  |  | # limitations under the License. | 
					
						
							| 
									
										
										
										
											2014-05-18 23:38:59 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-10 15:36:00 +03:00
										 |  |  | import base64 | 
					
						
							| 
									
										
										
										
											2015-06-19 15:29:22 +03:00
										 |  |  | import json | 
					
						
							| 
									
										
										
										
											2017-06-01 21:35:26 +03:00
										 |  |  | import sys | 
					
						
							| 
									
										
										
										
											2015-08-03 15:08:54 +03:00
										 |  |  | from os import environ | 
					
						
							| 
									
										
										
										
											2017-09-22 01:22:21 +03:00
										 |  |  | from os.path import expanduser, join | 
					
						
							| 
									
										
										
										
											2015-02-15 18:18:11 +02:00
										 |  |  | from time import time | 
					
						
							| 
									
										
										
										
											2014-05-18 23:38:59 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-07 21:16:42 +03:00
										 |  |  | from SCons.Script import ARGUMENTS  # pylint: disable=import-error | 
					
						
							|  |  |  | from SCons.Script import COMMAND_LINE_TARGETS  # pylint: disable=import-error | 
					
						
							|  |  |  | from SCons.Script import DEFAULT_TARGETS  # pylint: disable=import-error | 
					
						
							|  |  |  | from SCons.Script import AllowSubstExceptions  # pylint: disable=import-error | 
					
						
							|  |  |  | from SCons.Script import AlwaysBuild  # pylint: disable=import-error | 
					
						
							|  |  |  | from SCons.Script import Default  # pylint: disable=import-error | 
					
						
							|  |  |  | from SCons.Script import DefaultEnvironment  # pylint: disable=import-error | 
					
						
							| 
									
										
										
										
											2019-05-24 16:06:27 +03:00
										 |  |  | from SCons.Script import Import  # pylint: disable=import-error | 
					
						
							| 
									
										
										
										
											2019-05-07 21:16:42 +03:00
										 |  |  | from SCons.Script import Variables  # pylint: disable=import-error | 
					
						
							| 
									
										
										
										
											2014-05-18 23:38:59 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-26 14:47:42 +02:00
										 |  |  | from platformio import util | 
					
						
							| 
									
										
										
										
											2019-05-10 17:50:08 +03:00
										 |  |  | from platformio.compat import PY2, path_to_unicode | 
					
						
							| 
									
										
										
										
											2019-05-16 21:03:15 +03:00
										 |  |  | from platformio.proc import get_pythonexe_path | 
					
						
							| 
									
										
										
										
											2019-05-20 21:12:45 +03:00
										 |  |  | from platformio.project.config import ProjectConfig | 
					
						
							| 
									
										
										
										
											2019-05-07 22:13:21 +03:00
										 |  |  | from platformio.project.helpers import ( | 
					
						
							| 
									
										
										
										
											2019-05-20 21:12:45 +03:00
										 |  |  |     get_project_dir, get_projectbuild_dir, get_projectdata_dir, | 
					
						
							|  |  |  |     get_projectinclude_dir, get_projectlib_dir, get_projectlibdeps_dir, | 
					
						
							|  |  |  |     get_projectsrc_dir, get_projecttest_dir, get_projectworkspace_dir) | 
					
						
							| 
									
										
										
										
											2015-02-15 18:02:59 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-17 00:48:59 +03:00
										 |  |  | AllowSubstExceptions(NameError) | 
					
						
							| 
									
										
										
										
											2014-05-18 23:38:59 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-02 20:53:36 +03:00
										 |  |  | # allow common variables from INI file | 
					
						
							|  |  |  | commonvars = Variables(None) | 
					
						
							|  |  |  | commonvars.AddVariables( | 
					
						
							| 
									
										
										
										
											2016-05-26 19:43:36 +03:00
										 |  |  |     ("PLATFORM_MANIFEST",), | 
					
						
							| 
									
										
										
										
											2014-11-22 23:55:17 +02:00
										 |  |  |     ("BUILD_SCRIPT",), | 
					
						
							| 
									
										
										
										
											2017-06-30 00:15:49 +03:00
										 |  |  |     ("EXTRA_SCRIPTS",), | 
					
						
							| 
									
										
										
										
											2014-05-18 23:38:59 +03:00
										 |  |  |     ("PIOENV",), | 
					
						
							| 
									
										
										
										
											2016-06-15 14:10:42 +03:00
										 |  |  |     ("PIOTEST",), | 
					
						
							| 
									
										
										
										
											2016-07-17 16:05:28 +03:00
										 |  |  |     ("PIOPLATFORM",), | 
					
						
							|  |  |  |     ("PIOFRAMEWORK",), | 
					
						
							| 
									
										
										
										
											2016-07-15 23:51:33 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # build options | 
					
						
							| 
									
										
										
										
											2014-06-21 22:27:58 +03:00
										 |  |  |     ("BUILD_FLAGS",), | 
					
						
							| 
									
										
										
										
											2015-06-28 20:18:16 +03:00
										 |  |  |     ("SRC_BUILD_FLAGS",), | 
					
						
							| 
									
										
										
										
											2016-04-27 12:55:07 +03:00
										 |  |  |     ("BUILD_UNFLAGS",), | 
					
						
							| 
									
										
										
										
											2015-06-22 15:06:39 +03:00
										 |  |  |     ("SRC_FILTER",), | 
					
						
							| 
									
										
										
										
											2016-07-15 23:51:33 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # library options | 
					
						
							| 
									
										
										
										
											2016-08-01 00:14:22 +03:00
										 |  |  |     ("LIB_LDF_MODE",), | 
					
						
							| 
									
										
										
										
											2016-07-31 15:46:57 +03:00
										 |  |  |     ("LIB_COMPAT_MODE",), | 
					
						
							| 
									
										
										
										
											2016-09-17 16:32:16 +03:00
										 |  |  |     ("LIB_DEPS",), | 
					
						
							| 
									
										
										
										
											2015-06-28 19:44:35 +03:00
										 |  |  |     ("LIB_IGNORE",), | 
					
						
							| 
									
										
										
										
											2016-07-15 23:51:33 +03:00
										 |  |  |     ("LIB_EXTRA_DIRS",), | 
					
						
							| 
									
										
										
										
											2017-08-02 01:06:06 +03:00
										 |  |  |     ("LIB_ARCHIVE",), | 
					
						
							| 
									
										
										
										
											2014-06-02 20:53:36 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # board options | 
					
						
							| 
									
										
										
										
											2014-05-18 23:38:59 +03:00
										 |  |  |     ("BOARD",), | 
					
						
							| 
									
										
										
										
											2018-05-26 01:02:52 +03:00
										 |  |  |     # deprecated options, use board_{object.path} instead | 
					
						
							| 
									
										
										
										
											2014-06-02 20:53:36 +03:00
										 |  |  |     ("BOARD_MCU",), | 
					
						
							|  |  |  |     ("BOARD_F_CPU",), | 
					
						
							| 
									
										
										
										
											2016-02-10 22:58:12 +02:00
										 |  |  |     ("BOARD_F_FLASH",), | 
					
						
							| 
									
										
										
										
											2016-02-10 23:16:25 +02:00
										 |  |  |     ("BOARD_FLASH_MODE",), | 
					
						
							| 
									
										
										
										
											2018-05-26 01:02:52 +03:00
										 |  |  |     # end of deprecated options | 
					
						
							| 
									
										
										
										
											2014-05-18 23:38:59 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-02 20:53:36 +03:00
										 |  |  |     # upload options | 
					
						
							|  |  |  |     ("UPLOAD_PORT",), | 
					
						
							|  |  |  |     ("UPLOAD_PROTOCOL",), | 
					
						
							| 
									
										
										
										
											2015-12-11 15:17:38 +02:00
										 |  |  |     ("UPLOAD_SPEED",), | 
					
						
							| 
									
										
										
										
											2016-01-14 01:07:57 +02:00
										 |  |  |     ("UPLOAD_FLAGS",), | 
					
						
							| 
									
										
										
										
											2018-02-09 21:47:59 +02:00
										 |  |  |     ("UPLOAD_RESETMETHOD",), | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-20 02:04:40 +03:00
										 |  |  |     # test options | 
					
						
							|  |  |  |     ("TEST_BUILD_PROJECT_SRC",), | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-09 21:47:59 +02:00
										 |  |  |     # debug options | 
					
						
							|  |  |  |     ("DEBUG_TOOL",), | 
					
						
							| 
									
										
										
										
											2018-05-01 21:09:32 +03:00
										 |  |  |     ("DEBUG_SVD_PATH",), | 
					
						
							| 
									
										
										
										
											2017-03-31 18:55:19 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-01 00:14:22 +03:00
										 |  |  | )  # yapf: disable | 
					
						
							| 
									
										
										
										
											2014-05-18 23:38:59 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-30 00:15:49 +03:00
										 |  |  | MULTILINE_VARS = [ | 
					
						
							|  |  |  |     "EXTRA_SCRIPTS", "PIOFRAMEWORK", "BUILD_FLAGS", "SRC_BUILD_FLAGS", | 
					
						
							| 
									
										
										
										
											2018-07-20 02:04:40 +03:00
										 |  |  |     "BUILD_UNFLAGS", "UPLOAD_FLAGS", "SRC_FILTER", "LIB_DEPS", "LIB_IGNORE", | 
					
						
							|  |  |  |     "LIB_EXTRA_DIRS" | 
					
						
							| 
									
										
										
										
											2017-06-30 00:15:49 +03:00
										 |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-27 19:30:38 +03:00
										 |  |  | DEFAULT_ENV_OPTIONS = dict( | 
					
						
							| 
									
										
										
										
											2015-03-04 21:21:10 +02:00
										 |  |  |     tools=[ | 
					
						
							| 
									
										
										
										
											2018-01-26 20:50:33 +02:00
										 |  |  |         "ar", "gas", "gcc", "g++", "gnulink", "platformio", "pioplatform", | 
					
						
							| 
									
										
										
										
											2017-04-28 01:38:25 +03:00
										 |  |  |         "piowinhooks", "piolib", "pioupload", "piomisc", "pioide" | 
					
						
							| 
									
										
										
										
											2016-08-01 00:16:52 +03:00
										 |  |  |     ],  # yapf: disable | 
					
						
							| 
									
										
										
										
											2016-05-26 19:43:36 +03:00
										 |  |  |     toolpath=[join(util.get_source_dir(), "builder", "tools")], | 
					
						
							| 
									
										
										
										
											2014-06-02 20:53:36 +03:00
										 |  |  |     variables=commonvars, | 
					
						
							| 
									
										
										
										
											2014-05-18 23:38:59 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 15:08:54 +03:00
										 |  |  |     # Propagating External Environment | 
					
						
							| 
									
										
										
										
											2018-12-26 20:54:29 +02:00
										 |  |  |     PIOVARIABLES=list(commonvars.keys()), | 
					
						
							| 
									
										
										
										
											2015-08-03 15:08:54 +03:00
										 |  |  |     ENV=environ, | 
					
						
							| 
									
										
										
										
											2015-02-15 18:18:11 +02:00
										 |  |  |     UNIX_TIME=int(time()), | 
					
						
							| 
									
										
										
										
											2014-12-27 23:59:20 +02:00
										 |  |  |     PIOHOME_DIR=util.get_home_dir(), | 
					
						
							| 
									
										
										
										
											2019-05-07 22:13:21 +03:00
										 |  |  |     PROJECT_DIR=get_project_dir(), | 
					
						
							| 
									
										
										
										
											2019-05-20 17:01:54 +03:00
										 |  |  |     PROJECTWORKSPACE_DIR=get_projectworkspace_dir(), | 
					
						
							| 
									
										
										
										
											2019-05-23 00:23:24 +03:00
										 |  |  |     PROJECTLIBDEPS_DIR=get_projectlibdeps_dir(), | 
					
						
							| 
									
										
										
										
											2019-05-07 22:13:21 +03:00
										 |  |  |     PROJECTINCLUDE_DIR=get_projectinclude_dir(), | 
					
						
							|  |  |  |     PROJECTSRC_DIR=get_projectsrc_dir(), | 
					
						
							|  |  |  |     PROJECTTEST_DIR=get_projecttest_dir(), | 
					
						
							|  |  |  |     PROJECTDATA_DIR=get_projectdata_dir(), | 
					
						
							|  |  |  |     PROJECTBUILD_DIR=get_projectbuild_dir(), | 
					
						
							| 
									
										
										
										
											2018-01-03 15:47:02 +02:00
										 |  |  |     BUILD_DIR=join("$PROJECTBUILD_DIR", "$PIOENV"), | 
					
						
							| 
									
										
										
										
											2015-06-22 17:27:32 +03:00
										 |  |  |     BUILDSRC_DIR=join("$BUILD_DIR", "src"), | 
					
						
							| 
									
										
										
										
											2016-05-30 17:50:37 +03:00
										 |  |  |     BUILDTEST_DIR=join("$BUILD_DIR", "test"), | 
					
						
							| 
									
										
										
										
											2018-05-14 22:13:42 -07:00
										 |  |  |     LIBPATH=["$BUILD_DIR"], | 
					
						
							| 
									
										
										
										
											2014-06-14 22:12:32 +03:00
										 |  |  |     LIBSOURCE_DIRS=[ | 
					
						
							| 
									
										
										
										
											2019-05-07 22:13:21 +03:00
										 |  |  |         get_projectlib_dir(), | 
					
						
							| 
									
										
										
										
											2019-05-23 00:23:24 +03:00
										 |  |  |         join("$PROJECTLIBDEPS_DIR", "$PIOENV"), | 
					
						
							| 
									
										
										
										
											2016-08-01 00:14:22 +03:00
										 |  |  |         join("$PIOHOME_DIR", "lib") | 
					
						
							| 
									
										
										
										
											2015-12-30 20:01:43 +02:00
										 |  |  |     ], | 
					
						
							| 
									
										
										
										
											2017-03-31 18:55:19 +03:00
										 |  |  |     PROGNAME="program", | 
					
						
							|  |  |  |     PROG_PATH=join("$BUILD_DIR", "$PROGNAME$PROGSUFFIX"), | 
					
						
							| 
									
										
										
										
											2019-05-16 21:03:15 +03:00
										 |  |  |     PYTHONEXE=get_pythonexe_path()) | 
					
						
							| 
									
										
										
										
											2014-05-18 23:38:59 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-27 19:30:38 +03:00
										 |  |  | if not int(ARGUMENTS.get("PIOVERBOSE", 0)): | 
					
						
							|  |  |  |     DEFAULT_ENV_OPTIONS['ARCOMSTR'] = "Archiving $TARGET" | 
					
						
							|  |  |  |     DEFAULT_ENV_OPTIONS['LINKCOMSTR'] = "Linking $TARGET" | 
					
						
							|  |  |  |     DEFAULT_ENV_OPTIONS['RANLIBCOMSTR'] = "Indexing $TARGET" | 
					
						
							| 
									
										
										
										
											2016-08-29 14:10:09 +03:00
										 |  |  |     for k in ("ASCOMSTR", "ASPPCOMSTR", "CCCOMSTR", "CXXCOMSTR"): | 
					
						
							| 
									
										
										
										
											2016-08-27 19:30:38 +03:00
										 |  |  |         DEFAULT_ENV_OPTIONS[k] = "Compiling $TARGET" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | env = DefaultEnvironment(**DEFAULT_ENV_OPTIONS) | 
					
						
							| 
									
										
										
										
											2016-07-17 00:48:59 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-10 15:36:00 +03:00
										 |  |  | # decode common variables | 
					
						
							| 
									
										
										
										
											2018-12-26 20:54:29 +02:00
										 |  |  | for k in list(commonvars.keys()): | 
					
						
							| 
									
										
										
										
											2016-05-10 15:36:00 +03:00
										 |  |  |     if k in env: | 
					
						
							|  |  |  |         env[k] = base64.b64decode(env[k]) | 
					
						
							| 
									
										
										
										
											2018-12-26 20:54:29 +02:00
										 |  |  |         if isinstance(env[k], bytes): | 
					
						
							|  |  |  |             env[k] = env[k].decode() | 
					
						
							| 
									
										
										
										
											2017-06-30 00:15:49 +03:00
										 |  |  |         if k in MULTILINE_VARS: | 
					
						
							| 
									
										
										
										
											2019-05-20 21:12:45 +03:00
										 |  |  |             env[k] = ProjectConfig.parse_multi_values(env[k]) | 
					
						
							| 
									
										
										
										
											2016-05-10 15:36:00 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-02 18:45:19 +03:00
										 |  |  | if env.GetOption('clean'): | 
					
						
							|  |  |  |     env.PioClean(env.subst("$BUILD_DIR")) | 
					
						
							|  |  |  |     env.Exit(0) | 
					
						
							|  |  |  | elif not int(ARGUMENTS.get("PIOVERBOSE", 0)): | 
					
						
							| 
									
										
										
										
											2018-10-27 20:22:11 +03:00
										 |  |  |     print("Verbose mode can be enabled via `-v, --verbose` option") | 
					
						
							| 
									
										
										
										
											2016-09-02 18:45:19 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-26 19:43:36 +03:00
										 |  |  | # Handle custom variables from system environment | 
					
						
							| 
									
										
										
										
											2017-06-30 00:15:49 +03:00
										 |  |  | for var in ("BUILD_FLAGS", "SRC_BUILD_FLAGS", "SRC_FILTER", "EXTRA_SCRIPTS", | 
					
						
							| 
									
										
										
										
											2016-07-15 23:51:33 +03:00
										 |  |  |             "UPLOAD_PORT", "UPLOAD_FLAGS", "LIB_EXTRA_DIRS"): | 
					
						
							| 
									
										
										
										
											2016-02-17 20:20:39 +02:00
										 |  |  |     k = "PLATFORMIO_%s" % var | 
					
						
							| 
									
										
										
										
											2017-02-18 18:28:05 +02:00
										 |  |  |     if k not in environ: | 
					
						
							|  |  |  |         continue | 
					
						
							| 
									
										
										
										
											2017-06-30 00:15:49 +03:00
										 |  |  |     if var in ("UPLOAD_PORT", ): | 
					
						
							| 
									
										
										
										
											2016-02-17 20:20:39 +02:00
										 |  |  |         env[var] = environ.get(k) | 
					
						
							| 
									
										
										
										
											2016-07-15 23:51:33 +03:00
										 |  |  |         continue | 
					
						
							| 
									
										
										
										
											2019-05-20 21:12:45 +03:00
										 |  |  |     env.Append(**{var: ProjectConfig.parse_multi_values(environ.get(k))}) | 
					
						
							| 
									
										
										
										
											2016-07-15 23:51:33 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-24 18:17:23 +03:00
										 |  |  | env.Prepend(LIBSOURCE_DIRS=env.get("LIB_EXTRA_DIRS", [])) | 
					
						
							| 
									
										
										
										
											2017-09-22 01:22:21 +03:00
										 |  |  | env['LIBSOURCE_DIRS'] = [ | 
					
						
							|  |  |  |     expanduser(d) if d.startswith("~") else d for d in env['LIBSOURCE_DIRS'] | 
					
						
							|  |  |  | ] | 
					
						
							| 
									
										
										
										
											2016-12-05 14:43:06 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-03 19:58:35 +03:00
										 |  |  | env.LoadPioPlatform(commonvars) | 
					
						
							| 
									
										
										
										
											2016-05-26 19:43:36 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-05 23:21:16 +02:00
										 |  |  | env.SConscriptChdir(0) | 
					
						
							| 
									
										
										
										
											2018-12-26 20:54:29 +02:00
										 |  |  | env.SConsignFile( | 
					
						
							|  |  |  |     join("$PROJECTBUILD_DIR", | 
					
						
							| 
									
										
										
										
											2019-05-10 17:50:08 +03:00
										 |  |  |          ".sconsign.dblite" if PY2 else ".sconsign3.dblite")) | 
					
						
							| 
									
										
										
										
											2017-06-30 00:15:49 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-20 19:24:05 +02:00
										 |  |  | for item in env.GetExtraScripts("pre"): | 
					
						
							| 
									
										
										
										
											2017-06-30 00:15:49 +03:00
										 |  |  |     env.SConscript(item, exports="env") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-05 23:21:16 +02:00
										 |  |  | env.SConscript("$BUILD_SCRIPT") | 
					
						
							| 
									
										
										
										
											2015-06-19 15:29:22 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-11 15:17:38 +02:00
										 |  |  | if "UPLOAD_FLAGS" in env: | 
					
						
							| 
									
										
										
										
											2018-05-05 21:15:50 +03:00
										 |  |  |     env.Prepend(UPLOADERFLAGS=["$UPLOAD_FLAGS"]) | 
					
						
							| 
									
										
										
										
											2015-12-11 15:17:38 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-20 19:24:05 +02:00
										 |  |  | for item in env.GetExtraScripts("post"): | 
					
						
							| 
									
										
										
										
											2017-06-30 00:15:49 +03:00
										 |  |  |     env.SConscript(item, exports="env") | 
					
						
							| 
									
										
										
										
											2015-06-19 15:29:22 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-04 14:09:48 +03:00
										 |  |  | ############################################################################## | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Checking program size | 
					
						
							|  |  |  | if env.get("SIZETOOL") and "nobuild" not in COMMAND_LINE_TARGETS: | 
					
						
							|  |  |  |     env.Depends(["upload", "program"], "checkprogsize") | 
					
						
							|  |  |  |     # Replace platform's "size" target with our | 
					
						
							|  |  |  |     _new_targets = [t for t in DEFAULT_TARGETS if str(t) != "size"] | 
					
						
							|  |  |  |     Default(None) | 
					
						
							|  |  |  |     Default(_new_targets) | 
					
						
							|  |  |  |     Default("checkprogsize") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Print configured protocols | 
					
						
							|  |  |  | env.AddPreAction( | 
					
						
							|  |  |  |     ["upload", "program"], | 
					
						
							|  |  |  |     env.VerboseAction(lambda source, target, env: env.PrintUploadInfo(), | 
					
						
							|  |  |  |                       "Configuring upload protocol...")) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-06 02:25:28 +03:00
										 |  |  | AlwaysBuild(env.Alias("debug", DEFAULT_TARGETS)) | 
					
						
							| 
									
										
										
										
											2018-06-04 14:09:48 +03:00
										 |  |  | AlwaysBuild(env.Alias("__debug", DEFAULT_TARGETS)) | 
					
						
							|  |  |  | AlwaysBuild(env.Alias("__test", DEFAULT_TARGETS)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ############################################################################## | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-19 15:29:22 +03:00
										 |  |  | if "envdump" in COMMAND_LINE_TARGETS: | 
					
						
							| 
									
										
										
										
											2018-10-27 20:22:11 +03:00
										 |  |  |     print(env.Dump()) | 
					
						
							| 
									
										
										
										
											2016-09-02 18:45:19 +03:00
										 |  |  |     env.Exit(0) | 
					
						
							| 
									
										
										
										
											2015-06-19 15:29:22 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | if "idedata" in COMMAND_LINE_TARGETS: | 
					
						
							| 
									
										
										
										
											2017-06-01 21:35:26 +03:00
										 |  |  |     try: | 
					
						
							| 
									
										
										
										
											2019-05-24 16:06:27 +03:00
										 |  |  |         Import("projenv") | 
					
						
							| 
									
										
										
										
											2019-05-10 17:50:08 +03:00
										 |  |  |         print("\n%s\n" % path_to_unicode( | 
					
						
							| 
									
										
										
										
											2019-05-24 16:06:27 +03:00
										 |  |  |             json.dumps( | 
					
						
							|  |  |  |                 env.DumpIDEData(projenv),  # pylint: disable=undefined-variable | 
					
						
							|  |  |  |                 ensure_ascii=False))) | 
					
						
							| 
									
										
										
										
											2017-06-01 21:35:26 +03:00
										 |  |  |         env.Exit(0) | 
					
						
							|  |  |  |     except UnicodeDecodeError: | 
					
						
							|  |  |  |         sys.stderr.write( | 
					
						
							|  |  |  |             "\nUnicodeDecodeError: Non-ASCII characters found in build " | 
					
						
							|  |  |  |             "environment\n" | 
					
						
							|  |  |  |             "See explanation in FAQ > Troubleshooting > Building\n" | 
					
						
							| 
									
										
										
										
											2018-08-15 19:44:02 +03:00
										 |  |  |             "https://docs.platformio.org/page/faq.html\n\n") | 
					
						
							| 
									
										
										
										
											2017-06-01 21:35:26 +03:00
										 |  |  |         env.Exit(1) |