code_compile_check.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import os
  2. import sys
  3. import argparse
  4. def get_example_list():
  5. path = 'example'
  6. app_list = []
  7. files = os.listdir(path)
  8. for file in files:
  9. file_path = os.path.join(path, file)
  10. if os.path.isdir(file_path):
  11. app_list.append(file)
  12. return app_list
  13. def compile_code(params):
  14. # compile code
  15. cmd = 'make clean'
  16. res = os.system(cmd)
  17. if res != 0:
  18. return res
  19. cmd = 'make all -j' + params
  20. print(cmd)
  21. res = os.system(cmd)
  22. if res != 0:
  23. return res
  24. return 0
  25. port_sets = ['windows_libusb_win32',
  26. 'windows_serial', ]
  27. chipset_sets = ['ats2851',
  28. 'common',
  29. 'csr8510',
  30. 'csr8910',
  31. 'pts_dongle',]
  32. def parse_args():
  33. parser = argparse.ArgumentParser()
  34. parser.add_argument("--cpu-arch",
  35. help="Windows libusb need this.")
  36. parser.add_argument("--full-check",
  37. action="store_true",
  38. default=False,
  39. help="For normal build.")
  40. return parser.parse_args()
  41. if __name__ == '__main__':
  42. args = parse_args()
  43. #params = ' V=1'
  44. params = ''
  45. cpu_arch = args.cpu_arch
  46. if cpu_arch != None:
  47. params += (' CPU_ARCH=%s') % (cpu_arch)
  48. app_sets = get_example_list()
  49. res = compile_code(params)
  50. if(res != 0):
  51. sys.exit(res)
  52. full_check = args.full_check
  53. if full_check != None:
  54. total_work_cnt = 0
  55. for app in app_sets:
  56. for port in port_sets:
  57. for chipset in chipset_sets:
  58. total_work_cnt += 1
  59. current_work_cnt = 0
  60. for app in app_sets:
  61. for port in port_sets:
  62. for chipset in chipset_sets:
  63. current_work_cnt += 1
  64. print("=================================================================================")
  65. print("Total Work Cnt: %d, Current Cnt: %d, Process: %.2f%%"
  66. % (total_work_cnt, current_work_cnt, current_work_cnt * 100.0 / total_work_cnt))
  67. print("=================================================================================")
  68. params_full = params + (' APP=%s PORT=%s CHIPSET=%s') % (app, port, chipset)
  69. res = compile_code(params_full)
  70. if(res != 0):
  71. sys.exit(res)
  72. sys.exit(0)