From: Renz Christian Bagaporo Date: Wed, 15 May 2019 03:40:57 +0000 (+0800) Subject: cmake: fix custom bootloader issue X-Git-Tag: v3.3-rc~55^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8c363321db546b7d5dae71e5cfcbc2892cfb4b4f;p=esp-idf cmake: fix custom bootloader issue Issue is that when users creates a custom bootloader from $IDF_PATH/components/bootloader. Parent project build uses the copy but bootloader subproject build uses the original still. The issue is solved by passing the custom bootloader as extra component directory so bootloader build knows to use the new copy (itself) in the build. --- diff --git a/components/bootloader/project_include.cmake b/components/bootloader/project_include.cmake index e08c18f7dd..209957c978 100644 --- a/components/bootloader/project_include.cmake +++ b/components/bootloader/project_include.cmake @@ -49,10 +49,11 @@ if((NOT CONFIG_SECURE_BOOT_ENABLED) OR CONFIG_SECURE_BOOTLOADER_ONE_TIME_FLASH) 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} -DSECURE_BOOT_SIGNING_KEY=${secure_boot_signing_key} + -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/components/bootloader/subproject/CMakeLists.txt b/components/bootloader/subproject/CMakeLists.txt index aad0ff99eb..9459c13420 100644 --- a/components/bootloader/subproject/CMakeLists.txt +++ b/components/bootloader/subproject/CMakeLists.txt @@ -27,9 +27,9 @@ target_linker_script(bootloader.elf # as cmake won't attach linker args to a header-only library, attach # linker args directly to the bootloader.elf set(ESP32_BOOTLOADER_LINKER_SCRIPTS - "../../esp32/ld/esp32.rom.ld" - "../../esp32/ld/esp32.rom.spiram_incompatible_fns.ld" - "../../esp32/ld/esp32.peripherals.ld") + "${IDF_PATH}/components/esp32/ld/esp32.rom.ld" + "${IDF_PATH}/components/esp32/ld/esp32.rom.spiram_incompatible_fns.ld" + "${IDF_PATH}/components/esp32/ld/esp32.peripherals.ld") target_linker_script(bootloader.elf ${ESP32_BOOTLOADER_LINKER_SCRIPTS})