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=[
示例#2
0
def VariantDirWrap(env, variant_dir, src_dir, duplicate=True):
    DefaultEnvironment().Append(VARIANT_DIRS=[(variant_dir, src_dir)])
    env.VariantDir(variant_dir, src_dir, duplicate)
示例#3
0
# 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"),
示例#4
0
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
    ])
示例#5
0
        #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")    
######################################################
示例#6
0
def BuildSources(env, variant_dir, src_dir, src_filter=None):
    DefaultEnvironment().Append(PIOBUILDFILES=env.Clone().CollectBuildFiles(
        variant_dir, src_dir, src_filter=src_filter))