import distutils.core as DC
import distutils.log as DL
+###--------------------------------------------------------------------------
+### Compatibility hacks.
+
+def with_metaclass(meta, *supers):
+ return meta("#<anonymous base %s>" % meta.__name__,
+ supers or (object,), dict())
+
###--------------------------------------------------------------------------
### Random utilities.
The COMMAND must produce exactly one line of output, and must exit with
status zero.
"""
- kid = SUB.Popen(command, stdout = SUB.PIPE)
- out = kid.stdout.readline()
- junk = kid.stdout.read()
+ kid = SUB.Popen(command, stdout = SUB.PIPE, universal_newlines = True)
+ try:
+ out = kid.stdout.readline()
+ junk = kid.stdout.read(1)
+ finally:
+ kid.stdout.close()
if junk != '': raise ValueError \
("Child process `%s' produced unspected output %r" % (command, junk))
rc = kid.wait()
spec = '%s >= %s' % (pkg, version)
- for word in progoutput(['pkg-config', '--cflags', spec]).split():
+ try: cflags = OS.environ["%s_CFLAGS" % pkg]
+ except KeyError: cflags = progoutput(['pkg-config', '--cflags', spec])
+ for word in cflags.split():
if word.startswith('-I'): INCLUDEDIRS.append(word[2:])
- else: weird('--cflags', word)
-
- for word in progoutput(['pkg-config', '--libs', spec]).split():
+ else: weird('CFLAGS', word)
+ try: libs = OS.environ["%s_LIBS" % pkg]
+ except KeyError: libs = progoutput(['pkg-config', '--libs', spec])
+ for word in libs.split():
if word.startswith('-L'): LIBDIRS.append(word[2:])
elif word.startswith('-l'): LIBS.append(word[2:])
- else: weird('--libs', word)
+ else: weird('LIBS', word)
###--------------------------------------------------------------------------
### Substituting variables in files.
else: CMDS[name] = c
return c
-class Command (DC.Command, object):
+class Command (with_metaclass(CommandClass, DC.Command, object)):
"""
Base class for `mdwsetup' command classes.
description = "print the distribution directory name to stdout"
def run(me):
d = me.distribution
- print '%s-%s' % (d.get_name(), d.get_version())
+ print('%s-%s' % (d.get_name(), d.get_version()))
class build_gen(Command):
"""