) else join("$PIOHOME_DIR", "packages", "ldscripts", "${BOARD_OPTIONS['build']['ldscript']}"))) if env['PLATFORM'] != env.get("BOARD_OPTIONS", {}).get("platform"): Exit("Error: '%s' platform doesn't support this board. " "Use '%s' platform instead." % (env['PLATFORM'], env.get("BOARD_OPTIONS", {}).get("platform"))) for opt in ("LIB_IGNORE", "LIB_USE"): if opt not in env: continue env[opt] = [l.strip() for l in env[opt].split(",") if l.strip()] env.PrependENVPath( "PATH", env.subst(join("$PIOPACKAGES_DIR", "$PIOPACKAGE_TOOLCHAIN", "bin"))) SConscriptChdir(0) SConscript(env.subst("$BUILD_SCRIPT")) if getenv("PLATFORMIO_EXTRA_SCRIPT", env.get("EXTRA_SCRIPT", None)): SConscript(getenv("PLATFORMIO_EXTRA_SCRIPT", env.get("EXTRA_SCRIPT"))) if "envdump" in COMMAND_LINE_TARGETS: print env.Dump() Exit() if "idedata" in COMMAND_LINE_TARGETS: print json.dumps(env.DumpIDEData()) Exit()
Default("checkprogsize") # Print configured protocols env.AddPreAction(["upload", "program"], env.VerboseAction( lambda source, target, env: env.PrintUploadInfo(), "Configuring upload protocol...")) AlwaysBuild(env.Alias("debug", DEFAULT_TARGETS)) AlwaysBuild(env.Alias("__debug", DEFAULT_TARGETS)) AlwaysBuild(env.Alias("__test", DEFAULT_TARGETS)) ############################################################################## if "envdump" in COMMAND_LINE_TARGETS: print(env.Dump()) env.Exit(0) if "idedata" in COMMAND_LINE_TARGETS: try: print("\n%s\n" % util.path_to_unicode( json.dumps(env.DumpIDEData(), ensure_ascii=False))) env.Exit(0) except UnicodeDecodeError: sys.stderr.write( "\nUnicodeDecodeError: Non-ASCII characters found in build " "environment\n" "See explanation in FAQ > Troubleshooting > Building\n" "https://docs.platformio.org/page/faq.html\n\n") env.Exit(1)
# Configure extra library source directories for LDF if util.get_project_optional_dir("lib_extra_dirs"): env.Prepend(LIBSOURCE_DIRS=[ l.strip() for l in util.get_project_optional_dir("lib_extra_dirs").split(", ") if l.strip() ]) env.Prepend(LIBSOURCE_DIRS=env.get("LIB_EXTRA_DIRS", [])) env.LoadPioPlatform(commonvars) env.SConscriptChdir(0) env.SConsignFile(join("$PROJECTPIOENVS_DIR", ".sconsign.dblite")) env.SConscript("$BUILD_SCRIPT") AlwaysBuild(env.Alias("__test", DEFAULT_TARGETS + ["size"])) if "UPLOAD_FLAGS" in env: env.Append(UPLOADERFLAGS=["$UPLOAD_FLAGS"]) if env.get("EXTRA_SCRIPT"): env.SConscript(env.get("EXTRA_SCRIPT"), exports="env") if "envdump" in COMMAND_LINE_TARGETS: print env.Dump() env.Exit(0) if "idedata" in COMMAND_LINE_TARGETS: print "\n%s\n" % json.dumps(env.DumpIDEData()) env.Exit(0)
# 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...")) AlwaysBuild(env.Alias("debug", DEFAULT_TARGETS)) AlwaysBuild(env.Alias("__test", DEFAULT_TARGETS)) ############################################################################## if "envdump" in COMMAND_LINE_TARGETS: print(env.Dump()) env.Exit(0) if "idedata" in COMMAND_LINE_TARGETS: Import("projenv") print("\n%s\n" % dump_json_to_unicode( env.DumpIDEData(projenv) # pylint: disable=undefined-variable )) env.Exit(0)