From b11ec02acba7687cb3a46d8db8ecbd4dbb61370f Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Sun, 13 Nov 2016 10:09:42 -0800 Subject: [PATCH] Distutils: Copy over panda3d and libs TODO: Currently all of the libs and the whole panda3d module gets copied over. We should make use of Packager code to trim this down. --- direct/src/showutil/dist.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/direct/src/showutil/dist.py b/direct/src/showutil/dist.py index fc06f851cc..121f517217 100644 --- a/direct/src/showutil/dist.py +++ b/direct/src/showutil/dist.py @@ -34,6 +34,7 @@ class build(distutils.command.build.build): gamedir = self.distribution.game_dir startfile = os.path.join(gamedir, self.distribution.mainfile) + # Create runtime freezer = FreezeTool.Freezer() freezer.addModule('__main__', filename=startfile) freezer.excludeModule('panda3d') @@ -42,6 +43,23 @@ class build(distutils.command.build.build): freezer.done(addStartupModules=True) freezer.generateRuntimeFromStub(basename) + # Copy Panda3D libs + dtool_dir = os.path.dirname(p3d.ExecutionEnvironment.get_dtool_name()) + libdir = os.path.join(dtool_dir, '..', 'lib') + src = os.path.join(libdir, '..', 'panda3d') + dst = os.path.join(builddir, 'panda3d') + distutils.dir_util.copy_tree(src, dst) + + for item in os.listdir(libdir): + if '.so.' in item or item.endswith('.dll') or 'libpandagl' in item: + distutils.file_util.copy_file(os.path.join(libdir, item), os.path.join(builddir, item)) + + # Copy etc + src = os.path.join(dtool_dir, '..', 'etc') + dst = os.path.join(builddir, 'etc') + distutils.dir_util.copy_tree(src, dst) + + # Copy Game Files ignore_copy_list = [ '__pycache__', self.distribution.mainfile,