From 3fac2b2ddc333d810d2281b786debe2927784a17 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Fri, 19 Jan 2018 16:00:41 +1100 Subject: [PATCH] cmake: Refactor bootloader_subproject into the bootloader component itself --- .../bootloader/project_include.cmake | 16 ++++++++++------ components/bootloader/subproject/CMakeLists.txt | 3 +-- tools/cmake/project.cmake | 7 +------ 3 files changed, 12 insertions(+), 14 deletions(-) rename tools/cmake/bootloader_subproject.cmake => components/bootloader/project_include.cmake (71%) diff --git a/tools/cmake/bootloader_subproject.cmake b/components/bootloader/project_include.cmake similarity index 71% rename from tools/cmake/bootloader_subproject.cmake rename to components/bootloader/project_include.cmake index c141fadd34..bfefcb8a2a 100644 --- a/tools/cmake/bootloader_subproject.cmake +++ b/components/bootloader/project_include.cmake @@ -1,18 +1,22 @@ +if(IS_BOOTLOADER_BUILD) + return() # don't keep recursing! +endif() + # Glue to build the bootloader subproject binary as an external # cmake project under this one # # -set(bootloader_subproject_build_dir "${CMAKE_BINARY_DIR}/bootloader_subproject") +set(bootloader_build_dir "${CMAKE_BINARY_DIR}/bootloader") set(bootloader_binary_files - "${bootloader_subproject_build_dir}/bootloader.elf" - "${bootloader_subproject_build_dir}/bootloader.bin" - "${bootloader_subproject_build_dir}/bootloader.map" + "${bootloader_build_dir}/bootloader.elf" + "${bootloader_build_dir}/bootloader.bin" + "${bootloader_build_dir}/bootloader.map" ) -ExternalProject_Add(bootloader_subproject +ExternalProject_Add(bootloader # TODO: support overriding the bootloader in COMPONENT_PATHS SOURCE_DIR "${IDF_PATH}/components/bootloader/subproject" - BINARY_DIR "${bootloader_subproject_build_dir}" + BINARY_DIR "${bootloader_build_dir}" CMAKE_ARGS -DSDKCONFIG=${SDKCONFIG} -DIDF_PATH="${IDF_PATH}" INSTALL_COMMAND "" BUILD_ALWAYS 1 # no easy way around this... diff --git a/components/bootloader/subproject/CMakeLists.txt b/components/bootloader/subproject/CMakeLists.txt index 1931392d53..f3cc23ac13 100644 --- a/components/bootloader/subproject/CMakeLists.txt +++ b/components/bootloader/subproject/CMakeLists.txt @@ -12,8 +12,7 @@ set(BOOTLOADER_BUILD 1) set(IS_BOOTLOADER_BUILD 1) # deprecated, use BOOTLOADER_BUILD add_definitions(-DBOOTLOADER_BUILD=1) -set(MAIN_SRCS main/bootloader_start.c - main/flash_qio_mode.c) +set(MAIN_SRCS main/bootloader_start.c) include($ENV{IDF_PATH}/tools/cmake/project.cmake) diff --git a/tools/cmake/project.cmake b/tools/cmake/project.cmake index a37d6fd0c5..e8e3cc7ca6 100644 --- a/tools/cmake/project.cmake +++ b/tools/cmake/project.cmake @@ -70,11 +70,6 @@ idf_add_executable() # # Finish component registration (add cross-dependencies, make -# executable dependent on all components.) +# executable dependent on all components) # components_finish_registration() - -# Define the external target to build the bootloader subproject -if(NOT BOOTLOADER_BUILD) - include(bootloader_subproject) -endif() -- 2.40.0