<filename>common-mk/mojom_bindings_generator_wrapper.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Thin wrapper of Mojo's mojom_bindings_generator.py.

To generate C++ files from mojom, it is necessary to run
mojom_bindings_generator.py three times
 - without --generate_non_variant_code or --generate_non_variant_code
 - with --generate_non_variant_code only
 - with both --generate_non_variant_code and --generate_message_ids

However, gni's "rule" does not support multiple "action"s. So, instead,
use this simple python wrapper.

Usage:
  python mojom_bindings_generator_wrapper.py ${libbase_ver} \
    ${MOJOM_BINDINGS_GENERATOR} \
    [... and more args/flags to be passed to the mojom_bindings_generator.py]
"""

from __future__ import print_function

import subprocess
import sys


def main(argv):
  subprocess.check_call(argv[2:])
  subprocess.check_call(argv[2:] + ['--generate_non_variant_code'])
  subprocess.check_call(argv[2:] + ['--generate_non_variant_code',
                                    '--generate_message_ids'])


if __name__ == '__main__':
  main(sys.argv)

<filename>common-mk/mojom_bindings_generator_wrapper.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Thin wrapper of Mojo's mojom_bindings_generator.py.

To generate C++ files from mojom, it is necessary to run
mojom_bindings_generator.py three times
 - without --generate_non_variant_code or --generate_non_variant_code
 - with --generate_non_variant_code only
 - with both --generate_non_variant_code and --generate_message_ids

However, gni's "rule" does not support multiple "action"s. So, instead,
use this simple python wrapper.

Usage:
  python mojom_bindings_generator_wrapper.py ${libbase_ver} \
    ${MOJOM_BINDINGS_GENERATOR} \
    [... and more args/flags to be passed to the mojom_bindings_generator.py]
"""

from __future__ import print_function

import subprocess
import sys


def main(argv):
  subprocess.check_call(argv[2:])
  subprocess.check_call(argv[2:] + ['--generate_non_variant_code'])
  subprocess.check_call(argv[2:] + ['--generate_non_variant_code',
                                    '--generate_message_ids'])


if __name__ == '__main__':
  main(sys.argv)

#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # Copyright 2018 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. Thin wrapper of Mojo's mojom_bindings_generator.py.  To generate C++ files from mojom, it is necessary to run mojom_bindings_generator.py three times  - without --generate_non_variant_code or --generate_non_variant_code  - with --generate_non_variant_code only  - with both --generate_non_variant_code and --generate_message_ids  However, gni's "rule" does not support multiple "action"s. So, instead, use this simple python wrapper.  Usage:   python mojom_bindings_generator_wrapper.py ${libbase_ver} \     ${MOJOM_BINDINGS_GENERATOR} \     [... and more args/flags to be passed to the mojom_bindings_generator.py]