astrofrog astrofrog - 2 months ago 12
Python Question

Hook to add commands to distutils build?

I've added a custom distutils command to a setup.py script:

from distutils.command.build_py import build_py

cmdclass = {}
cmdclass['build_qt'] = BuildQt
cmdclass['build_py'] = build_py

setup(..., cmdclass=cmdclass, ...)


Is there a way to make it so that when running::

python setup.py build


this first calls

python setup.py build_qt


automatically?

Answer

You can override build:

from distutils.command.build import build

class my_build(build):
    def run(self):
        self.run_command("build_qt")
        build.run(self)

cmdclass['build'] = my_build