diff --git a/components/bootloader/project_include.cmake b/components/bootloader/project_include.cmake index cdb18a9fa..4b0137e94 100644 --- a/components/bootloader/project_include.cmake +++ b/components/bootloader/project_include.cmake @@ -15,9 +15,10 @@ set(bootloader_binary_files externalproject_add(bootloader # TODO: support overriding the bootloader in COMPONENT_PATHS - SOURCE_DIR "${IDF_PATH}/components/bootloader/subproject" + SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/subproject" BINARY_DIR "${bootloader_build_dir}" - CMAKE_ARGS -DSDKCONFIG=${SDKCONFIG} -DIDF_PATH=${IDF_PATH} + CMAKE_ARGS -DSDKCONFIG=${SDKCONFIG} -DIDF_PATH=${IDF_PATH} + -DEXTRA_COMPONENT_DIRS=${CMAKE_CURRENT_LIST_DIR} INSTALL_COMMAND "" BUILD_ALWAYS 1 # no easy way around this... BUILD_BYPRODUCTS ${bootloader_binary_files} diff --git a/tools/ci/test_build_system_cmake.sh b/tools/ci/test_build_system_cmake.sh index c679acc5c..5c434ab34 100755 --- a/tools/ci/test_build_system_cmake.sh +++ b/tools/ci/test_build_system_cmake.sh @@ -238,16 +238,13 @@ EOF export PATH="$OLDPATH" rm ./python - print_status "sdkconfig should have contents both files: sdkconfig and sdkconfig.defaults" - idf.py clean > /dev/null; - idf.py fullclean > /dev/null; - rm -f sdkconfig.defaults; - rm -f sdkconfig; - echo "CONFIG_PARTITION_TABLE_OFFSET=0x10000" >> sdkconfig.defaults; - echo "CONFIG_PARTITION_TABLE_TWO_OTA=y" >> sdkconfig; - idf.py reconfigure > /dev/null; - grep "CONFIG_PARTITION_TABLE_OFFSET=0x10000" sdkconfig || failure "The define from sdkconfig.defaults should be into sdkconfig" - grep "CONFIG_PARTITION_TABLE_TWO_OTA=y" sdkconfig || failure "The define from sdkconfig should be into sdkconfig" + print_status "Custom bootloader overrides original" + clean_build_dir + (mkdir components && cd components && cp -r $IDF_PATH/components/bootloader .) + idf.py build + grep "$PWD/components/bootloader/subproject/main/bootloader_start.c" build/bootloader/compile_commands.json \ + || failure "Custom bootloader source files should be built instead of the original's" + rm -rf components print_status "All tests completed" if [ -n "${FAILURES}" ]; then