update.py 1.0 KB

1234567891011121314151617181920212223242526272829
  1. #!/usr/bin/env python3
  2. import sys, os, subprocess, shutil
  3. os.chdir (os.getenv ('srcdir', os.path.dirname (__file__)))
  4. git = shutil.which ('git'); assert git
  5. make = shutil.which ('make'); assert make
  6. java = shutil.which ('java'); assert java
  7. cxx = shutil.which ('c++'); assert cxx
  8. pull = False
  9. if not os.path.exists ('aots'):
  10. subprocess.run ([git, 'clone', 'https://github.com/adobe-type-tools/aots'], check=True)
  11. pull = True
  12. if pull or 'pull' in sys.argv:
  13. subprocess.run ([git, 'pull'], cwd='aots', check=True)
  14. subprocess.run ([make, '-C', 'aots'], check=True)
  15. subprocess.run ([make, '-C', 'aots/harfbuzz'], check=True)
  16. shutil.copy ('hb-aots-tester.cpp', 'aots/harfbuzz')
  17. # TODO: remove *nix assumptions
  18. subprocess.run ([cxx, '-std=c++11', '-Wno-narrowing', 'aots/harfbuzz/hb-aots-tester.cpp',
  19. '../../../../src/harfbuzz.cc', '-DHB_NO_MT', '-fno-exceptions', '-lm',
  20. '-I../../../../src', '-o', 'aots/harfbuzz/aots'], check=True)
  21. shutil.rmtree ('tests')
  22. os.mkdir ('tests')
  23. subprocess.run (['./aots'], cwd='aots/harfbuzz', check=True)