1import sys 2import tomllib 3### 4######################################################################################################################## 5### 6### Pull in the definitions meson is expecting 7### 8from meson_common import * 9from meson_to_hermetic.meson_to_hermetic import * 10### 11######################################################################################################################## 12{{ meson_options }} 13### 14### Process command line arguments for setting options 15config_path = '' 16 17if __name__ == "__main__": 18 for arg in sys.argv[1:]: 19 flag, value = arg.split('=') # args form follows a: -flag=value 20 match flag: 21 case ('--config' | '-c'): 22 if not value.endswith('.toml'): 23 exit(f'File format for {value} not supported. Please provide a valid file (toml).') 24 with open(value, 'rb') as f: 25 data = tomllib.load(f) 26 config_path = value 27 # Data entry point of meson_translator global 28 load_meson_data(config_path) 29 meson_options = meson_translator.config.meson_options 30 for key in meson_options: 31 set_option(key, meson_options[key]) 32 case _: 33 exit(f'Unhandled arg={flag} with value={value}') 34 35### 36### These definitions must be inside the module 37def get_variable(name: str): 38 return globals()[name] 39 40 41meson = impl.Meson(meson_translator.generator) 42host_machine = impl.Machine(meson_translator.host_machine, meson_translator.config.cpu, meson_translator.config.cpu_family) 43build_machine = impl.Machine(meson_translator.build_machine, meson_translator.config.cpu, meson_translator.config.cpu_family) 44 45### Load dependencies 46load_dependencies() 47 48 49{{ meson_build }} 50### Close the build definition file 51meson_translator.generator.generate(meson_translator) 52{# Newline Placeholder #} 53