@@ -63,14 +63,6 @@ LD_LIBS_SEARCH=""
6363LD_SCRIPTS=" "
6464LD_SCRIPT_DIRS=" "
6565
66- PIO_CC_FLAGS=" "
67- PIO_C_FLAGS=" "
68- PIO_CXX_FLAGS=" "
69- PIO_AS_FLAGS=" "
70- PIO_LD_FLAGS=" "
71- PIO_LD_FUNCS=" "
72- PIO_LD_SCRIPTS=" "
73-
7466TOOLCHAIN_PREFIX=" "
7567if [ " $IS_XTENSA " = " y" ]; then
7668 TOOLCHAIN=" xtensa-$IDF_TARGET -elf"
@@ -105,8 +97,6 @@ for item in "${@:2:${#@}-5}"; do
10597 if [[ " ${item: 2: 7} " != " ARDUINO" ]] && [[ " $item " != " -DESP32=ESP32" ]]; then # skip ARDUINO defines
10698 DEFINES+=" $item "
10799 fi
108- elif [ " $prefix " = " -O" ]; then
109- PIO_CC_FLAGS+=" $item "
110100 elif [[ " $item " != " -Wall" && " $item " != " -Werror=all" && " $item " != " -Wextra" ]]; then
111101 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
112102 C_FLAGS+=" $item "
@@ -124,11 +114,6 @@ for item in "${@:2:${#@}-5}"; do
124114 if [[ " $prefix " != " -I" && " $prefix " != " -D" && " $item " != " -Wall" && " $item " != " -Werror=all" && " $item " != " -Wextra" && " $prefix " != " -O" ]]; then
125115 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
126116 AS_FLAGS+=" $item "
127- if [[ $C_FLAGS == * " $item " * ]]; then
128- PIO_CC_FLAGS+=" $item "
129- else
130- PIO_AS_FLAGS+=" $item "
131- fi
132117 fi
133118 fi
134119done
@@ -143,20 +128,10 @@ for item in "${@:2:${#@}-5}"; do
143128 if [[ " $prefix " != " -I" && " $prefix " != " -D" && " $item " != " -Wall" && " $item " != " -Werror=all" && " $item " != " -Wextra" && " $prefix " != " -O" ]]; then
144129 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
145130 CPP_FLAGS+=" $item "
146- if [[ $PIO_CC_FLAGS != * " $item " * ]]; then
147- PIO_CXX_FLAGS+=" $item "
148- fi
149131 fi
150132 fi
151133done
152134
153- set -- $C_FLAGS
154- for item; do
155- if [[ $PIO_CC_FLAGS != * " $item " * ]]; then
156- PIO_C_FLAGS+=" $item "
157- fi
158- done
159-
160135# parse link command to extract libs and flags
161136add_next=0
162137is_dir=0
180155fi
181156if [ " $IDF_TARGET " = " esp32" ]; then
182157 LD_SCRIPTS+=" -T esp32.rom.redefined.ld "
183- PIO_LD_SCRIPTS+=" esp32.rom.redefined.ld "
184158fi
185159set -- $str
186160for item; do
@@ -213,7 +187,6 @@ for item; do
213187 is_dir=0
214188 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
215189 LD_FLAGS+=" $item "
216- PIO_LD_FLAGS+=" $item "
217190 fi
218191 fi
219192 else
@@ -225,10 +198,8 @@ for item; do
225198 elif [ " $is_script " = " 1" ]; then
226199 is_script=0
227200 LD_SCRIPTS+=" $item "
228- PIO_LD_SCRIPTS+=" $item "
229201 else
230202 LD_FLAGS+=" $item "
231- PIO_LD_FUNCS+=" $item "
232203 fi
233204 else
234205 if [ " ${item: ${# item} -2: 2} " = " .a" ]; then
@@ -288,194 +259,6 @@ done
288259
289260mkdir -p " $AR_SDK "
290261
291- # start generation of platformio-build.py
292- AR_PLATFORMIO_PY=" $AR_SDK /platformio-build.py"
293- cat configs/pio_start.txt > " $AR_PLATFORMIO_PY "
294-
295- echo " ASFLAGS=[" >> " $AR_PLATFORMIO_PY "
296- if [ " $IS_XTENSA " = " y" ]; then
297- echo " \" -mlongcalls\" " >> " $AR_PLATFORMIO_PY "
298- else
299- echo " \" -march=rv32imc\" " >> " $AR_PLATFORMIO_PY "
300- fi
301- echo " ]," >> " $AR_PLATFORMIO_PY "
302- echo " " >> " $AR_PLATFORMIO_PY "
303-
304- echo " ASPPFLAGS=[" >> " $AR_PLATFORMIO_PY "
305- set -- $PIO_AS_FLAGS
306- for item; do
307- echo " \" $item \" ," >> " $AR_PLATFORMIO_PY "
308- done
309- echo " \" -x\" , \" assembler-with-cpp\" " >> " $AR_PLATFORMIO_PY "
310- echo " ]," >> " $AR_PLATFORMIO_PY "
311- echo " " >> " $AR_PLATFORMIO_PY "
312-
313- echo " CFLAGS=[" >> " $AR_PLATFORMIO_PY "
314- set -- $PIO_C_FLAGS
315- last_item=" ${@: -1} "
316- for item in " ${@: 0: ${#@ } } " ; do
317- if [ " ${item: 0: 1} " != " /" ]; then
318- echo " \" $item \" ," >> " $AR_PLATFORMIO_PY "
319- fi
320- done
321- echo " \" $last_item \" " >> " $AR_PLATFORMIO_PY "
322- echo " ]," >> " $AR_PLATFORMIO_PY "
323- echo " " >> " $AR_PLATFORMIO_PY "
324-
325- echo " CXXFLAGS=[" >> " $AR_PLATFORMIO_PY "
326- set -- $PIO_CXX_FLAGS
327- last_item=" ${@: -1} "
328- for item in " ${@: 0: ${#@ } } " ; do
329- if [ " ${item: 0: 1} " != " /" ]; then
330- echo " \" $item \" ," >> " $AR_PLATFORMIO_PY "
331- fi
332- done
333- echo " \" $last_item \" " >> " $AR_PLATFORMIO_PY "
334- echo " ]," >> " $AR_PLATFORMIO_PY "
335- echo " " >> " $AR_PLATFORMIO_PY "
336-
337- echo " CCFLAGS=[" >> " $AR_PLATFORMIO_PY "
338- set -- $PIO_CC_FLAGS
339- for item; do
340- echo " \" $item \" ," >> " $AR_PLATFORMIO_PY "
341- done
342- echo " \" -MMD\" " >> " $AR_PLATFORMIO_PY "
343- echo " ]," >> " $AR_PLATFORMIO_PY "
344- echo " " >> " $AR_PLATFORMIO_PY "
345-
346- echo " LINKFLAGS=[" >> " $AR_PLATFORMIO_PY "
347- set -- $PIO_LD_FLAGS
348- for item; do
349- echo " \" $item \" ," >> " $AR_PLATFORMIO_PY "
350- done
351- set -- $PIO_LD_SCRIPTS
352- for item; do
353- echo " \" -T\" , \" $item \" ," >> " $AR_PLATFORMIO_PY "
354- done
355- set -- $PIO_LD_FUNCS
356- for item; do
357- echo " \" -u\" , \" $item \" ," >> " $AR_PLATFORMIO_PY "
358- done
359- echo " '-Wl,-Map=\" %s\" ' % join(\"\$ {BUILD_DIR}\" , \"\$ {PROGNAME}.map\" )" >> " $AR_PLATFORMIO_PY "
360-
361- echo " ]," >> " $AR_PLATFORMIO_PY "
362- echo " " >> " $AR_PLATFORMIO_PY "
363-
364- # include dirs
365- REL_INC=" "
366- echo " CPPPATH=[" >> " $AR_PLATFORMIO_PY "
367-
368- set -- $INCLUDES
369-
370- for item; do
371- if [[ " $item " != $PWD ]]; then
372- ipath=" $item "
373- fname=` basename " $ipath " `
374- dname=` basename $( dirname " $ipath " ) `
375- if [[ " $fname " == " main" && " $dname " == $( basename " $PWD " ) ]]; then
376- continue
377- fi
378- while [[ " $dname " != " components" && " $dname " != " managed_components" && " $dname " != " build" ]]; do
379- ipath=` dirname " $ipath " `
380- fname=` basename " $ipath " `
381- dname=` basename $( dirname " $ipath " ) `
382- done
383- if [[ " $fname " == " arduino" ]]; then
384- continue
385- fi
386- if [[ " $fname " == " config" ]]; then
387- continue
388- fi
389-
390- out_sub=" ${item#* $ipath } "
391- out_cpath=" $AR_SDK /include/$fname$out_sub "
392- REL_INC+=" -iwithprefixbefore $fname$out_sub "
393- if [ " $out_sub " = " " ]; then
394- echo " join($PIO_SDK , \" include\" , \" $fname \" )," >> " $AR_PLATFORMIO_PY "
395- else
396- pio_sub=" ${out_sub: 1} "
397- pio_sub=` echo $pio_sub | sed ' s/\//\\", \\"/g' `
398- echo " join($PIO_SDK , \" include\" , \" $fname \" , \" $pio_sub \" )," >> " $AR_PLATFORMIO_PY "
399- fi
400- for f in ` find " $item " -name ' *.h' ` ; do
401- rel_f=${f#* $item }
402- rel_p=${rel_f%/* }
403- mkdir -p " $out_cpath$rel_p "
404- cp -n $f " $out_cpath$rel_p /"
405- done
406- for f in ` find " $item " -name ' *.hpp' ` ; do
407- rel_f=${f#* $item }
408- rel_p=${rel_f%/* }
409- mkdir -p " $out_cpath$rel_p "
410- cp -n $f " $out_cpath$rel_p /"
411- done
412- for f in ` find " $item " -name ' *.inc' ` ; do
413- rel_f=${f#* $item }
414- rel_p=${rel_f%/* }
415- mkdir -p " $out_cpath$rel_p "
416- cp -n $f " $out_cpath$rel_p /"
417- done
418- # Temporary measure to fix issues caused by https://github.com/espressif/esp-idf/commit/dc4731101dd567cc74bbe4d0f03afe52b7db9afb#diff-1d2ce0d3989a80830fdf230bcaafb3117f32046d16cf46616ac3d55b4df2a988R17
419- if [[ " $fname " == " bt" && " $out_sub " == " /include/$IDF_TARGET /include" && -f " $ipath /controller/$IDF_TARGET /esp_bt_cfg.h" ]]; then
420- mkdir -p " $AR_SDK /include/$fname /controller/$IDF_TARGET "
421- cp -n " $ipath /controller/$IDF_TARGET /esp_bt_cfg.h" " $AR_SDK /include/$fname /controller/$IDF_TARGET /esp_bt_cfg.h"
422- fi
423- fi
424- done
425- echo " join($PIO_SDK , board_config.get(\" build.arduino.memory_type\" , (board_config.get(\" build.flash_mode\" , \" dio\" ) + \" _$OCT_PSRAM \" )), \" include\" )," >> " $AR_PLATFORMIO_PY "
426- echo " join(FRAMEWORK_DIR, \" cores\" , board_config.get(\" build.core\" ))" >> " $AR_PLATFORMIO_PY "
427- echo " ]," >> " $AR_PLATFORMIO_PY "
428- echo " " >> " $AR_PLATFORMIO_PY "
429-
430- mkdir -p " $AR_SDK /lib"
431-
432- AR_LIBS=" $LD_LIBS "
433- PIO_LIBS=" "
434- set -- $LD_LIBS
435- for item; do
436- if [ " $PIO_LIBS " != " " ]; then
437- PIO_LIBS+=" , "
438- fi
439- PIO_LIBS+=" \" $item \" "
440- done
441-
442- set -- $LD_LIB_FILES
443- for item; do
444- cp " $item " " $AR_SDK /lib/"
445- done
446-
447- echo " LIBPATH=[" >> " $AR_PLATFORMIO_PY "
448- echo " join($PIO_SDK , \" lib\" )," >> " $AR_PLATFORMIO_PY "
449- echo " join($PIO_SDK , \" ld\" )," >> " $AR_PLATFORMIO_PY "
450- echo " join($PIO_SDK , board_config.get(\" build.arduino.memory_type\" , (board_config.get(\" build.flash_mode\" , \" dio\" ) + \" _$OCT_PSRAM \" )))" >> " $AR_PLATFORMIO_PY "
451- echo " ]," >> " $AR_PLATFORMIO_PY "
452- echo " " >> " $AR_PLATFORMIO_PY "
453-
454- echo " LIBS=[" >> " $AR_PLATFORMIO_PY "
455- echo " $PIO_LIBS " >> " $AR_PLATFORMIO_PY "
456- echo " ]," >> " $AR_PLATFORMIO_PY "
457- echo " " >> " $AR_PLATFORMIO_PY "
458-
459- echo " CPPDEFINES=[" >> " $AR_PLATFORMIO_PY "
460- set -- $DEFINES
461- for item; do
462- item=" ${item: 2} " # remove -D
463- if [[ $item == * " =" * ]]; then
464- item=(${item// =/ } )
465- re=' ^[+-]?[0-9]+([.][0-9]+)?$'
466- if [[ ${item[1]} =~ $re ]]; then
467- echo " (\" ${item[0]} \" , ${item[1]} )," >> " $AR_PLATFORMIO_PY "
468- else
469- echo " (\" ${item[0]} \" , '${item[1]} ')," >> " $AR_PLATFORMIO_PY "
470- fi
471- else
472- echo " \" $item \" ," >> " $AR_PLATFORMIO_PY "
473- fi
474- done
475-
476- # end generation of platformio-build.py
477- cat configs/pio_end.txt >> " $AR_PLATFORMIO_PY "
478-
479262# replace double backslashes with single one
480263DEFINES=` echo " $DEFINES " | tr -s ' \' `
481264
0 commit comments