* 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>
86 lines
2.6 KiB
Python
86 lines
2.6 KiB
Python
import argparse
|
|
import json
|
|
import os
|
|
import re
|
|
import sys
|
|
|
|
MANIFEST_DATA = {
|
|
"name": "framework-arduinoespressif32-libs",
|
|
"description": "Precompiled libraries for Arduino Wiring-based Framework for the Espressif ESP32 series of SoCs",
|
|
"keywords": ["framework", "arduino", "espressif", "esp32"],
|
|
"license": "LGPL-2.1-or-later",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/espressif/esp32-arduino-libs",
|
|
},
|
|
}
|
|
|
|
|
|
def convert_version(version_string):
|
|
"""A helper function that converts a custom IDF version string
|
|
extracted from a Git repository to a suitable SemVer alternative. For example:
|
|
'release/v5.1' becomes '5.1.0',
|
|
'v7.7.7' becomes '7.7.7'
|
|
"""
|
|
|
|
regex_pattern = (
|
|
r"v(?P<MAJOR>0|[1-9]\d*)\.(?P<MINOR>0|[1-9]\d*)\.*(?P<PATCH>0|[1-9]\d*)*"
|
|
)
|
|
match = re.search(regex_pattern, version_string)
|
|
if not match:
|
|
sys.stderr.write(
|
|
f"Failed to find a regex match for '{regex_pattern}' in '{version_string}'\n"
|
|
)
|
|
return ""
|
|
|
|
major, minor, patch = match.groups()
|
|
if not patch:
|
|
patch = "0"
|
|
|
|
return ".".join((major, minor, patch))
|
|
|
|
|
|
def main(dst_dir, version_string, commit_hash):
|
|
|
|
converted_version = convert_version(version_string)
|
|
if not converted_version:
|
|
sys.stderr.write(f"Failed to convert version '{version_string}'\n")
|
|
return -1
|
|
|
|
manifest_file_path = os.path.join(dst_dir, "package.json")
|
|
with open(manifest_file_path, "w", encoding="utf8") as fp:
|
|
MANIFEST_DATA["version"] = f"{converted_version}+sha.{commit_hash}"
|
|
json.dump(MANIFEST_DATA, fp, indent=2)
|
|
|
|
print(
|
|
f"Generated PlatformIO manifest file '{manifest_file_path}' with '{converted_version}' version"
|
|
)
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument(
|
|
"-o",
|
|
"--dst-dir",
|
|
dest="dst_dir",
|
|
required=True,
|
|
help="Destination folder where the 'package.json' manifest will be located",
|
|
)
|
|
parser.add_argument(
|
|
"-s",
|
|
"--version-string",
|
|
dest="version_string",
|
|
required=True,
|
|
help="ESP-IDF version string used for compiling libraries",
|
|
)
|
|
parser.add_argument(
|
|
"-c",
|
|
"--commit-hash",
|
|
dest="commit_hash",
|
|
required=True,
|
|
help="ESP-IDF revision in form of a commit hash",
|
|
)
|
|
args = parser.parse_args()
|
|
|
|
sys.exit(main(args.dst_dir, args.version_string, args.commit_hash))
|