Hi Bob,
On 08/29/2007 at 17:36, Bob Ippolito wrote:
> That's right, it does things the way py2exe does. It looks like the
> patch might break the way it works now? If it was just an alternative
> method then it could be applied, but if it's not backwards compatible
> then it definitely will not be accepted.
>
> -bob
I changed a few lines of my patch. Now it should be fully backwards
compatible and I would be glad if you accept it.
Here it comes:
--- build_app.py (revision 61)
+++ build_app.py (working copy)
@@ -12,6 +12,7 @@
import plistlib
import shlex
from cStringIO import StringIO
+from types import ListType, TupleType
from setuptools import Command
from distutils.util import convert_path
@@ -105,6 +106,12 @@
def FixupTargets(targets, default_attribute):
if not targets:
return targets
+ try:
+ targets = eval(targets)
+ except:
+ pass
+ if type(targets) not in (ListType, TupleType):
+ targets = [targets]
ret = []
for target_def in targets:
if isinstance(target_def, basestring):
@@ -145,8 +152,11 @@
# List of option tuples: long name, short name (None if no short
# name), and help string.
-
user_options = [
+ ("app=", None,
+ "application bundle to be built"),
+ ("plugin=", None,
+ "plugin bundle to be built"),
('optimize=', 'O',
"optimization level: -O1 for \"python -O\", "
"-O2 for \"python -OO\", and -O0 to disable [default: -O0]"),
@@ -227,6 +237,8 @@
]
def initialize_options (self):
+ self.app = None
+ self.plugin = None
self.bdist_base = None
self.xref = False
self.graph = False
@@ -819,9 +831,18 @@
def fixup_distribution(self):
dist = self.distribution
+ # Trying to obtain app and plugin from dist for backward
compatibility
+ # reasons.
+ app = dist.app
+ plugin = dist.plugin
+ # If we can get suitable values from self.app or
self.plugin, we prefer
+ # them.
+ if self.app is not None or self.plugin is not None:
+ app = self.app
+ plugin = self.plugin
# Convert our args into target objects.
- dist.app = FixupTargets(dist.app, "script")
- dist.plugin = FixupTargets(dist.plugin, "script")
+ dist.app = FixupTargets(app, "script")
+ dist.plugin = FixupTargets(plugin, "script")
if dist.app and dist.plugin:
# XXX - support apps and plugins?
raise DistutilsOptionError(
Regards,
Tobias
_______________________________________________
Pythonmac-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/pythonmac-sig