project('win-flex-bison-binary', version : '3.7.6')

py3 = import('python3').find_python()

message('Downloading and extracting bison for macOS x64...')

arch = host_machine.cpu_family()
tar_hash = '932f91d7c7fa0121abc3e5f8e54a7234b03d3de468c254ab8063ff8e6eb92a09'
if arch != 'x86_64'
  warning('bison binary is untested on non-x86_64, please report whether this worked or not')
  arch = 'x86_64'
endif

ret = run_command(py3, files('download-binary.py'), meson.project_version(), arch, tar_hash)
if ret.returncode() != 0
  message(ret.stdout())
  error(ret.stderr())
endif

conf = configuration_data()
conf.set('SRCDIR', meson.project_source_root())
conf.set('EXTRACTDIR', ret.stdout())
bison_py = configure_file(
    input: 'bison.py.in',
    output: 'bison.py',
    configuration: conf)

meson.override_find_program('bison', find_program(bison_py))