* Rework the lib-builder for ESP-IDF v5.1 * Update package json with tolls matching the ESP-IDF version * fix: rainmaker examples crashing on s3 due to low stack memory. (#106) (#107) * Update scripts with the latest requirements * Update configs + SR Support * Add esp-elf-gdp to the list of packages * Fix RainMaker builds and new sr models path * Temporary force arduino branch for CI to work * fix target branch * Delete esp-dl component manifest for requiring IDF 4.4.x * Temporary changes to allow Cron CI to run * Support builds based on ESP-IDF tag * Push to esp32-arduino-libs * Update repository_dispatch.sh * Rework scripts to allow build when either dst needs it * Github complains when pushing to the libs repo * Authenticate to the libs repo * Attempt at splitting SDK from Arduino * Archive only the result and reorder deploy commands * Update cron.sh * Fix script and zip paths * Fix download URL and json merger * Change sdk folder structure and fix json generation * Switch output folder from sdk to esp32-arduino-libs * arduino_tinyusb: compile support for DFU mode (#116) * Update PlatformIO build script templates (#118) Adds support for new package with precompiled SDK libraries * Autogenerate PlatformIO manifest file for prebuilt SDK libs (#119) * Autogenerate PlatformIO manifest file for prebuilt SDK libs - Add a special Python script that generates "package.json" with IDF revision from the "version.txt" according to SemVer * Tidy up * Refactor manifest generator Now IDF version and commit hash are passed directly from Git client instead of reading from a pregenerated "version.txt" file * Move IDF definitions to be available with any build * Use more components from registry and add mp3 decoder * esp-sr component requires clearing before each build * revert ESP_SR from component manager * Build ESP_SR only for ESP32-S3 for now * [TinyUSB] Update esp32sx dcd and add dwc2 option * Workaround for recent change in ESP-Insights * Add initial support for ESP32-C6 * Run build tests on ESP32-C6 * Remove -mlongcalls for non-xtensa chips * Temp fix for ESP-Insights on C6 * Add support for ESP32H2 * Added tflite-micro component (#128) * Update build badge in README.md * Added tflite-micro component --------- Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com> * Make cron rebuild the libs if they need to be pushed to Arduino For when we change something in the lib-builder, but no new updates are available in ESP-IDF * Update build actions * Fix permissions * Do not build for obsolete Flash modes * Try separate detect for cron builds * Add permissions to github api * Try more basic commit detection * another try to pass vars and get commit * Update push.yml * Update config.sh * Enable builds again * Update build.sh * Combine the artifacts from all jobs * fix and test deploy check * Update push.yml * Disable Memprot to allow loading external elfs * Fix archive name * Disable coredump to flash * Enable SPI ETH KSZ8851SNL * Add temporary support for Arduino SPI Ethernet * Add a temporary fix for relative include in BT lib * Enable Classic BT HID Host and Device for ESP32 * Revert "Enable Classic BT HID Host and Device for ESP32" This reverts commit aa0040ad271d00ac507fd2b478ee143b6c118615. * C6 was added to ESP-SR * Update Ethernet and remove SR workaround * Pin RainMaker version * Update target branch * Add back cron.sh --------- Co-authored-by: Sanket Wadekar <67091512+sanketwadekar@users.noreply.github.com> Co-authored-by: Luca Burelli <pil@iol.it> Co-authored-by: Valerii Koval <valeros@users.noreply.github.com>
121 lines
4.9 KiB
Python
121 lines
4.9 KiB
Python
#!/usr/bin/env python
|
|
|
|
from __future__ import print_function
|
|
|
|
__author__ = "Hristo Gochkov"
|
|
__version__ = "2023"
|
|
|
|
import os
|
|
import shutil
|
|
import errno
|
|
import os.path
|
|
import json
|
|
import platform
|
|
import sys
|
|
import stat
|
|
import argparse
|
|
|
|
if sys.version_info[0] == 3:
|
|
unicode = lambda s: str(s)
|
|
|
|
def add_system(systems, host, url, filename, sha, size):
|
|
system = {
|
|
"host": host,
|
|
"url": url,
|
|
"archiveFileName": filename,
|
|
"checksum": "SHA-256:"+sha,
|
|
"size": str(size)
|
|
}
|
|
systems.append(system)
|
|
|
|
if __name__ == '__main__':
|
|
parser = argparse.ArgumentParser(
|
|
prog = 'add_sdk_json',
|
|
description = 'Update SDK in Arduino package index')
|
|
parser.add_argument('-j', '--pkg-json', dest='arduino_json', required=True, help='path to package json')
|
|
parser.add_argument('-n', '--name', dest='tool_name', required=True, help='name of the SDK package')
|
|
parser.add_argument('-v', '--version', dest='tool_version', required=True, help='version of the new SDK')
|
|
parser.add_argument('-u', '--url', dest='tool_url', required=True, help='url to the zip of the new SDK')
|
|
parser.add_argument('-f', '--filename', dest='tool_filename', required=True, help='filename of the zip of the new SDK')
|
|
parser.add_argument('-s', '--size', dest='tool_size', required=True, help='size of the zip of the new SDK')
|
|
parser.add_argument('-c', '--sha', dest='tool_sha', required=True, help='sha256 of the zip of the new SDK')
|
|
args = parser.parse_args()
|
|
|
|
print('Destination : {0}.'.format(args.arduino_json))
|
|
print('Tool Name : {0}.'.format(args.tool_name))
|
|
print('Tool Version : {0}.'.format(args.tool_version))
|
|
print('Tool URL : {0}.'.format(args.tool_url))
|
|
print('Tool File Name: {0}.'.format(args.tool_filename))
|
|
print('Tool Size : {0}.'.format(args.tool_size))
|
|
print('Tool SHA256 : {0}.'.format(args.tool_sha))
|
|
|
|
arduino_json = args.arduino_json;
|
|
tool_name = args.tool_name;
|
|
tool_version = args.tool_version;
|
|
tool_url = args.tool_url;
|
|
tool_filename = args.tool_filename;
|
|
tool_size = args.tool_size;
|
|
tool_sha = args.tool_sha;
|
|
|
|
# code start
|
|
farray = {"packages":[{"platforms":[{"toolsDependencies":[]}],"tools":[]}]}
|
|
if os.path.isfile(arduino_json) == True:
|
|
farray = json.load(open(arduino_json))
|
|
|
|
dep_found = False
|
|
dep_skip = False
|
|
for dep in farray['packages'][0]['platforms'][0]['toolsDependencies']:
|
|
if dep['name'] == tool_name:
|
|
if dep['version'] == tool_version:
|
|
print('Skipping {0}. Same version {1}'.format(tool_name, tool_version))
|
|
dep_skip = True
|
|
break
|
|
print('Updating dependency version of {0} from {1} to {2}'.format(tool_name, dep['version'], tool_version))
|
|
dep['version'] = tool_version
|
|
dep_found = True
|
|
break
|
|
|
|
if dep_skip == False:
|
|
if dep_found == False:
|
|
print('Adding new dependency: {0} version {1}'.format(tool_name, tool_version))
|
|
deps = {
|
|
"packager": "esp32",
|
|
"name": tool_name,
|
|
"version": tool_version
|
|
}
|
|
farray['packages'][0]['platforms'][0]['toolsDependencies'].append(deps)
|
|
|
|
systems = []
|
|
add_system(systems, "i686-mingw32", tool_url, tool_filename, tool_sha, tool_size)
|
|
add_system(systems, "x86_64-mingw32", tool_url, tool_filename, tool_sha, tool_size)
|
|
add_system(systems, "arm64-apple-darwin", tool_url, tool_filename, tool_sha, tool_size)
|
|
add_system(systems, "x86_64-apple-darwin", tool_url, tool_filename, tool_sha, tool_size)
|
|
add_system(systems, "x86_64-pc-linux-gnu", tool_url, tool_filename, tool_sha, tool_size)
|
|
add_system(systems, "i686-pc-linux-gnu", tool_url, tool_filename, tool_sha, tool_size)
|
|
add_system(systems, "aarch64-linux-gnu", tool_url, tool_filename, tool_sha, tool_size)
|
|
add_system(systems, "arm-linux-gnueabihf", tool_url, tool_filename, tool_sha, tool_size)
|
|
|
|
tool_found = False
|
|
for t in farray['packages'][0]['tools']:
|
|
if t['name'] == tool_name:
|
|
t['version'] = tool_version
|
|
t['systems'] = systems
|
|
tool_found = True
|
|
print('Updating systems of {0} to version {1}'.format(tool_name, tool_version))
|
|
break
|
|
|
|
if tool_found == False:
|
|
print('Adding new tool: {0} version {1}'.format(tool_name, tool_version))
|
|
tools = {
|
|
"name": tool_name,
|
|
"version": tool_version,
|
|
"systems": systems
|
|
}
|
|
farray['packages'][0]['tools'].append(tools)
|
|
|
|
json_str = json.dumps(farray, indent=2)
|
|
with open(arduino_json, "w") as f:
|
|
f.write(json_str+"\n")
|
|
f.close()
|
|
# print(json_str)
|
|
print('{0} generated'.format(arduino_json))
|