From 471090d1b4518fba2121d6b08732fe23de2756b8 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Wed, 2 Nov 2016 14:54:49 -0700 Subject: [PATCH] Adding a dist module that can be imported to use FreezeTool as part of setup.py --- direct/src/showutil/dist.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 direct/src/showutil/dist.py diff --git a/direct/src/showutil/dist.py b/direct/src/showutil/dist.py new file mode 100644 index 0000000000..e84cc3d3d9 --- /dev/null +++ b/direct/src/showutil/dist.py @@ -0,0 +1,34 @@ +import os + +import distutils.dist +import distutils.command.build +import distutils.core + +from direct.showutil import FreezeTool + +class Distribution(distutils.dist.Distribution): + def __init__(self, attrs): + self.mainfile = '' + distutils.dist.Distribution.__init__(self, attrs) + + +class build(distutils.command.build.build): + def run(self): + distutils.command.build.build.run(self) + basename = os.path.join(self.build_base, self.distribution.get_fullname()) + startfile = self.distribution.mainfile + + if not os.path.exists(self.build_base): + os.makedirs(self.build_base) + + freezer = FreezeTool.Freezer() + freezer.addModule('__main__', filename=startfile) + freezer.done(addStartupModules=True) + freezer.generateRuntimeFromStub(basename) + + +def setup(**attrs): + attrs.setdefault("distclass", Distribution) + commandClasses = attrs.setdefault("cmdclass", {}) + commandClasses['build'] = build + distutils.core.setup(**attrs)