From e3eec9ef35048aac3f5285e2db50e57ca37143c8 Mon Sep 17 00:00:00 2001 From: dongheng Date: Tue, 20 Aug 2019 12:57:14 +0800 Subject: [PATCH] feat(cmake): add cmake file required to run "make flash" --- components/esptool_py/run_esptool.cmake | 46 +++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 components/esptool_py/run_esptool.cmake diff --git a/components/esptool_py/run_esptool.cmake b/components/esptool_py/run_esptool.cmake new file mode 100644 index 00000000..a63eb55f --- /dev/null +++ b/components/esptool_py/run_esptool.cmake @@ -0,0 +1,46 @@ +# A CMake script to run esptool commands 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 +# running esptool.py directly. This script exists only for use inside CMake builds. +# +cmake_minimum_required(VERSION 3.5) + +if(NOT IDF_PATH OR NOT ESPTOOLPY OR NOT ESPTOOL_ARGS OR NOT ESPTOOL_WORKING_DIR) + message(FATAL_ERROR "IDF_PATH, ESPTOOLPY, ESPTOOL_ARGS, and ESPTOOL_WORKING_DIR must " + "be specified on the CMake command line. For direct esptool execution, it is " + "strongly recommended to run esptool.py directly.") +endif() + +# Note: we can't expand these environment variables in the main IDF CMake build, +# because we want to expand them at flashing time not at CMake runtime (so they can change +# without needing a CMake re-run) +set(ESPPORT $ENV{ESPPORT}) +if(NOT ESPPORT) + message("Note: esptool.py 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: Using default baud rate 460800. To modify, set ESPBAUD environment variable.") + set(ESPBAUD 460800) +endif() + +include("${IDF_PATH}/tools/cmake/utilities.cmake") + +set(cmd "${ESPTOOLPY} ${port_arg} -b ${ESPBAUD} ${ESPTOOL_ARGS}") +spaces2list(cmd) + +execute_process(COMMAND ${cmd} + WORKING_DIRECTORY "${ESPTOOL_WORKING_DIR}" + RESULT_VARIABLE result + ) + +if(${result}) + # No way to have CMake silently fail, unfortunately + message(FATAL_ERROR "esptool.py failed") +endif()