mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
esptool_py: simplify serial tool script
This commit is contained in:
parent
55684fab72
commit
a926039575
@ -49,7 +49,8 @@ if(NOT BOOTLOADER_BUILD)
|
|||||||
set(otatool_py ${python} ${COMPONENT_DIR}/otatool.py)
|
set(otatool_py ${python} ${COMPONENT_DIR}/otatool.py)
|
||||||
|
|
||||||
set(esptool_args "--esptool-args;before=${CONFIG_ESPTOOLPY_BEFORE};after=${CONFIG_ESPTOOLPY_AFTER}")
|
set(esptool_args "--esptool-args;before=${CONFIG_ESPTOOLPY_BEFORE};after=${CONFIG_ESPTOOLPY_AFTER}")
|
||||||
set(otatool_args "--partition-table-file;${PARTITION_CSV_PATH};--partition-table-offset;${PARTITION_TABLE_OFFSET}")
|
set(otatool_args "--partition-table-file;${PARTITION_CSV_PATH}"
|
||||||
|
"--partition-table-offset;${PARTITION_TABLE_OFFSET}")
|
||||||
idf_component_get_property(esptool_py_dir esptool_py COMPONENT_DIR)
|
idf_component_get_property(esptool_py_dir esptool_py COMPONENT_DIR)
|
||||||
|
|
||||||
add_custom_target(read_otadata DEPENDS "${PARTITION_CSV_PATH}"
|
add_custom_target(read_otadata DEPENDS "${PARTITION_CSV_PATH}"
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
# without needing a CMake re-run)
|
# without needing a CMake re-run)
|
||||||
set(ESPPORT $ENV{ESPPORT})
|
set(ESPPORT $ENV{ESPPORT})
|
||||||
if(NOT ESPPORT)
|
if(NOT ESPPORT)
|
||||||
message("Note: ${SERIAL_TOOL} will search for a serial port. To specify a port, set the ESPPORT environment variable.")
|
message("Note: ${SERIAL_TOOL} will search for a serial port. "
|
||||||
|
"To specify a port, set the ESPPORT environment variable.")
|
||||||
else()
|
else()
|
||||||
set(port_arg "-p ${ESPPORT}")
|
set(port_arg "-p ${ESPPORT}")
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
if(NOT IDF_PATH)
|
|
||||||
message(FATAL_ERROR "IDF_PATH not set.")
|
|
||||||
endif()
|
|
||||||
include("${IDF_PATH}/tools/cmake/utilities.cmake")
|
|
||||||
spaces2list(CMD)
|
|
||||||
|
|
||||||
execute_process(COMMAND ${CMD}
|
|
||||||
WORKING_DIRECTORY "${WORKING_DIRECTORY}"
|
|
||||||
RESULT_VARIABLE result
|
|
||||||
)
|
|
||||||
|
|
||||||
if(${result})
|
|
||||||
# No way to have CMake silently fail, unfortunately
|
|
||||||
message(FATAL_ERROR "${SERIAL_TOOL} failed")
|
|
||||||
endif()
|
|
@ -1,19 +1,51 @@
|
|||||||
# A CMake script to run esptool commands from within ninja or make
|
# A CMake script to run serial tool commands supporting ESPPORT and
|
||||||
# or another cmake-based build runner
|
# ESPBAUD environment variables from within ninja or make or another
|
||||||
#
|
# cmake-based build runner.
|
||||||
# (Needed to expand environment variables, for backwards compatibility.)
|
|
||||||
#
|
#
|
||||||
# It is recommended to NOT USE this CMake script if you have the option of
|
# It is recommended to NOT USE this CMake script if you have the option of
|
||||||
# running esptool.py directly. This script exists only for use inside CMake builds.
|
# running the tool directly. This script exists only for use inside CMake builds.
|
||||||
#
|
|
||||||
cmake_minimum_required(VERSION 3.5)
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
|
||||||
|
if(NOT IDF_PATH)
|
||||||
|
message(FATAL_ERROR "IDF_PATH not set.")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(NOT SERIAL_TOOL OR NOT SERIAL_TOOL_ARGS)
|
if(NOT SERIAL_TOOL OR NOT SERIAL_TOOL_ARGS)
|
||||||
message(FATAL_ERROR "SERIAL_TOOL and SERIAL_TOOL_ARGS must "
|
message(FATAL_ERROR "SERIAL_TOOL and SERIAL_TOOL_ARGS must "
|
||||||
"be specified on the CMake command line. For direct execution, it is "
|
"be specified on the CMake command line. For direct execution, it is "
|
||||||
"strongly recommended to run ${SERIAL_TOOL} directly.")
|
"strongly recommended to run ${SERIAL_TOOL} directly.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include("${CMAKE_CURRENT_LIST_DIR}/get_port_args.cmake")
|
# Main purpose of this script: we can't expand these environment variables in the main IDF CMake build,
|
||||||
set(CMD "${SERIAL_TOOL} ${port_arg} ${baud_arg} ${SERIAL_TOOL_ARGS}")
|
# because we want to expand them at flashing time not at CMake runtime (so they can change
|
||||||
include("${CMAKE_CURRENT_LIST_DIR}/run_cmd.cmake")
|
# without needing a CMake re-run)
|
||||||
|
set(ESPPORT $ENV{ESPPORT})
|
||||||
|
if(NOT ESPPORT)
|
||||||
|
message("Note: ${SERIAL_TOOL} will search for a serial port. "
|
||||||
|
"To specify a port, set the ESPPORT environment variable.")
|
||||||
|
else()
|
||||||
|
set(port_arg "-p ${ESPPORT}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(ESPBAUD $ENV{ESPBAUD})
|
||||||
|
if(NOT ESPBAUD)
|
||||||
|
message("Note: ${SERIAL_TOOL} will attempt to set baud rate automatically. "
|
||||||
|
"To specify a baud rate, set the ESPBAUD environment variable.")
|
||||||
|
else()
|
||||||
|
set(baud_arg "-b ${ESPBAUD}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(serial_tool_cmd "${SERIAL_TOOL} ${port_arg} ${baud_arg} ${SERIAL_TOOL_ARGS}")
|
||||||
|
|
||||||
|
include("${IDF_PATH}/tools/cmake/utilities.cmake")
|
||||||
|
spaces2list(serial_tool_cmd)
|
||||||
|
|
||||||
|
execute_process(COMMAND ${serial_tool_cmd}
|
||||||
|
WORKING_DIRECTORY "${WORKING_DIRECTORY}"
|
||||||
|
RESULT_VARIABLE result
|
||||||
|
)
|
||||||
|
|
||||||
|
if(${result})
|
||||||
|
# No way to have CMake silently fail, unfortunately
|
||||||
|
message(FATAL_ERROR "${SERIAL_TOOL} failed")
|
||||||
|
endif()
|
||||||
|
Loading…
Reference in New Issue
Block a user