Arduino Arduino Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences. http://arduino.cc/en/Reference/HomePage """ # Extends: https://github.com/platformio/platform-espressif32/blob/develop/builder/main.py from os.path import isdir, join from SCons.Script import DefaultEnvironment env = DefaultEnvironment() platform = env.PioPlatform() FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoespressif32") assert isdir(FRAMEWORK_DIR) env.Prepend( CPPDEFINES=[ ("ARDUINO", 10805), "ARDUINO_ARCH_ESP32", ("ARDUINO_VARIANT", '\\"%s\\"' % env.BoardConfig().get("build.variant").replace('"', "")), ("ARDUINO_BOARD", '\\"%s\\"' % env.BoardConfig().get("name").replace('"', "")) ], CFLAGS=["-Wno-old-style-declaration"], CCFLAGS=[
def VariantDirWrap(env, variant_dir, src_dir, duplicate=True): DefaultEnvironment().Append(VARIANT_DIRS=[(variant_dir, src_dir)]) env.VariantDir(variant_dir, src_dir, duplicate)
# Declare command verbose messages command_strings = dict( ARCOM="Archiving", LINKCOM="Linking", RANLIBCOM="Indexing", ASCOM="Compiling", ASPPCOM="Compiling", CCCOM="Compiling", CXXCOM="Compiling", ) if not int(ARGUMENTS.get("PIOVERBOSE", 0)): for name, value in command_strings.items(): DEFAULT_ENV_OPTIONS["%sSTR" % name] = "%s $TARGET" % (value) env = DefaultEnvironment(**DEFAULT_ENV_OPTIONS) # Load variables from CLI env.Replace( **{ key: PlatformBase.decode_scons_arg(env[key]) for key in list(clivars.keys()) if key in env } ) # Setup project optional directories config = env.GetProjectConfig() env.Replace( PROJECT_DIR=get_project_dir(), PROJECT_CORE_DIR=config.get_optional_dir("core"),
def BuildSources(env, variant_dir, src_dir, src_filter=None): nodes = env.CollectBuildFiles(variant_dir, src_dir, src_filter) DefaultEnvironment().Append(PIOBUILDFILES=[ env.Object(node) if isinstance(node, FS.File) else node for node in nodes ])
#CCFLAGS = [], #LINKFLAGS = [], #LIBPATH = [], #LIBS = [], #LIBSOURCE_DIRS=[], UPLOADCMD = run_application ) libs = [] libs.append( env.BuildLibrary( join("$BUILD_DIR", "_custom_lib"), join("$PROJECT_DIR", "lib"), )) env.Append(LIBS = libs) # Add some default libraries pc = env.get("PLATFORM") if pc.startswith("win"): env.Replace( PROGSUFFIX=".exe" ) env.Append(LIBS="libws2_32") env.Append(LIBS="winmm") elif pc.startswith("posix"): #OPENSSL sudo apt-get install libssl-dev env.Append(LIBS="libcrypto") env.Append(LIBS="libssl") ###################################################### #print( env.Dump() ) dev_init(DefaultEnvironment(), "gcc") ######################################################
def BuildSources(env, variant_dir, src_dir, src_filter=None): DefaultEnvironment().Append(PIOBUILDFILES=env.Clone().CollectBuildFiles( variant_dir, src_dir, src_filter=src_filter))