build.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/env python
  2. import argparse
  3. import os
  4. import subprocess
  5. import sys
  6. from lib.config import get_target_arch
  7. from lib.util import electron_gyp, import_vs_env
  8. CONFIGURATIONS = ['Release', 'Debug']
  9. SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
  10. def main():
  11. os.chdir(SOURCE_ROOT)
  12. # Update the VS build env.
  13. import_vs_env(get_target_arch())
  14. ninja = os.path.join('vendor', 'depot_tools', 'ninja')
  15. if sys.platform == 'win32':
  16. ninja += '.exe'
  17. args = parse_args()
  18. for config in args.configuration:
  19. build_path = os.path.join('out', config[0])
  20. ret = subprocess.call([ninja, '-C', build_path, args.target])
  21. if ret != 0:
  22. sys.exit(ret)
  23. def parse_args():
  24. parser = argparse.ArgumentParser(description='Build project')
  25. parser.add_argument('-c', '--configuration',
  26. help='Build with Release or Debug configuration',
  27. nargs='+',
  28. default=CONFIGURATIONS,
  29. required=False)
  30. parser.add_argument('-t', '--target',
  31. help='Build specified target',
  32. default=electron_gyp()['project_name%'],
  33. required=False)
  34. return parser.parse_args()
  35. if __name__ == '__main__':
  36. sys.exit(main())