xref: /openbmc/qemu/python/setup.py (revision 2ddaeb7b)
1ea1213b7SJohn Snow#!/usr/bin/env python3
2ea1213b7SJohn Snow"""
3ea1213b7SJohn SnowQEMU tooling installer script
4ea1213b7SJohn SnowCopyright (c) 2020-2021 John Snow for Red Hat, Inc.
5ea1213b7SJohn Snow"""
6ea1213b7SJohn Snow
7ea1213b7SJohn Snowimport setuptools
8*2ddaeb7bSJohn Snowfrom setuptools.command import bdist_egg
9*2ddaeb7bSJohn Snowimport sys
10ea1213b7SJohn Snowimport pkg_resources
11ea1213b7SJohn Snow
12ea1213b7SJohn Snow
13*2ddaeb7bSJohn Snowclass bdist_egg_guard(bdist_egg.bdist_egg):
14*2ddaeb7bSJohn Snow    """
15*2ddaeb7bSJohn Snow    Protect against bdist_egg from being executed
16*2ddaeb7bSJohn Snow
17*2ddaeb7bSJohn Snow    This prevents calling 'setup.py install' directly, as the 'install'
18*2ddaeb7bSJohn Snow    CLI option will invoke the deprecated bdist_egg hook. "pip install"
19*2ddaeb7bSJohn Snow    calls the more modern bdist_wheel hook, which is what we want.
20*2ddaeb7bSJohn Snow    """
21*2ddaeb7bSJohn Snow    def run(self):
22*2ddaeb7bSJohn Snow        sys.exit(
23*2ddaeb7bSJohn Snow            'Installation directly via setup.py is not supported.\n'
24*2ddaeb7bSJohn Snow            'Please use `pip install .` instead.'
25*2ddaeb7bSJohn Snow        )
26*2ddaeb7bSJohn Snow
27*2ddaeb7bSJohn Snow
28ea1213b7SJohn Snowdef main():
29ea1213b7SJohn Snow    """
30ea1213b7SJohn Snow    QEMU tooling installer
31ea1213b7SJohn Snow    """
32ea1213b7SJohn Snow
33ea1213b7SJohn Snow    # https://medium.com/@daveshawley/safely-using-setup-cfg-for-metadata-1babbe54c108
34ea1213b7SJohn Snow    pkg_resources.require('setuptools>=39.2')
35ea1213b7SJohn Snow
36*2ddaeb7bSJohn Snow    setuptools.setup(cmdclass={'bdist_egg': bdist_egg_guard})
37ea1213b7SJohn Snow
38ea1213b7SJohn Snow
39ea1213b7SJohn Snowif __name__ == '__main__':
40ea1213b7SJohn Snow    main()
41