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