Browse Source

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.
Mitchell Stokes 9 years ago
parent
commit
b11ec02acb
1 changed files with 18 additions and 0 deletions
  1. 18 0
      direct/src/showutil/dist.py

+ 18 - 0
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,