Open
Description
A board header file may include another (secondary) header file.
Providing the secondary header file is in pico-sdk/src/boards/include, then everything works.
However if the secondary header file is in a user defined folder, which is specified in PICO_BOARD_HEADER_DIRS, then the compilation of compile_time_choice.S fails:
[ 1%] Building ASM object pico-sdk/src/rp2350/boot_stage2/CMakeFiles/bs2_default.dir/compile_time_choice.S.o
cd /home/pi/pico/PicoBB/console/pico_w/build/pico-sdk/src/rp2350/boot_stage2 && /usr/bin/arm-none-eabi-gcc -DLIB_BOOT_STAGE2_HEADERS=1 -DPICO_32BIT=1 -DPICO_BOARD=\"vgaboard_cut_2w\" -DPICO_BUILD=1 -DPICO_FLASH_SIZE_BYTES="(2 * 1024 * 1024)" -DPICO_NO_HARDWARE=0 -DPICO_ON_DEVICE=1 -DPICO_RP2350=1 -I/home/pi/pico/pico-sdk/src/rp2350/boot_stage2/asminclude -isystem /home/pi/pico/pico-sdk/src/rp2350/hardware_regs/include -isystem /home/pi/pico/pico-sdk/src/rp2_common/hardware_base/include -isystem /home/pi/pico/pico-sdk/src/common/pico_base_headers/include -isystem /home/pi/pico/PicoBB/console/pico_w/build/generated/pico_base -isystem /home/pi/pico/pico-sdk/src/boards/include -isystem /home/pi/pico/pico-sdk/src/rp2350/pico_platform/include -isystem /home/pi/pico/pico-sdk/src/rp2_common/pico_platform_compiler/include -isystem /home/pi/pico/pico-sdk/src/rp2_common/pico_platform_panic/include -isystem /home/pi/pico/pico-sdk/src/rp2_common/pico_platform_sections/include -isystem /home/pi/pico/pico-sdk/src/rp2_common/hardware_dcp/include -isystem /home/pi/pico/pico-sdk/src/rp2350/hardware_structs/include -isystem /home/pi/pico/pico-sdk/src/rp2_common/hardware_rcp/include -isystem /home/pi/pico/pico-sdk/src/rp2350/boot_stage2/include -mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse -g -O3 -DNDEBUG -o CMakeFiles/bs2_default.dir/compile_time_choice.S.o -c /home/pi/pico/pico-sdk/src/rp2350/boot_stage2/compile_time_choice.S
In file included from /home/pi/pico/PicoBB/console/pico_w/build/generated/pico_base/pico/config_autogen.h:7,
from /home/pi/pico/pico-sdk/src/common/pico_base_headers/include/pico/config.h:19,
from /home/pi/pico/pico-sdk/src/rp2350/boot_stage2/include/boot_stage2/config.h:12,
from /home/pi/pico/pico-sdk/src/rp2350/boot_stage2/compile_time_choice.S:11:
/home/pi/pico/PicoBB/boards/vgaboard_cut_2w.h:91:10: fatal error: boards/pico2+w.h: No such file or directory
#include "boards/pico2+w.h"
^~~~~~~~~~~~~~~~~~
compilation terminated.
My user defined directory:
pi@raspberrypi:~/pico/PicoBB/console/pico_w $ ls ../../boards/
pico2+w.h vgaboard_cut_2w.h vgaboard_cut.h vgaboard_sd.h vgaboard_serial.h
pico+w.h vgaboard_cut_2w.h~ vgaboard_cut_w.h vgaboard_sd_w.h vgaboard_serial_w.h
config_autogen.h
// AUTOGENERATED FROM PICO_CONFIG_HEADER_FILES and then PICO_<PLATFORM>_CONFIG_HEADER_FILES
// DO NOT EDIT!
// based on PICO_CONFIG_HEADER_FILES:
#include "/home/pi/pico/PicoBB/boards/vgaboard_cut_2w.h"
#include "/home/pi/pico/pico-sdk/src/rp2_common/cmsis/include/cmsis/rename_exceptions.h"
// based on PICO_RP2350_ARM_S_CONFIG_HEADER_FILES: