瀏覽代碼

deploy-ng setuptools: Change build_apps.exclude_modules to a dict and add include_modules

The key of both of these dictionaries is the app this affects (must
match a key in gui_apps or console_apps). A key of '*' affects all
applications.
Mitchell Stokes 8 年之前
父節點
當前提交
887278f306
共有 1 個文件被更改,包括 5 次插入2 次删除
  1. 5 2
      direct/src/showutil/dist.py

+ 5 - 2
direct/src/showutil/dist.py

@@ -47,7 +47,8 @@ class build_apps(distutils.core.Command):
         self.console_apps = {}
         self.console_apps = {}
         self.copy_paths = []
         self.copy_paths = []
         self.exclude_paths = []
         self.exclude_paths = []
-        self.exclude_modules = []
+        self.include_modules = {}
+        self.exclude_modules = {}
         self.deploy_platforms = []
         self.deploy_platforms = []
         self.requirements_path = './requirements.txt'
         self.requirements_path = './requirements.txt'
         self.pypi_extra_indexes = []
         self.pypi_extra_indexes = []
@@ -121,7 +122,9 @@ class build_apps(distutils.core.Command):
             def create_runtime(appname, mainscript, use_console):
             def create_runtime(appname, mainscript, use_console):
                 freezer = FreezeTool.Freezer(platform=platform)
                 freezer = FreezeTool.Freezer(platform=platform)
                 freezer.addModule('__main__', filename=mainscript)
                 freezer.addModule('__main__', filename=mainscript)
-                for exmod in self.exclude_modules:
+                for incmod in self.include_modules.get(appname, []) + self.include_modules.get('*', []):
+                    freezer.addModule(incmod)
+                for exmod in self.exclude_modules.get(appname, []) + self.exclude_modules.get('*', []):
                     freezer.excludeModule(exmod)
                     freezer.excludeModule(exmod)
                 freezer.done(addStartupModules=True)
                 freezer.done(addStartupModules=True)