xref: /aosp_15_r20/external/mesa3d/meson_to_hermetic/templates/generate_python_build.txt (revision 6104692788411f58d303aa86923a9ff6ecaded22)
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