From fb278a5e6f498441901f7642324e1d1f7adca9f5 Mon Sep 17 00:00:00 2001 From: Jack Jansen Date: Fri, 4 Jun 1999 15:56:33 +0000 Subject: Added an "optional" directive, that will include a module if it is available but not complain if it isn't (giving an ImportError when the frozen code is run). --- Mac/Tools/macfreeze/directives.py | 5 ++++- Mac/Tools/macfreeze/macmodulefinder.py | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Mac/Tools/macfreeze/directives.py b/Mac/Tools/macfreeze/directives.py index e233745..16b7879 100644 --- a/Mac/Tools/macfreeze/directives.py +++ b/Mac/Tools/macfreeze/directives.py @@ -18,6 +18,7 @@ REPROG=re.compile(DIRECTIVE_RE) def findfreezedirectives(program): extra_modules = [] exclude_modules = [] + optional_modules = [] extra_path = [] progdir, filename = os.path.split(program) fp = open(program) @@ -30,10 +31,12 @@ def findfreezedirectives(program): extra_modules.append(argument) elif directive == 'exclude': exclude_modules.append(argument) + elif directive == 'optional': + optional_modules.append(argument) elif directive == 'path': argument = os.path.join(progdir, argument) extra_path.append(argument) else: print '** Unknown directive', line - return extra_modules, exclude_modules, extra_path + return extra_modules, exclude_modules, optional_modules, extra_path diff --git a/Mac/Tools/macfreeze/macmodulefinder.py b/Mac/Tools/macfreeze/macmodulefinder.py index 0af0425..b19c86d 100644 --- a/Mac/Tools/macfreeze/macmodulefinder.py +++ b/Mac/Tools/macfreeze/macmodulefinder.py @@ -57,7 +57,7 @@ def process(program, modules=[], module_files = [], debug=0): # # search the main source for directives # - extra_modules, exclude_modules, extra_path = \ + extra_modules, exclude_modules, optional_modules, extra_path = \ directives.findfreezedirectives(program) for m in extra_modules: if os.sep in m: @@ -84,7 +84,7 @@ def process(program, modules=[], module_files = [], debug=0): # # Tell the user about missing modules # - maymiss = exclude_modules + MAC_MAYMISS_MODULES + maymiss = exclude_modules + optional_modules + MAC_MAYMISS_MODULES for m in modfinder.badmodules.keys(): if not m in maymiss: if debug > 0: -- cgit v0.12