初始化提交
This commit is contained in:
192
arduino-cli/libraries/Blynk/extras/build-examples.py
Normal file
192
arduino-cli/libraries/Blynk/extras/build-examples.py
Normal file
@@ -0,0 +1,192 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os, sys, fnmatch
|
||||
from subprocess import call
|
||||
|
||||
arduino_ide_path = os.environ['ARDUINO_IDE_PATH']
|
||||
energia_ide_path = os.environ['ENERGIA_IDE_PATH']
|
||||
|
||||
ESP8266 = { "fqbn": "esp8266:esp8266:nodemcuv2:CpuFrequency=80,FlashSize=4M3M" }
|
||||
|
||||
metadata = {
|
||||
"Arduino_Yun.ino" : { "fqbn": "arduino:avr:yun" },
|
||||
"Arduino_Zero_M0_Serial.ino" : { "fqbn": "arduino:samd:arduino_zero_native" },
|
||||
"ENC28J60.ino" : { "fqbn": "arduino:avr:nano:cpu=atmega328" },
|
||||
"ESP8266_Shield.ino" : { "fqbn": "arduino:avr:mega:cpu=atmega2560" },
|
||||
"RN_XV_WiFly.ino" : { "fqbn": "arduino:avr:leonardo" },
|
||||
"Serial_HM10_HC08.ino" : { "fqbn": "arduino:avr:leonardo" },
|
||||
"Adafruit_Feather_32u4_BLE.ino": { "fqbn": "adafruit:avr:feather32u4" },
|
||||
"Seeed_EthernetV2_0.ino" : { "fqbn": "arduino:avr:uno" },
|
||||
|
||||
# arduino.org
|
||||
"Arduino_Ethernet2.ino" : { "skip": True },
|
||||
"Arduino_org_UNO_WiFi.ino" : { "fqbn": "arduino:avr:unowifi" },
|
||||
|
||||
# ESP8266
|
||||
"Sparkfun_Blynk_Board.ino" : ESP8266,
|
||||
"NodeMCU.ino" : ESP8266,
|
||||
"ESP8266_DirectConnect.ino" : ESP8266,
|
||||
"ESP8266_Standalone.ino" : ESP8266,
|
||||
"ESP8266_Standalone_Manual_IP.ino" : ESP8266,
|
||||
"ESP8266_Standalone_SmartConfig.ino" : ESP8266,
|
||||
"ESP8266_Standalone_SSL.ino" : ESP8266,
|
||||
|
||||
"ESP8266_Station.ino" : ESP8266,
|
||||
"ESP8266_AccessPoint.ino" : ESP8266,
|
||||
"ESP8266_WiFi.ino" : ESP8266,
|
||||
|
||||
"ESP32_WiFi.ino" : { "fqbn": "espressif:esp32:esp32:FlashMode=qio,FlashFreq=80,FlashSize=4M" },
|
||||
|
||||
"myPlant_ESP8266.ino" : ESP8266,
|
||||
"Template_ESP8266.ino" : ESP8266,
|
||||
"Template_MKR1000.ino" : { "fqbn": "arduino:samd:mkr1000" },
|
||||
|
||||
# TheAirBoard
|
||||
"TheAirBoard_WiFly.ino" : { "fqbn": "arduino:avr:fio" },
|
||||
"TheAirBoard_BLE_Link.ino" : { "fqbn": "arduino:avr:fio" },
|
||||
|
||||
# Digistump
|
||||
"Digistump_Digispark.ino" : { "fqbn": "digistump:avr:digispark-pro" },
|
||||
"Digistump_Oak.ino" : { "fqbn": "digistump:oak:oak1:CpuFrequency=80,UploadTool=oak_ota,FlashSize=OAK,RomConfig=Full" },
|
||||
|
||||
# Intel
|
||||
"Intel_Edison_WiFi.ino" : { "fqbn": "Intel:i686:izmir_ec" },
|
||||
"Intel_Galileo.ino" : { "fqbn": "Intel:i586:izmir_fg" },
|
||||
"Arduino_101_BLE.ino" : { "fqbn": "Intel:arc32:arduino_101" },
|
||||
|
||||
# RBL
|
||||
"RedBear_Duo_WiFi.ino" : { "fqbn": "RedBear:STM32F2:RedBear_Duo" },
|
||||
"RedBear_Duo_BLE.ino" : { "fqbn": "RedBear:STM32F2:RedBear_Duo" },
|
||||
"RedBearLab_BLE_Nano.ino" : { "fqbn": "RedBear:nRF51822:nRF51822_NANO_32KB" },
|
||||
"RedBearLab_BlendMicro.ino" : { "fqbn": "RedBear:avr:blendmicro8" },
|
||||
"RedBearLab_BLE_Mini.ino" : { "fqbn": "arduino:avr:leonardo" },
|
||||
|
||||
# GSM
|
||||
"SIM800_SIM900.ino" : { "fqbn": "arduino:avr:leonardo" },
|
||||
|
||||
#Other
|
||||
"Blue_Pill_STM32F103C.ino" : { "fqbn": "stm32duino:STM32F1:genericSTM32F103C:device_variant=STM32F103C8" },
|
||||
"Fishino.ino" : { "skip": True }, # requires extra lib
|
||||
"BBC_MicroBit.ino" : { "fqbn": "sandeepmistry:nRF5:BBCmicrobit:softdevice=s130" },
|
||||
"Simblee_BLE.ino" : { "fqbn": "Simblee:Simblee:Simblee" },
|
||||
"RFDuino_BLE.ino" : { "fqbn": "RFduino:RFduino:RFduino" },
|
||||
"DFRobot_Bluno_BLE_Link.ino" : { "fqbn": "arduino:avr:leonardo" },
|
||||
"Microduino_BLE.ino" : { "fqbn": "arduino:avr:leonardo" },
|
||||
"TinyDuino_WiFi.ino" : { "fqbn": "arduino:avr:pro:cpu=8MHzatmega328" },
|
||||
"WildFire_V3.ino" : { "fqbn": "WildFire- 4.0.0:avr:wildfireo3" },
|
||||
"WildFire_V4.ino" : { "fqbn": "WildFire- 4.0.0:avr:wildfireo3" },
|
||||
"chipKIT_Uno32.ino" : { "fqbn": "chipKIT:pic32:uno_pic32" },
|
||||
"LightBlue_Bean.ino" : { "fqbn": "LightBlue-Bean:avr:beanplus" },
|
||||
"Teensy3.ino" : { "fqbn": "teensy:avr:teensy31:usb=serial,speed=96,opt=o2std,keys=en-us" },
|
||||
"ATtiny85.ino" : { "fqbn": "attiny:avr:ATtinyX5:cpu=attiny85,clock=internal8" },
|
||||
|
||||
# Special examples
|
||||
"ESP8266.ino" : ESP8266,
|
||||
"HandleDisconnect.ino" : ESP8266,
|
||||
|
||||
# No linux support
|
||||
"LinkItONE.ino" : { "skip": True },
|
||||
|
||||
# Energia
|
||||
"Energia_WiFi.ino" : { "fqbn": "energia:msp430:MSP-EXP430F5529LP" },
|
||||
"Energia_BLE.ino" : { "fqbn": "energia:msp432r:MSP-EXP432P401RR" },
|
||||
"Energia_Ethernet.ino" : { "fqbn": "energia:tivac:EK-TM4C1294XL" },
|
||||
"Energia_Serial_USB.ino" : { "fqbn": "energia:tivac:EK-LM4F120XL" },
|
||||
}
|
||||
|
||||
def find_files(directory, pattern):
|
||||
for root, dirs, files in os.walk(directory):
|
||||
for basename in files:
|
||||
if fnmatch.fnmatch(basename, pattern):
|
||||
filename = os.path.join(root, basename)
|
||||
yield filename
|
||||
|
||||
examples = find_files('examples', '*.ino')
|
||||
abs_examples = map(lambda x: os.path.abspath(x), examples)
|
||||
|
||||
logfile = open("./build.log","wb")
|
||||
|
||||
'''
|
||||
builder = "./arduino-builder"
|
||||
|
||||
builder_args = [
|
||||
"-verbose",
|
||||
|
||||
"-hardware", "./hardware",
|
||||
"-hardware", os.path.expanduser("~/.arduino15/packages/"),
|
||||
"-hardware", "/data2/sketchbook/hardware",
|
||||
|
||||
"-tools", "./hardware/tools",
|
||||
"-tools", os.path.expanduser("~/.arduino15/packages/"),
|
||||
"-tools", "./tools-builder",
|
||||
|
||||
"-libraries",os.path.expanduser("~/.arduino15/packages/"),
|
||||
"-libraries","./libraries",
|
||||
"-libraries","/data2/sketchbook/libraries/",
|
||||
]
|
||||
'''
|
||||
|
||||
failed = []
|
||||
built = []
|
||||
skipped = []
|
||||
|
||||
for fn in abs_examples:
|
||||
path, ino = os.path.split(fn)
|
||||
|
||||
if ino in metadata:
|
||||
m = metadata[ino]
|
||||
m['sketch_found'] = True
|
||||
if "skip" in m:
|
||||
skipped.append(ino)
|
||||
continue
|
||||
if not "fqbn" in m:
|
||||
m["fqbn"] = "arduino:avr:uno"
|
||||
else:
|
||||
#continue
|
||||
m = { "fqbn": "arduino:avr:uno" }
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
if ino != sys.argv[1]:
|
||||
continue
|
||||
|
||||
print >>logfile, "\n\n", "================="
|
||||
print >>logfile, "Building:", ino
|
||||
print >>logfile, "=================", "\n"
|
||||
logfile.flush()
|
||||
|
||||
print "Building:", ino, "...",
|
||||
sys.stdout.flush()
|
||||
|
||||
if m["fqbn"].startswith("energia:"):
|
||||
os.chdir(energia_ide_path)
|
||||
builder = "./energia"
|
||||
else:
|
||||
os.chdir(arduino_ide_path)
|
||||
builder = "./arduino"
|
||||
|
||||
cmd = [
|
||||
builder,
|
||||
"--verbose",
|
||||
"--verify",
|
||||
"--board", m["fqbn"],
|
||||
fn
|
||||
]
|
||||
#print cmd
|
||||
rc = call(cmd, stdout=logfile, stderr=logfile)
|
||||
if rc:
|
||||
print "Failed"
|
||||
failed.append(ino)
|
||||
else:
|
||||
print "OK"
|
||||
built.append(ino)
|
||||
|
||||
print "=================="
|
||||
if len(failed):
|
||||
print " Failed:", failed
|
||||
sys.exit(1)
|
||||
else:
|
||||
print " All", len(built), "examples OK"
|
||||
|
||||
for ino, m in metadata.items():
|
||||
if not 'sketch_found' in m:
|
||||
print "Sketch not found:", ino
|
||||
Reference in New Issue
Block a user