zip-symbols.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/usr/bin/env python3
  2. import argparse
  3. import glob
  4. import os
  5. import sys
  6. from lib.config import PLATFORM, get_target_arch
  7. from lib.util import scoped_cwd, get_electron_version, make_zip, \
  8. get_electron_branding, get_out_dir, execute
  9. ELECTRON_VERSION = get_electron_version()
  10. PROJECT_NAME = get_electron_branding()['project_name']
  11. OUT_DIR = get_out_dir()
  12. def main():
  13. print('Zipping Symbols')
  14. args = parse_args()
  15. dist_name = 'symbols.zip'
  16. zip_file = os.path.join(args.build_dir, dist_name)
  17. licenses = ['LICENSE', 'LICENSES.chromium.html', 'version']
  18. with scoped_cwd(args.build_dir):
  19. dirs = ['breakpad_symbols']
  20. print('Making symbol zip: ' + zip_file)
  21. make_zip(zip_file, licenses, dirs)
  22. if PLATFORM == 'darwin':
  23. dsym_name = 'dsym.zip'
  24. with scoped_cwd(args.build_dir):
  25. dsyms = glob.glob('*.dSYM')
  26. snapshot_dsyms = ['v8_context_snapshot_generator.dSYM']
  27. for dsym in snapshot_dsyms:
  28. if (dsym in dsyms):
  29. dsyms.remove(dsym)
  30. dsym_zip_file = os.path.join(args.build_dir, dsym_name)
  31. print('Making dsym zip: ' + dsym_zip_file)
  32. make_zip(dsym_zip_file, licenses, dsyms)
  33. dsym_snapshot_name = 'dsym-snapshot.zip'
  34. dsym_snapshot_zip_file = os.path.join(args.build_dir, dsym_snapshot_name)
  35. print('Making dsym snapshot zip: ' + dsym_snapshot_zip_file)
  36. make_zip(dsym_snapshot_zip_file, licenses, snapshot_dsyms)
  37. if len(dsyms) > 0 and 'DELETE_DSYMS_AFTER_ZIP' in os.environ:
  38. execute(['rm', '-rf'] + dsyms)
  39. elif PLATFORM == 'win32':
  40. pdb_name = 'pdb.zip'
  41. with scoped_cwd(args.build_dir):
  42. pdbs = glob.glob('*.pdb')
  43. pdb_zip_file = os.path.join(args.build_dir, pdb_name)
  44. print('Making pdb zip: ' + pdb_zip_file)
  45. make_zip(pdb_zip_file, pdbs + licenses, [])
  46. elif PLATFORM == 'linux':
  47. debug_name = 'debug.zip'
  48. with scoped_cwd(args.build_dir):
  49. dirs = ['debug']
  50. debug_zip_file = os.path.join(args.build_dir, debug_name)
  51. print('Making debug zip: ' + debug_zip_file)
  52. make_zip(debug_zip_file, licenses, dirs)
  53. def parse_args():
  54. parser = argparse.ArgumentParser(description='Zip symbols')
  55. parser.add_argument('-b', '--build-dir',
  56. help='Path to an Electron build folder.',
  57. default=OUT_DIR,
  58. required=False)
  59. return parser.parse_args()
  60. if __name__ == '__main__':
  61. sys.exit(main())