mirror of
https://github.com/espressif/esp-idf
synced 2025-03-10 01:29:21 -04:00
49 lines
2.1 KiB
CMake
49 lines
2.1 KiB
CMake
idf_build_get_property(target IDF_TARGET)
|
|
|
|
# Function to add custom commands for copying stub files
|
|
function(add_copy_command src dest)
|
|
add_custom_command(
|
|
OUTPUT ${dest}
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dest}
|
|
DEPENDS ${src}
|
|
COMMENT "Copying ${src} to ${dest}"
|
|
VERBATIM
|
|
)
|
|
endfunction()
|
|
|
|
set(openocd_path $ENV{OPENOCD_SCRIPTS})
|
|
|
|
if(openocd_path)
|
|
set(stub_bin_path ${openocd_path}/../espressif/stub_bins)
|
|
if(IS_DIRECTORY ${stub_bin_path} AND IS_DIRECTORY ${stub_bin_path}/${target})
|
|
set(code_bin "${stub_bin_path}/${target}/stub_flash_idf_binary_code.inc")
|
|
set(data_bin "${stub_bin_path}/${target}/stub_flash_idf_binary_data.inc")
|
|
set(img_header "${stub_bin_path}/${target}/stub_flash_idf_image.h")
|
|
if(EXISTS ${code_bin} AND EXISTS ${data_bin} AND EXISTS ${img_header})
|
|
set(dest_dir "${CMAKE_BINARY_DIR}/openocd_stub_bins")
|
|
set(output_code_bin "${dest_dir}/stub_flash_idf_binary_code.inc")
|
|
set(output_data_bin "${dest_dir}/stub_flash_idf_binary_data.inc")
|
|
set(output_img_header "${dest_dir}/stub_flash_idf_image.h")
|
|
add_copy_command(${code_bin} ${output_code_bin})
|
|
add_copy_command(${data_bin} ${output_data_bin})
|
|
add_copy_command(${img_header} ${output_img_header})
|
|
add_custom_target(copy_stub_bins ALL
|
|
DEPENDS ${output_code_bin} ${output_data_bin} ${output_img_header}
|
|
COMMENT "Copying OpenOCD stub binaries and image header"
|
|
)
|
|
add_dependencies(${COMPONENT_LIB} copy_stub_bins)
|
|
endif()
|
|
else()
|
|
message(FATAL_ERROR
|
|
"OpenOCD stub binary files couldn't be found! "
|
|
"To bypass this error, disable the CONFIG_ESP_DEBUG_INCLUDE_OCD_STUB_BINS option")
|
|
endif()
|
|
|
|
set(srcs "openocd_stub_flasher.c")
|
|
add_prefix(srcs "${CMAKE_CURRENT_LIST_DIR}/" "${srcs}")
|
|
target_sources(${COMPONENT_LIB} PRIVATE ${srcs})
|
|
target_include_directories(${COMPONENT_LIB} PRIVATE ${dest_dir})
|
|
target_link_libraries(${COMPONENT_LIB} INTERFACE "-u esp_system_include_openocd_stub_binaries")
|
|
|
|
endif()
|