@@ -80,6 +80,9 @@ PIO_LD_FLAGS="-flto "
80
80
PIO_LD_FUNCS=" "
81
81
PIO_LD_SCRIPTS=" "
82
82
83
+ # Variable für Include-Verkürzung
84
+ SHORTENED_INCLUDES=" "
85
+
83
86
TOOLCHAIN_PREFIX=" "
84
87
if [ " $IS_XTENSA " = " y" ]; then
85
88
TOOLCHAIN=" xtensa-$IDF_TARGET -elf"
@@ -316,23 +319,66 @@ done
316
319
# END OF DATA EXTRACTION FROM CMAKE
317
320
#
318
321
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
+
319
356
mkdir -p " $AR_SDK "
320
357
321
358
# start generation of pioarduino-build.py
322
359
AR_PLATFORMIO_PY=" $AR_SDK /pioarduino-build.py"
323
360
cat configs/pio_start.txt > " $AR_PLATFORMIO_PY "
324
361
325
- # Sammle Include-Pfade für Verkürzung
326
- SHORTENED_INCLUDES=" "
327
-
362
+ # ASFLAGS mit Include-Verkürzung - KORRIGIERT
328
363
echo " ASFLAGS=[" >> " $AR_PLATFORMIO_PY "
329
364
if [ " $IS_XTENSA " = " y" ]; then
330
- echo " \" -mlongcalls\" " >> " $AR_PLATFORMIO_PY "
365
+ echo " \" -mlongcalls\" , " >> " $AR_PLATFORMIO_PY "
331
366
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
333
380
fi
334
381
335
- # Include-Verkürzung wird später hinzugefügt
336
382
echo " ]," >> " $AR_PLATFORMIO_PY "
337
383
echo " " >> " $AR_PLATFORMIO_PY "
338
384
@@ -369,13 +415,25 @@ echo " \"$last_item\"" >> "$AR_PLATFORMIO_PY"
369
415
echo " ]," >> " $AR_PLATFORMIO_PY "
370
416
echo " " >> " $AR_PLATFORMIO_PY "
371
417
418
+ # CCFLAGS mit Include-Verkürzung - KORRIGIERT
372
419
echo " CCFLAGS=[" >> " $AR_PLATFORMIO_PY "
373
420
set -- $PIO_CC_FLAGS
374
421
for item; do
375
422
echo " \" $item \" ," >> " $AR_PLATFORMIO_PY "
376
423
done
377
424
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
+
379
437
echo " \" -MMD\" " >> " $AR_PLATFORMIO_PY "
380
438
echo " ]," >> " $AR_PLATFORMIO_PY "
381
439
echo " " >> " $AR_PLATFORMIO_PY "
@@ -398,12 +456,16 @@ echo " '-Wl,-Map=\"%s\"' % join(\"\${BUILD_DIR}\", \"\${PROGNAME}.map\")"
398
456
echo " ]," >> " $AR_PLATFORMIO_PY "
399
457
echo " " >> " $AR_PLATFORMIO_PY "
400
458
401
- # include dirs - HIER WIRD DIE VERKÜRZUNG IMPLEMENTIERT
402
- REL_INC=" "
459
+ # CPPPATH - NUR Arduino Core (KEINE Framework-Headers!)
403
460
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 "
404
465
466
+ # KOPIERE HEADER-DATEIEN (nach der Include-Sammlung)
467
+ REL_INC=" "
405
468
set -- $INCLUDES
406
-
407
469
for item; do
408
470
if [[ " $item " != $PWD ]]; then
409
471
ipath=" $item "
@@ -426,16 +488,9 @@ for item; do
426
488
427
489
out_sub=" ${item#* $ipath } "
428
490
out_cpath=" $AR_SDK /include/$fname$out_sub "
491
+ REL_INC+=" -iwithprefixbefore $fname$out_sub "
429
492
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
439
494
for f in ` find " $item " -name ' *.h' ` ; do
440
495
rel_f=${f#* $item }
441
496
rel_p=${rel_f%/* }
@@ -462,55 +517,6 @@ for item; do
462
517
fi
463
518
done
464
519
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
-
514
520
AR_LIBS=" $LD_LIBS "
515
521
PIO_LIBS=" "
516
522
set -- $LD_LIBS
0 commit comments