Files
arduino-libs/arduino-cli/libraries/Blynk/extras/travis-generate.py
2024-07-20 22:09:06 +08:00

149 lines
5.7 KiB
Python

#!/usr/bin/env python
import fnmatch
import os
ESP8266 = { "board": "nodemcuv2" }
ESP32 = { "board": "esp32dev", "framework": "arduino" } # "lib_deps": "ESP32 BLE Arduino" }
metadata = {
"Arduino_Yun.ino" : { "board": "yun" },
"Arduino_Zero_M0_Serial.ino" : { "board": "zero" },
"ENC28J60.ino" : { "board": "nanoatmega328" },
"ESP8266_Shield.ino" : { "board": "megaatmega2560" },
"RN_XV_WiFly.ino" : { "board": "leonardo" },
"Serial_HM10_HC08.ino" : { "board": "leonardo" },
"Adafruit_Feather_32u4_BLE.ino": { "board": "feather32u4", "lib_deps": "SoftwareSerial" },
"Seeed_EthernetV2_0.ino" : { "skip": True }, # Breaks build
# arduino.org
"Arduino_Ethernet2.ino" : { "skip": True },
# 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,
"myPlant_ESP8266.ino" : { "board": "nodemcuv2", "build_flags": "-DBOARD_LED_PIN_WS2812 -DUSE_TICKER"},
"Template_ESP8266.ino" : { "board": "nodemcuv2" , "build_flags": "-DBOARD_LED_PIN_WS2812 -DUSE_TICKER"},
"Template_MKR1000.ino" : { "board": "mkr1000USB", "build_flags": "-DUSE_TIMER_FIVE", "lib_deps": "WiFi101"},
"Arduino_MKR1000.ino" : { "board": "mkr1000USB", "lib_deps": "WiFi101" },
"Adafruit_Feather_M0_WiFi.ino": { "board": "adafruit_feather_m0", "lib_deps": "SPI, WiFi101" },
"Arduino_WiFi_Shield_101.ino" : { "board": "uno", "lib_deps": "WiFi101" },
"WizFi310.ino" : { "board": "uno", "lib_deps": "WizFi310" },
"Arduino_org_UNO_WiFi.ino" : { "board": "uno", "lib_deps": "WiFi Link", "build_flags": "-DESP_CH_SPI" },
# ESP32
"ESP32_WiFi.ino" : ESP32,
"ESP32_BLE.ino" : ESP32,
# TheAirBoard
"TheAirBoard_WiFly.ino" : { "skip": True, "board": "fio" }, # No AirBoard library
"TheAirBoard_BLE_Link.ino" : { "skip": True, "board": "fio" }, # No AirBoard library
# Digistump
"Digistump_Digispark.ino" : { "board": "digispark-pro" },
"Digistump_Oak.ino" : { "skip": True },
# Intel
"Intel_Edison_WiFi.ino" : { "skip": True },
"Intel_Galileo.ino" : { "skip": True },
"Arduino_101_BLE.ino" : { "board": "genuino101" },
# RBL
"RedBear_Duo_WiFi.ino" : { "skip": True },
"RedBear_Duo_BLE.ino" : { "skip": True },
"RedBearLab_BLE_Nano.ino" : { "skip": True, "board": "redBearLabBLENano", "framework": "arduino" }, # Not for Arduino
"RedBearLab_BlendMicro.ino" : { "board": "blendmicro8" },
"RedBearLab_BLE_Mini.ino" : { "board": "leonardo" },
# GSM
"SIM800_SIM900.ino" : { "board": "leonardo" },
#Other
"Blue_Pill_STM32F103C.ino" : { "board": "bluepill_f103c8", "framework": "arduino" },
"Fishino.ino" : { "skip": True }, # requires extra lib
"BBC_MicroBit.ino" : { "board": "uno", "lib_deps": "SPI" }, #TODO
"Simblee_BLE.ino" : { "skip": True },
"RFDuino_BLE.ino" : { "board": "rfduino" },
"DFRobot_Bluno_BLE_Link.ino" : { "board": "leonardo" },
"Microduino_BLE.ino" : { "board": "leonardo" },
"TinyDuino_WiFi.ino" : { "board": "tinyduino", "lib_deps": "Adafruit CC3000 Library" },
"CC3000.ino" : { "board": "uno", "lib_deps": "Adafruit CC3000 Library" },
"WildFire_V3.ino" : { "board": "wildfirev3", "lib_deps": "WildFire-CC3000" },
"WildFire_V4.ino" : { "skip": True },
"chipKIT_Uno32.ino" : { "board": "uno_pic32" },
"LightBlue_Bean.ino" : { "board": "lightblue-bean" },
"Teensy3.ino" : { "board": "teensy31" },
"ATtiny85.ino" : { "board": "attiny85" },
"DHT11.ino" : { "board": "uno", "lib_deps": "Adafruit Unified Sensor" },
# Special examples
"ESP8266.ino" : ESP8266,
"HandleDisconnect.ino" : ESP8266,
# No linux support
"LinkItONE.ino" : { "skip": True },
# Energia
"Energia_WiFi.ino" : { "skip": True, "board": "lpmsp430f5529" },
"Energia_BLE.ino" : { "skip": True, "board": "..." },
"Energia_Ethernet.ino" : { "board": "lptm4c1294ncpdt" },
"Energia_Serial_USB.ino" : { "board": "lplm4f120h5qr" },
}
pio_project_options = ['lib_ignore', 'framework', 'build_flags', 'lib_deps']
#seeedTinyBLE
#nrf51_dk
#nucleo_f401re
#rfduino
examples = []
for root, dirnames, filenames in os.walk('examples'):
for filename in fnmatch.filter(filenames, '*.ino'):
fn = os.path.join(root, filename)
examples.append(fn)
examples.sort()
for fn in examples:
path, ino = os.path.split(fn)
if ino in metadata:
m = metadata[ino]
m['sketch_found'] = True
extra_args = ''
if 'board' in m:
extra_args += "--board=" + m['board'] + " "
if set(m.keys()) & set(pio_project_options):
for _key in set(m.keys()) & set(pio_project_options):
extra_args += "--project-option='{0}={1}' ".format(_key, m[_key])
if len(extra_args):
path += ' PLATFORMIO_CI_EXTRA_ARGS="' + extra_args.strip() + '"'
else:
m = {}
if 'skip' in m:
path = " # - PLATFORMIO_CI_SRC=" + path
else:
path = " - PLATFORMIO_CI_SRC=" + path
print path
for ino, m in metadata.items():
if not 'sketch_found' in m:
print "Sketch not found:", ino