diff options
Diffstat (limited to 'Mac/Tools/macfreeze/macgen_src.py')
-rw-r--r-- | Mac/Tools/macfreeze/macgen_src.py | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/Mac/Tools/macfreeze/macgen_src.py b/Mac/Tools/macfreeze/macgen_src.py deleted file mode 100644 index 301e85e..0000000 --- a/Mac/Tools/macfreeze/macgen_src.py +++ /dev/null @@ -1,113 +0,0 @@ -"""macgen_info - Generate CodeWarrior project, config source, resource file""" -import EasyDialogs -import os -import sys -import macfs -import MacOS -import macostools -import macgen_rsrc -# Note: this depends on being frozen, or on sys.path already being -# modified by macmodulefinder. -import makeconfig - -TEMPLATEDIR=os.path.join(sys.prefix, ':Mac:mwerks:projects:build.macfreeze') -PROJECT_TEMPLATE=os.path.join(TEMPLATEDIR, ':frozen.prj') -CONFIG_TEMPLATE=os.path.join(TEMPLATEDIR, ':templatefrozenconfig.c') -BUNDLE_TEMPLATE=os.path.join(TEMPLATEDIR, ':frozenbundle.rsrc') - -def generate(output, module_dict, debug=0, with_ifdef=0): - problems = 0 - output_created=0 - if not os.path.exists(output): - print 'Creating project folder', output - os.mkdir(output) - output_created = 1 - # Resolve aliases, if needed - try: - fss, dummy1, dummy2 = macfs.ResolveAliasFile(output) - except macfs.error: - pass - else: - newname = fss.as_pathname() - if newname != output: - if debug: - print 'Alias', output - print 'Resolved to', newname - output = newname - # Construct the filenames - dummy, outfile = os.path.split(output) - build, ext = os.path.splitext(outfile) - if build == 'build' and ext[0] == '.': - # This is probably a good name for the project - projname = ext[1:] - else: - projname = 'frozenapplet.prj' - config_name = os.path.join(output, ':macfrozenconfig.c') - project_name = os.path.join(output, ':' + projname + '.prj') - resource_name = os.path.join(output, ':frozenmodules.rsrc') - bundle_name = os.path.join(output, ':frozenbundle.rsrc') - - # Fill the output folder, if needed. - if output_created: - # Create the project, if needed - if not os.path.exists(project_name): - print 'Creating project', project_name - if not os.path.exists(PROJECT_TEMPLATE): - print '** No template CodeWarrior project found at', PROJECT_TEMPLATE - print ' To generate standalone Python applications from source you need' - print ' a full source distribution. Check http://www.cwi.nl/~jack/macpython.html' - print ' for details.' - problems = 1 - else: - macostools.copy(PROJECT_TEMPLATE, project_name) - print 'A template CodeWarrior project has been copied to', project_name - print 'It is up to you to make the following changes:' - print '- Change the output file name' - print '- Change the search path, unless the folder is in the python home' - print '- Add sourcefiles/libraries for any extension modules used' - print '- Remove unused sources, to speed up the build process' - print '- Remove unused resource files (like tcl/tk) for a smaller binary' - problems = 1 - macostools.copy(BUNDLE_TEMPLATE, bundle_name) - print 'A template bundle file has also been copied to', bundle_name - print 'You may want to adapt signature, size resource, etc' - - - # Create the resource file - macgen_rsrc.generate(resource_name, module_dict, debug=debug) - - # Create the config.c file - if not os.path.exists(CONFIG_TEMPLATE): - print '** No template config.c found at', PROJECT_TEMPLATE - print ' To generate standalone Python applications from source you need' - print ' a full source distribution. Check http://www.cwi.nl/~jack/macpython.html' - print ' for details.' - problems = 1 - else: - # Find elegible modules (builtins and dynamically loaded modules) - c_modules = [] - for module in module_dict.keys(): - if module_dict[module].gettype() in ('builtin', 'dynamic'): - # if the module is in a package we have no choice but - # to put it at the toplevel in the frozen application. - if '.' in module: - module = module.split('.')[-1] - c_modules.append(module) - ifp = open(CONFIG_TEMPLATE) - ofp = open(config_name, 'w') - makeconfig.makeconfig(ifp, ofp, c_modules, with_ifdef) - ifp.close() - ofp.close() - MacOS.SetCreatorAndType(config_name, 'CWIE', 'TEXT') - - if warnings(module_dict): - problems = 1 - return problems - -def warnings(module_dict): - problems = 0 - for name, module in module_dict.items(): - if module.gettype() not in ('builtin', 'module', 'dynamic', 'package'): - problems = problems + 1 - print 'Warning: %s not included: %s %s'%(name, module.gettype(), module) - return problems |