diff --git a/components/esptool_py/project_include.cmake b/components/esptool_py/project_include.cmake index 46c12591130..7e0c4d06944 100644 --- a/components/esptool_py/project_include.cmake +++ b/components/esptool_py/project_include.cmake @@ -121,7 +121,6 @@ idf_build_get_property(build_dir BUILD_DIR) idf_build_get_property(elf_name EXECUTABLE_NAME GENERATOR_EXPRESSION) idf_build_get_property(elf EXECUTABLE GENERATOR_EXPRESSION) -idf_build_get_property(elf_dir EXECUTABLE_DIR GENERATOR_EXPRESSION) if(CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES AND NOT BOOTLOADER_BUILD) set(unsigned_project_binary "${elf_name}-unsigned.bin") @@ -137,10 +136,10 @@ set(PROJECT_BIN "${elf_name}.bin") if(CONFIG_APP_BUILD_GENERATE_BINARIES) add_custom_command(OUTPUT "${build_dir}/.bin_timestamp" COMMAND ${ESPTOOLPY} elf2image ${esptool_elf2image_args} - -o "${build_dir}/${unsigned_project_binary}" "${elf_dir}/${elf}" + -o "${build_dir}/${unsigned_project_binary}" "$>" COMMAND ${CMAKE_COMMAND} -E echo "Generated ${build_dir}/${unsigned_project_binary}" COMMAND ${CMAKE_COMMAND} -E md5sum "${build_dir}/${unsigned_project_binary}" > "${build_dir}/.bin_timestamp" - DEPENDS ${elf} + DEPENDS "$>" VERBATIM WORKING_DIRECTORY ${build_dir} COMMENT "Generating binary image from built executable" @@ -212,7 +211,7 @@ add_custom_target(monitor COMMAND ${CMAKE_COMMAND} -D "IDF_PATH=${idf_path}" -D "SERIAL_TOOL=${ESPMONITOR}" - -D "SERIAL_TOOL_ARGS=--target;${target};${monitor_rev_args};${elf_dir}/${elf}" + -D "SERIAL_TOOL_ARGS=--target;${target};${monitor_rev_args};$>" -D "WORKING_DIRECTORY=${build_dir}" -P run_serial_tool.cmake WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} diff --git a/tools/test_build_system/test_build.py b/tools/test_build_system/test_build.py index 104e0d34f83..c2567dc018b 100644 --- a/tools/test_build_system/test_build.py +++ b/tools/test_build_system/test_build.py @@ -128,3 +128,10 @@ def test_build_with_sdkconfig_build_abspath(idf_py: IdfPyFunc, test_app_copy: Pa build_path = test_app_copy / 'build_tmp' sdkconfig_path = build_path / 'sdkconfig' idf_py('-D', f'SDKCONFIG={sdkconfig_path}', '-B', str(build_path), 'build') + + +def test_build_cmake_executable_suffix(idf_py: IdfPyFunc, test_app_copy: Path) -> None: + logging.info('idf.py can build with CMAKE_EXECUTABLE_SUFFIX set') + append_to_file((test_app_copy / 'CMakeLists.txt'), 'set(CMAKE_EXECUTABLE_SUFFIX_CXX ".ext")') + ret = idf_py('build') + assert 'Project build complete' in ret.stdout, 'Build with CMAKE_EXECUTABLE_SUFFIX set failed'