mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-31 13:09:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| # A CMake script to run serial tool commands supporting ESPPORT and
 | |
| # ESPBAUD environment variables from within ninja or make or another
 | |
| # cmake-based build runner.
 | |
| #
 | |
| # It is recommended to NOT USE this CMake script if you have the option of
 | |
| # running the tool directly. This script exists only for use inside CMake builds.
 | |
| 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)
 | |
|     message(FATAL_ERROR "SERIAL_TOOL and SERIAL_TOOL_ARGS must "
 | |
|         "be specified on the CMake command line. For direct execution, it is "
 | |
|         "strongly recommended to run ${SERIAL_TOOL} directly.")
 | |
| endif()
 | |
| 
 | |
| # Main purpose of this script: 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: ${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()
 | 
