import sys
import tomllib
###
########################################################################################################################
###
### Pull in the definitions meson is expecting
###
from meson_common import *
from meson_to_hermetic.meson_to_hermetic import *
###
########################################################################################################################
{{ meson_options }}
###
### Process command line arguments for setting options
config_path = ''

if __name__ == "__main__":
  for arg in sys.argv[1:]:
    flag, value = arg.split('=')  # args form follows a: -flag=value
    match flag:
      case ('--config' | '-c'):
        if not value.endswith('.toml'):
          exit(f'File format for {value} not supported. Please provide a valid file (toml).')
        with open(value, 'rb') as f:
          data = tomllib.load(f)
          config_path = value
          # Data entry point of meson_translator global
          load_meson_data(config_path)
          meson_options = meson_translator.config.meson_options
          for key in meson_options:
            set_option(key, meson_options[key])
      case _:
        exit(f'Unhandled arg={flag} with value={value}')

###
### These definitions must be inside the module
def get_variable(name: str):
  return globals()[name]


meson = impl.Meson(meson_translator.generator)
host_machine = impl.Machine(meson_translator.host_machine, meson_translator.config.cpu, meson_translator.config.cpu_family)
build_machine = impl.Machine(meson_translator.build_machine, meson_translator.config.cpu, meson_translator.config.cpu_family)

### Load dependencies
load_dependencies()


{{ meson_build }}
### Close the build definition file
meson_translator.generator.generate(meson_translator)
{# Newline Placeholder #}
