summaryrefslogtreecommitdiffstats
path: root/Mac/Tools/macfreeze/macgen_src.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Tools/macfreeze/macgen_src.py')
-rw-r--r--Mac/Tools/macfreeze/macgen_src.py113
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