diff --git a/build.sh b/build.sh index 9bceda087..7ce1fb04a 100755 --- a/build.sh +++ b/build.sh @@ -305,17 +305,6 @@ if [ "$BUILD_TYPE" = "all" ]; then if [ $? -ne 0 ]; then exit 1; fi fi -# Generate PlatformIO manifest file -if [ "$BUILD_TYPE" = "all" ]; then - echo "* Generating PlatformIO manifest file..." - pushd $IDF_PATH - ibr=$(git describe --all 2>/dev/null) - ic=$(git -C "$IDF_PATH" rev-parse --short HEAD) - popd - python3 ./tools/gen_platformio_manifest.py -o "$TOOLS_JSON_OUT/" -s "$ibr" -c "$ic" - if [ $? -ne 0 ]; then exit 1; fi -fi - # copy everything to arduino-esp32 installation if [ $COPY_OUT -eq 1 ] && [ -d "$ESP32_ARDUINO" ]; then echo "* Copying to Arduino..." diff --git a/tools/copy-libs.sh b/tools/copy-libs.sh index db3d85a6c..9942241ae 100755 --- a/tools/copy-libs.sh +++ b/tools/copy-libs.sh @@ -67,14 +67,6 @@ LD_LIBS_SEARCH="" LD_SCRIPTS="" LD_SCRIPT_DIRS="" -PIO_CC_FLAGS="" -PIO_C_FLAGS="" -PIO_CXX_FLAGS="" -PIO_AS_FLAGS="" -PIO_LD_FLAGS="" -PIO_LD_FUNCS="" -PIO_LD_SCRIPTS="" - TOOLCHAIN_PREFIX="" if [ "$IS_XTENSA" = "y" ]; then TOOLCHAIN="xtensa-$IDF_TARGET-elf" @@ -120,8 +112,6 @@ for item in "${@:2:${#@}-5}"; do if [[ "${item:2:7}" != "ARDUINO" ]] && [[ "$item" != "-DESP32=ESP32" ]]; then #skip ARDUINO defines DEFINES+="$item " fi - elif [ "$prefix" = "-O" ]; then - PIO_CC_FLAGS+="$item " elif [[ "$item" != "-Wall" && "$item" != "-Werror=all" && "$item" != "-Wextra" ]]; then if [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" && "${item:0:20}" != "-fdiagnostics-color=" && "${item:0:19}" != "-fdebug-prefix-map=" ]]; then C_FLAGS+="$item " @@ -139,11 +129,6 @@ for item in "${@:2:${#@}-5}"; do if [[ "$prefix" != "-I" && "$prefix" != "-D" && "$item" != "-Wall" && "$item" != "-Werror=all" && "$item" != "-Wextra" && "$prefix" != "-O" ]]; then if [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" && "${item:0:20}" != "-fdiagnostics-color=" && "${item:0:19}" != "-fdebug-prefix-map=" ]]; then AS_FLAGS+="$item " - if [[ $C_FLAGS == *"$item"* ]]; then - PIO_CC_FLAGS+="$item " - else - PIO_AS_FLAGS+="$item " - fi fi fi done @@ -158,20 +143,11 @@ for item in "${@:2:${#@}-5}"; do if [[ "$prefix" != "-I" && "$prefix" != "-D" && "$item" != "-Wall" && "$item" != "-Werror=all" && "$item" != "-Wextra" && "$prefix" != "-O" ]]; then if [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" && "${item:0:20}" != "-fdiagnostics-color=" && "${item:0:19}" != "-fdebug-prefix-map=" ]]; then CPP_FLAGS+="$item " - if [[ $PIO_CC_FLAGS != *"$item"* ]]; then - PIO_CXX_FLAGS+="$item " - fi fi fi done set -- $C_FLAGS -for item; do - if [[ $PIO_CC_FLAGS != *"$item"* ]]; then - PIO_C_FLAGS+="$item " - fi -done - #parse link command to extract libs and flags add_next=0 is_dir=0 @@ -195,7 +171,6 @@ else fi if [ "$IDF_TARGET" = "esp32" ]; then LD_SCRIPTS+="-T esp32.rom.redefined.ld " - PIO_LD_SCRIPTS+="esp32.rom.redefined.ld " fi set -- $str for item; do @@ -230,7 +205,6 @@ for item; do is_dir=0 elif [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" && "${item:0:19}" != "-fdebug-prefix-map=" && "${item:0:17}" != "-Wl,--start-group" && "${item:0:15}" != "-Wl,--end-group" ]]; then LD_FLAGS+="$item " - PIO_LD_FLAGS+="$item " fi fi else @@ -242,10 +216,8 @@ for item; do elif [ "$is_script" = "1" ]; then is_script=0 LD_SCRIPTS+="$item " - PIO_LD_SCRIPTS+="$item " else LD_FLAGS+="$item " - PIO_LD_FUNCS+="$item " fi else if [ "${item:${#item}-2:2}" = ".a" ]; then @@ -313,83 +285,8 @@ done mkdir -p "$AR_SDK" -# start generation of platformio-build.py -AR_PLATFORMIO_PY="$AR_SDK/platformio-build.py" -cat configs/pio_start.txt > "$AR_PLATFORMIO_PY" - -echo " ASFLAGS=[" >> "$AR_PLATFORMIO_PY" -if [ "$IS_XTENSA" = "y" ]; then - echo " \"-mlongcalls\"" >> "$AR_PLATFORMIO_PY" -else - echo " \"-march=rv32imc\"" >> "$AR_PLATFORMIO_PY" -fi -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" - -echo " ASPPFLAGS=[" >> "$AR_PLATFORMIO_PY" -set -- $PIO_AS_FLAGS -for item; do - echo " \"$item\"," >> "$AR_PLATFORMIO_PY" -done -echo " \"-x\", \"assembler-with-cpp\"" >> "$AR_PLATFORMIO_PY" -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" - -echo " CFLAGS=[" >> "$AR_PLATFORMIO_PY" -set -- $PIO_C_FLAGS -last_item="${@: -1}" -for item in "${@:0:${#@}}"; do - if [ "${item:0:1}" != "/" ]; then - echo " \"$item\"," >> "$AR_PLATFORMIO_PY" - fi -done -echo " \"$last_item\"" >> "$AR_PLATFORMIO_PY" -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" - -echo " CXXFLAGS=[" >> "$AR_PLATFORMIO_PY" -set -- $PIO_CXX_FLAGS -last_item="${@: -1}" -for item in "${@:0:${#@}}"; do - if [ "${item:0:1}" != "/" ]; then - echo " \"$item\"," >> "$AR_PLATFORMIO_PY" - fi -done -echo " \"$last_item\"" >> "$AR_PLATFORMIO_PY" -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" - -echo " CCFLAGS=[" >> "$AR_PLATFORMIO_PY" -set -- $PIO_CC_FLAGS -for item; do - echo " \"$item\"," >> "$AR_PLATFORMIO_PY" -done -echo " \"-MMD\"" >> "$AR_PLATFORMIO_PY" -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" - -echo " LINKFLAGS=[" >> "$AR_PLATFORMIO_PY" -set -- $PIO_LD_FLAGS -for item; do - echo " \"$item\"," >> "$AR_PLATFORMIO_PY" -done -set -- $PIO_LD_SCRIPTS -for item; do - echo " \"-T\", \"$item\"," >> "$AR_PLATFORMIO_PY" -done -set -- $PIO_LD_FUNCS -for item; do - echo " \"-u\", \"$item\"," >> "$AR_PLATFORMIO_PY" -done -echo " '-Wl,-Map=\"%s\"' % join(\"\${BUILD_DIR}\", \"\${PROGNAME}.map\")" >> "$AR_PLATFORMIO_PY" - -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" - # include dirs REL_INC="" -echo " CPPPATH=[" >> "$AR_PLATFORMIO_PY" - set -- $INCLUDES for item; do @@ -415,13 +312,6 @@ for item; do out_sub="${item#*$ipath}" out_cpath="$AR_SDK/include/$fname$out_sub" REL_INC+="-iwithprefixbefore $fname$out_sub " - if [ "$out_sub" = "" ]; then - echo " join($PIO_SDK, \"include\", \"$fname\")," >> "$AR_PLATFORMIO_PY" - else - pio_sub="${out_sub:1}" - pio_sub=`echo $pio_sub | sed 's/\//\\", \\"/g'` - echo " join($PIO_SDK, \"include\", \"$fname\", \"$pio_sub\")," >> "$AR_PLATFORMIO_PY" - fi for f in `find "$item" -name '*.h'`; do rel_f=${f#*$item} rel_p=${rel_f%/*} @@ -447,58 +337,13 @@ for item; do fi fi done -echo " join($PIO_SDK, board_config.get(\"build.arduino.memory_type\", (board_config.get(\"build.flash_mode\", \"dio\") + \"_$OCT_PSRAM\")), \"include\")," >> "$AR_PLATFORMIO_PY" -echo " join(FRAMEWORK_DIR, \"cores\", board_config.get(\"build.core\"))" >> "$AR_PLATFORMIO_PY" -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" AR_LIBS="$LD_LIBS" -PIO_LIBS="" -set -- $LD_LIBS -for item; do - if [ "$PIO_LIBS" != "" ]; then - PIO_LIBS+=", " - fi - PIO_LIBS+="\"$item\"" -done - set -- $LD_LIB_FILES for item; do cp "$item" "$AR_SDK/lib/" done -echo " LIBPATH=[" >> "$AR_PLATFORMIO_PY" -echo " join($PIO_SDK, \"lib\")," >> "$AR_PLATFORMIO_PY" -echo " join($PIO_SDK, \"ld\")," >> "$AR_PLATFORMIO_PY" -echo " join($PIO_SDK, board_config.get(\"build.arduino.memory_type\", (board_config.get(\"build.flash_mode\", \"dio\") + \"_$OCT_PSRAM\")))" >> "$AR_PLATFORMIO_PY" -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" - -echo " LIBS=[" >> "$AR_PLATFORMIO_PY" -echo " $PIO_LIBS" >> "$AR_PLATFORMIO_PY" -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" - -echo " CPPDEFINES=[" >> "$AR_PLATFORMIO_PY" -set -- $DEFINES -for item; do - item="${item:2}" #remove -D - if [[ $item == *"="* ]]; then - item=(${item//=/ }) - re='^[+-]?[0-9]+([.][0-9]+)?$' - if [[ ${item[1]} =~ $re ]]; then - echo " (\"${item[0]}\", ${item[1]})," >> "$AR_PLATFORMIO_PY" - else - echo " (\"${item[0]}\", '${item[1]}')," >> "$AR_PLATFORMIO_PY" - fi - else - echo " \"$item\"," >> "$AR_PLATFORMIO_PY" - fi -done - -# end generation of platformio-build.py -cat configs/pio_end.txt >> "$AR_PLATFORMIO_PY" - # replace double backslashes with single one DEFINES=`echo "$DEFINES" | tr -s '\'` diff --git a/tools/gen_platformio_manifest.py b/tools/gen_platformio_manifest.py deleted file mode 100644 index f02218826..000000000 --- a/tools/gen_platformio_manifest.py +++ /dev/null @@ -1,86 +0,0 @@ -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-lib-builder", - }, -} - - -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(?P0|[1-9]\d*)\.(?P0|[1-9]\d*)\.*(?P0|[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))