mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-01 01:07:51 -04:00
deploy-ng: Split applications list into gui_apps and console_apps dictionaries
The keys to these new dictionaries are the name of the application to create and the value is the script that is the entry point for the application. This gets rid of the need for an Application class.
This commit is contained in:
parent
159a1aa948
commit
9723cb62d9
@ -13,12 +13,6 @@ from direct.showutil import FreezeTool
|
||||
import panda3d.core as p3d
|
||||
|
||||
|
||||
class Application(object):
|
||||
def __init__(self, scriptname, runtimename, use_console=False):
|
||||
self.scriptname = scriptname
|
||||
self.runtimename = runtimename
|
||||
self.use_console = use_console
|
||||
|
||||
|
||||
# TODO replace with Packager
|
||||
def find_packages(whlfile):
|
||||
@ -44,7 +38,8 @@ class build_p3d(distutils.core.Command):
|
||||
|
||||
def initialize_options(self):
|
||||
self.build_base = os.path.join(os.getcwd(), 'build')
|
||||
self.applications = []
|
||||
self.gui_apps = {}
|
||||
self.console_apps = {}
|
||||
self.directories = []
|
||||
self.files = []
|
||||
self.exclude_paths = []
|
||||
@ -57,6 +52,7 @@ class build_p3d(distutils.core.Command):
|
||||
}
|
||||
|
||||
def finalize_options(self):
|
||||
# TODO
|
||||
pass
|
||||
|
||||
def run(self):
|
||||
@ -114,19 +110,19 @@ class build_p3d(distutils.core.Command):
|
||||
sys.path.insert(0, os.path.join(p3dwhlfn, 'deploy_libs'))
|
||||
|
||||
|
||||
# Create runtime
|
||||
# Create runtimes
|
||||
freezer_extras = set()
|
||||
freezer_modules = set()
|
||||
for app in self.applications:
|
||||
def create_runtime(appname, mainscript, use_console):
|
||||
freezer = FreezeTool.Freezer(platform=platform)
|
||||
freezer.addModule('__main__', filename=app.scriptname)
|
||||
freezer.addModule('__main__', filename=mainscript)
|
||||
for exmod in self.exclude_modules:
|
||||
freezer.excludeModule(exmod)
|
||||
freezer.done(addStartupModules=True)
|
||||
|
||||
stub_name = 'deploy-stub'
|
||||
if platform.startswith('win'):
|
||||
if not app.use_console:
|
||||
if use_console:
|
||||
stub_name = 'deploy-stubw'
|
||||
stub_name += '.exe'
|
||||
|
||||
@ -137,12 +133,18 @@ class build_p3d(distutils.core.Command):
|
||||
stub_path = os.path.join(os.path.dirname(dtool_path), '..', 'bin', stub_name)
|
||||
stub_file = open(stub_path, 'rb')
|
||||
|
||||
freezer.generateRuntimeFromStub(os.path.join(builddir, app.runtimename), stub_file)
|
||||
freezer.generateRuntimeFromStub(os.path.join(builddir, appname), stub_file)
|
||||
stub_file.close()
|
||||
|
||||
freezer_extras.update(freezer.extras)
|
||||
freezer_modules.update(freezer.getAllModuleNames())
|
||||
|
||||
for appname, scriptname in self.gui_apps.items():
|
||||
create_runtime(appname, scriptname, False)
|
||||
|
||||
for appname, scriptname in self.console_apps.items():
|
||||
create_runtime(appname, scriptname, True)
|
||||
|
||||
# Copy extension modules
|
||||
for module, source_path in freezer_extras:
|
||||
if source_path is None:
|
||||
@ -205,7 +207,7 @@ class build_p3d(distutils.core.Command):
|
||||
# Copy Game Files
|
||||
ignore_copy_list = [
|
||||
'__pycache__',
|
||||
] + list(freezer_modules) + self.exclude_paths + [i.scriptname for i in self.applications]
|
||||
] + list(freezer_modules) + self.exclude_paths + list(self.gui_apps.values()) + list(self.console_apps.values())
|
||||
|
||||
for copydir in self.directories:
|
||||
for root, dirs, files in os.walk(copydir):
|
||||
|
@ -6,7 +6,9 @@ setup(
|
||||
'build_p3d': {
|
||||
'directories': ['.'],
|
||||
'exclude_paths': ['build', 'setup.py', 'requirements.txt', 'wheels'],
|
||||
'applications': [Application('main.py', 'asteroids')],
|
||||
'gui_apps': {
|
||||
'asteroids': 'main.py',
|
||||
},
|
||||
'deploy_platforms': [
|
||||
'manylinux1_x86_64',
|
||||
'macosx_10_6_x86_64',
|
||||
|
Loading…
x
Reference in New Issue
Block a user