Skip to content

Commit 1565146

Browse files
authored
Update copy-libs.sh
1 parent 8a555d8 commit 1565146

File tree

1 file changed

+74
-68
lines changed

1 file changed

+74
-68
lines changed

tools/copy-libs.sh

Lines changed: 74 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ PIO_LD_FLAGS="-flto "
8080
PIO_LD_FUNCS=""
8181
PIO_LD_SCRIPTS=""
8282

83+
# Variable für Include-Verkürzung
84+
SHORTENED_INCLUDES=""
85+
8386
TOOLCHAIN_PREFIX=""
8487
if [ "$IS_XTENSA" = "y" ]; then
8588
TOOLCHAIN="xtensa-$IDF_TARGET-elf"
@@ -316,23 +319,66 @@ done
316319
# END OF DATA EXTRACTION FROM CMAKE
317320
#
318321

322+
# SAMMLE INCLUDE-PFADE FÜR VERKÜRZUNG (VOR der pioarduino-build.py Generierung)
323+
set -- $INCLUDES
324+
for item; do
325+
if [[ "$item" != $PWD ]]; then
326+
ipath="$item"
327+
fname=`basename "$ipath"`
328+
dname=`basename $(dirname "$ipath")`
329+
if [[ "$fname" == "main" && "$dname" == $(basename "$PWD") ]]; then
330+
continue
331+
fi
332+
while [[ "$dname" != "components" && "$dname" != "managed_components" && "$dname" != "build" ]]; do
333+
ipath=`dirname "$ipath"`
334+
fname=`basename "$ipath"`
335+
dname=`basename $(dirname "$ipath")`
336+
done
337+
if [[ "$fname" == "arduino" ]]; then
338+
continue
339+
fi
340+
if [[ "$fname" == "config" ]]; then
341+
continue
342+
fi
343+
344+
out_sub="${item#*$ipath}"
345+
346+
# SAMMLE FÜR INCLUDE-VERKÜRZUNG
347+
if [ "$out_sub" = "" ]; then
348+
SHORTENED_INCLUDES+=" -iwithprefix/include/$fname"
349+
else
350+
sub_clean="${out_sub#/}" # Entferne führenden Slash
351+
SHORTENED_INCLUDES+=" -iwithprefix/include/$fname/$sub_clean"
352+
fi
353+
fi
354+
done
355+
319356
mkdir -p "$AR_SDK"
320357

321358
# start generation of pioarduino-build.py
322359
AR_PLATFORMIO_PY="$AR_SDK/pioarduino-build.py"
323360
cat configs/pio_start.txt > "$AR_PLATFORMIO_PY"
324361

325-
# Sammle Include-Pfade für Verkürzung
326-
SHORTENED_INCLUDES=""
327-
362+
# ASFLAGS mit Include-Verkürzung - KORRIGIERT
328363
echo " ASFLAGS=[" >> "$AR_PLATFORMIO_PY"
329364
if [ "$IS_XTENSA" = "y" ]; then
330-
echo " \"-mlongcalls\"" >> "$AR_PLATFORMIO_PY"
365+
echo " \"-mlongcalls\"," >> "$AR_PLATFORMIO_PY"
331366
else
332-
echo " \"-march=rv32imc\"" >> "$AR_PLATFORMIO_PY"
367+
echo " \"-march=rv32imc\"," >> "$AR_PLATFORMIO_PY"
368+
fi
369+
370+
# Füge Include-Verkürzung direkt hinzu - KORRIGIERT
371+
if [[ -n "$SHORTENED_INCLUDES" ]]; then
372+
echo " \"-iprefix\", join(FRAMEWORK_DIR, \"tools\", \"sdk\", \"$IDF_TARGET\")," >> "$AR_PLATFORMIO_PY"
373+
# KORREKT: Verwende array statt while-loop
374+
IFS=' ' read -ra shortened_array <<< "$SHORTENED_INCLUDES"
375+
for flag in "${shortened_array[@]}"; do
376+
if [[ -n "$flag" ]]; then
377+
echo " \"$flag\"," >> "$AR_PLATFORMIO_PY"
378+
fi
379+
done
333380
fi
334381

335-
# Include-Verkürzung wird später hinzugefügt
336382
echo " ]," >> "$AR_PLATFORMIO_PY"
337383
echo "" >> "$AR_PLATFORMIO_PY"
338384

@@ -369,13 +415,25 @@ echo " \"$last_item\"" >> "$AR_PLATFORMIO_PY"
369415
echo " ]," >> "$AR_PLATFORMIO_PY"
370416
echo "" >> "$AR_PLATFORMIO_PY"
371417

418+
# CCFLAGS mit Include-Verkürzung - KORRIGIERT
372419
echo " CCFLAGS=[" >> "$AR_PLATFORMIO_PY"
373420
set -- $PIO_CC_FLAGS
374421
for item; do
375422
echo " \"$item\"," >> "$AR_PLATFORMIO_PY"
376423
done
377424

378-
# Include-Verkürzung wird später hinzugefügt
425+
# Füge Include-Verkürzung direkt hinzu - KORRIGIERT
426+
if [[ -n "$SHORTENED_INCLUDES" ]]; then
427+
echo " \"-iprefix\", join(FRAMEWORK_DIR, \"tools\", \"sdk\", \"$IDF_TARGET\")," >> "$AR_PLATFORMIO_PY"
428+
# KORREKT: Verwende array statt while-loop
429+
IFS=' ' read -ra shortened_array <<< "$SHORTENED_INCLUDES"
430+
for flag in "${shortened_array[@]}"; do
431+
if [[ -n "$flag" ]]; then
432+
echo " \"$flag\"," >> "$AR_PLATFORMIO_PY"
433+
fi
434+
done
435+
fi
436+
379437
echo " \"-MMD\"" >> "$AR_PLATFORMIO_PY"
380438
echo " ]," >> "$AR_PLATFORMIO_PY"
381439
echo "" >> "$AR_PLATFORMIO_PY"
@@ -398,12 +456,16 @@ echo " '-Wl,-Map=\"%s\"' % join(\"\${BUILD_DIR}\", \"\${PROGNAME}.map\")"
398456
echo " ]," >> "$AR_PLATFORMIO_PY"
399457
echo "" >> "$AR_PLATFORMIO_PY"
400458

401-
# include dirs - HIER WIRD DIE VERKÜRZUNG IMPLEMENTIERT
402-
REL_INC=""
459+
# CPPPATH - NUR Arduino Core (KEINE Framework-Headers!)
403460
echo " CPPPATH=[" >> "$AR_PLATFORMIO_PY"
461+
echo " join($PIO_SDK, board_config.get(\"build.arduino.memory_type\", (board_config.get(\"build.flash_mode\", \"dio\") + \"_qspi\")), \"include\")," >> "$AR_PLATFORMIO_PY"
462+
echo " join(FRAMEWORK_DIR, \"cores\", board_config.get(\"build.core\"))" >> "$AR_PLATFORMIO_PY"
463+
echo " ]," >> "$AR_PLATFORMIO_PY"
464+
echo "" >> "$AR_PLATFORMIO_PY"
404465

466+
# KOPIERE HEADER-DATEIEN (nach der Include-Sammlung)
467+
REL_INC=""
405468
set -- $INCLUDES
406-
407469
for item; do
408470
if [[ "$item" != $PWD ]]; then
409471
ipath="$item"
@@ -426,16 +488,9 @@ for item; do
426488

427489
out_sub="${item#*$ipath}"
428490
out_cpath="$AR_SDK/include/$fname$out_sub"
491+
REL_INC+="-iwithprefixbefore $fname$out_sub "
429492

430-
# Sammle für Include-Verkürzung: Konvertiere zu relativem Pfad
431-
if [ "$out_sub" = "" ]; then
432-
SHORTENED_INCLUDES+=" -iwithprefix/include/$fname"
433-
else
434-
sub_clean="${out_sub#/}" # Entferne führenden Slash
435-
SHORTENED_INCLUDES+=" -iwithprefix/include/$fname/$sub_clean"
436-
fi
437-
438-
# Headers kopieren (wie bisher)
493+
# KOPIERE HEADER-DATEIEN
439494
for f in `find "$item" -name '*.h'`; do
440495
rel_f=${f#*$item}
441496
rel_p=${rel_f%/*}
@@ -462,55 +517,6 @@ for item; do
462517
fi
463518
done
464519

465-
# Nur Arduino Core und Memory-Variant in CPPPATH (NICHT die Framework-Headers!)
466-
echo " join($PIO_SDK, board_config.get(\"build.arduino.memory_type\", (board_config.get(\"build.flash_mode\", \"dio\") + \"_qspi\")), \"include\")," >> "$AR_PLATFORMIO_PY"
467-
echo " join(FRAMEWORK_DIR, \"cores\", board_config.get(\"build.core\"))" >> "$AR_PLATFORMIO_PY"
468-
echo " ]," >> "$AR_PLATFORMIO_PY"
469-
echo "" >> "$AR_PLATFORMIO_PY"
470-
471-
# JETZT: Füge Include-Verkürzung zu CCFLAGS und ASFLAGS hinzu
472-
if [[ -n "$SHORTENED_INCLUDES" ]]; then
473-
# Aktualisiere CCFLAGS
474-
sed -i '/CCFLAGS=\[/,/\]/{
475-
/"-MMD"/i\
476-
"-iprefix", join(FRAMEWORK_DIR, "tools", "sdk", "'$IDF_TARGET'"),
477-
}' "$AR_PLATFORMIO_PY"
478-
479-
# Füge iwithprefix Flags hinzu
480-
IFS=' ' read -ra shortened_array <<< "$SHORTENED_INCLUDES"
481-
for flag in "${shortened_array[@]}"; do
482-
if [[ -n "$flag" ]]; then
483-
sed -i '/CCFLAGS=\[/,/\]/{
484-
/"-MMD"/i\
485-
"'$flag'",
486-
}' "$AR_PLATFORMIO_PY"
487-
fi
488-
done
489-
490-
# Aktualisiere ASFLAGS
491-
if [ "$IS_XTENSA" = "y" ]; then
492-
sed -i '/ASFLAGS=\[/,/\]/{
493-
/"-mlongcalls"/a\
494-
"-iprefix", join(FRAMEWORK_DIR, "tools", "sdk", "'$IDF_TARGET'"),
495-
}' "$AR_PLATFORMIO_PY"
496-
else
497-
sed -i '/ASFLAGS=\[/,/\]/{
498-
/"-march=rv32imc"/a\
499-
"-iprefix", join(FRAMEWORK_DIR, "tools", "sdk", "'$IDF_TARGET'"),
500-
}' "$AR_PLATFORMIO_PY"
501-
fi
502-
503-
# Füge iwithprefix Flags zu ASFLAGS hinzu
504-
for flag in "${shortened_array[@]}"; do
505-
if [[ -n "$flag" ]]; then
506-
sed -i '/ASFLAGS=\[/,/\]/{
507-
$i\
508-
"'$flag'",
509-
}' "$AR_PLATFORMIO_PY"
510-
fi
511-
done
512-
fi
513-
514520
AR_LIBS="$LD_LIBS"
515521
PIO_LIBS=""
516522
set -- $LD_LIBS

0 commit comments

Comments
 (0)