import os import sys # 这个文件放在out文件夹中运行 _file_list=''' device/soc/wtz/wtz31x/source/Mainline/ap/src/dprintf.c device/soc/wtz/wtz31x/source/Mainline/ap/src/main.c device/soc/wtz/wtz31x/source/Mainline/ap/src/read_flash.c device/soc/wtz/wtz31x/source/Mainline/common/dbglog/iot_dbglog.c device/soc/wtz/wtz31x/source/Mainline/common/io_lib/src/iot_mem.c device/soc/wtz/wtz31x/source/Mainline/common/io_lib/src/iot_printf.c device/soc/wtz/wtz31x/source/Mainline/common/io_lib/src/iot_snprintf.c device/soc/wtz/wtz31x/source/Mainline/common/io_lib/src/iot_sprintf.c device/soc/wtz/wtz31x/source/Mainline/common/io_lib/src/iot_strformat.c device/soc/wtz/wtz31x/source/Mainline/common/io_lib/src/iot_string.c device/soc/wtz/wtz31x/source/Mainline/common/os_shim/liteos/src/os_event.c device/soc/wtz/wtz31x/source/Mainline/common/os_shim/liteos/src/os_lock.c device/soc/wtz/wtz31x/source/Mainline/common/os_shim/liteos/src/os_malloc.c device/soc/wtz/wtz31x/source/Mainline/common/os_shim/liteos/src/os_mem.c device/soc/wtz/wtz31x/source/Mainline/common/os_shim/liteos/src/os_task.c device/soc/wtz/wtz31x/source/Mainline/common/os_shim/liteos/src/os_timer.c device/soc/wtz/wtz31x/source/Mainline/common/os_shim/liteos/src/os_utils.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hal/board_info.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hal/clock.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hal/debug_uart.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hal/flash.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hal/iot_gp_timer.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hal/iot_gpio.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hal/iot_spinlock.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hal/iot_uart_h.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hal/irq.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hal/led.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hal/mtd.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hal/vfs_uart.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/ahb.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/ana.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/apb.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/board_info_hw.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/clk.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/cpu.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/dev_spinlock.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/gp_timer.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/gpio_hw.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/gpio_mtx.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/intc.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/pll_cal.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/sfc.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/smc.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/system_hw.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/uart_e.c device/soc/wtz/wtz31x/source/Mainline/driver/src/hw3/wdg.c device/soc/wtz/wtz31x/source/Mainline/hals/update/hal_hota_board.c device/soc/wtz/wtz31x/source/Mainline/hals/utils/file/src/hal_file.c device/soc/wtz/wtz31x/source/Mainline/os/liteos/src/version.c device/soc/wtz/wtz31x/source/Mainline/startup/riscv3/src/entry_def.S device/soc/wtz/wtz31x/source/Mainline/startup/riscv3/src/exception.c device/soc/wtz/wtz31x/source/Mainline/startup/riscv3/src/platform.c device/soc/wtz/wtz31x/source/Mainline/startup/riscv3/src/start.S device/soc/wtz/wtz31x/source/Mainline/startup/riscv3/src/startup_init.c '''.split() # 生成依赖文件 def creat_mm(): _tmp_file="../../../ninja_commands.txt" c_file_list=[] with open(_tmp_file) as f: for item in f.readlines(): item_sp=item.split() for item_x in item_sp: item_x_fix=item_x.split('.')[-1] if(item_x_fix in ['c','cpp','C','CPP','S','s']): f_path=item_x[9:] if f_path not in c_file_list: c_file_list.append(f_path) if(f_path in _file_list): # 在文件列表之中的文件,需要生成依赖关系 out_file_name=f'out/{os.path.split(f_path)[-1]}.d' cmd_str_list=[item_sp[1],'-MM']+item_sp[2:-1]+[out_file_name] cmd_str=' '.join(cmd_str_list) # print(cmd_str) if(os.path.exists(out_file_name)): print(f"文件 {out_file_name} 已经存在") os.system(cmd_str) # os.remove(_tmp_file) c_file_list.sort() # 列出依赖的文件 def list_depend_files(): dir='out' # save_file=open(dir+'/depend_list.txt',mode='w+') depend_list=[] file_list=os.listdir(dir) for item in file_list: ps=os.path.join(dir,item) with open(ps) as f: lines=f.readlines() for line in lines: line=line.replace('\\','').strip() if(line[-1]!=':'): path=os.path.abspath(line) if(path not in depend_list): print(path) depend_list.append(path) depend_list.sort() with open(dir+'/depend_list.txt',mode='w+') as f: for item in depend_list: f.write(item+'\n') if __name__ == "__main__": # main() # creat_mm() list_depend_files()