将components下的文件夹复制到别一个文件夹下,并重新生成CMakelist.txt文件

📅 2026/8/16 5:16:40
将components下的文件夹复制到别一个文件夹下,并重新生成CMakelist.txt文件
一、将components下的文件夹复制到别一个文件夹下并重新生成CMakelist.txt文件二、python程序importosfrompathlibimportPathimportshutil# 获取当前文件夹current_directoryPath.cwd()# 目标文件夹target_rootPath(rC:\***\esp32practise\01_led\components\BSP)target_root_mainPath(rC:\***\esp32practise\01_led\main)# 获取当前文件夹下所有有效文件夹并取出components的文件夹的集合foler_3_name_setset()forfolder_1incurrent_directory.iterdir():# 过滤非文件夹和系统文件夹ifnotfolder_1.is_dir()orfolder_1.name.startswith(.):continuefolder_componentsfolder_1/components/BSPfolder_mainfolder_1/mainifnotfolder_components.is_dir():continueforfoler_3infolder_components.iterdir():ifnotfoler_3.is_dir():continuefoler_3_name_set.add(foler_3.name)desttarget_root/foler_3.name# shutil.copytree(foler_3,dest,dirs_exist_okTrue)# 获取当前文件夹下main的文件夹下的main.c文件并更名为main_components模块名.cforfile_maininfolder_main.iterdir():iffile_main.namemain.c:file_new_namemain_foler_3.name.cdest_filetarget_root_main/file_new_name shutil.copy2(file_main,dest_file)print(main_foler_3.name.c)# 重新生成CMakelist.txt文件CMakelist_filetarget_root/CMakeLists_1.txtwithopen(CMakelist_file,w,encodingutf-8)asfile:add_strforsrc_dirsinfoler_3_name_set:add_str( src_dirs\n)file.write(set(src_dirs\n)file.write(add_str)file.write()\n)file.write(set(include_dirs\n)file.write(add_str)file.write()\n)file.write(set(requires\n driver)\n)file.write(idf_component_register(SRC_DIRS ${src_dirs} INCLUDE_DIRS ${include_dirs} REQUIRES ${requires})\n)file.write(component_compile_options(-ffast-math -O3 -Wno-errorformat-Wno-format)\n)print(out:,src_dirs)