[cig-commits] r5245 - in cs/merlin/branches/v1: merlin/command
merlin.egg-info
leif at geodynamics.org
leif at geodynamics.org
Fri Nov 10 19:24:19 PST 2006
Author: leif
Date: 2006-11-10 19:24:18 -0800 (Fri, 10 Nov 2006)
New Revision: 5245
Added:
cs/merlin/branches/v1/merlin/command/egg_flags.py
Modified:
cs/merlin/branches/v1/merlin.egg-info/SOURCES.txt
cs/merlin/branches/v1/merlin.egg-info/entry_points.txt
cs/merlin/branches/v1/merlin/command/__init__.py
Log:
Added 'egg_flags' command to replace the Autoconf macro
CIT_PYTHON_EGG_FLAGS. This may only be temporary, however:
I'm considering turning the Pythia egg into a ZIP file egg,
which would require extracting its header files in the build
directory instead.
Modified: cs/merlin/branches/v1/merlin/command/__init__.py
===================================================================
--- cs/merlin/branches/v1/merlin/command/__init__.py 2006-11-11 03:16:36 UTC (rev 5244)
+++ cs/merlin/branches/v1/merlin/command/__init__.py 2006-11-11 03:24:18 UTC (rev 5245)
@@ -3,7 +3,7 @@
'easy_install', 'egg_info', 'install', 'install_lib', 'rotate', 'saveopts',
'sdist', 'setopt', 'test', 'upload', 'install_egg_info', 'install_scripts',
'register',
- 'install_deps', 'sdist_egg',
+ 'install_deps', 'sdist_egg', 'egg_flags',
]
import sys
Added: cs/merlin/branches/v1/merlin/command/egg_flags.py
===================================================================
--- cs/merlin/branches/v1/merlin/command/egg_flags.py 2006-11-11 03:16:36 UTC (rev 5244)
+++ cs/merlin/branches/v1/merlin/command/egg_flags.py 2006-11-11 03:24:18 UTC (rev 5245)
@@ -0,0 +1,88 @@
+
+
+from merlin import Command
+#from merlin.command.easy_install import easy_install
+
+
+class egg_flags(Command):
+
+ """Command to get egg-related build flags."""
+
+ description = "pring egg-related build flags"
+
+ user_options = [
+ ]
+
+
+ def initialize_options(self): pass
+
+
+ def finalize_options(self):
+ import os
+ from merlin import Distribution, PathMetadata, normalize_path
+
+ ei = self.get_finalized_command("egg_info")
+ if ei.broken_egg_info:
+ raise DistutilsError(
+ "Please rename %r to %r before using 'egg_flags'"
+ % (ei.egg_info, ei.broken_egg_info)
+ )
+ self.args = [ei.egg_name]
+ #easy_install.finalize_options(self)
+ self.egg_base = ei.egg_base
+ self.egg_path = os.path.abspath(ei.egg_base)
+ # Make a distribution for the package's source
+ self.dist = Distribution(
+ normalize_path(self.egg_path),
+ PathMetadata(self.egg_path, os.path.abspath(ei.egg_info)),
+ project_name = ei.egg_name
+ )
+
+
+ def run(self):
+
+ from merlin import WorkingSet
+
+ import sys
+ from ConfigParser import ConfigParser, NoOptionError
+ from StringIO import StringIO
+
+ flags = dict(
+ CFLAGS = [],
+ CPPFLAGS = [],
+ LDFLAGS = [],
+ )
+
+ requirements = [self.dist.as_requirement()]
+ working_set = WorkingSet()
+
+ deps = working_set.resolve(requirements)
+ deps.reverse()
+ dependencies = []
+ processed = {}
+ for dist in deps:
+ if dist in processed:
+ continue
+ dependencies.insert(0, dist)
+ processed[dist] = True
+ for dist in dependencies:
+ if dist.has_metadata('config.cfg'):
+ parser = ConfigParser({'location': dist.location})
+ config = dist.get_metadata('config.cfg')
+ fp = StringIO(config)
+ parser.readfp(fp, 'config.cfg')
+ for k,v in flags.iteritems():
+ try:
+ v.append(parser.get('flags', k))
+ except NoOptionError:
+ pass
+
+ stream = open("egg-flags.sh", "w")
+ for k,v in flags.iteritems():
+ print >> stream, 'PYTHON_EGG_%s="%s"' % (k, ' '.join(v))
+ stream.close()
+
+ return
+
+
+# end of file
Modified: cs/merlin/branches/v1/merlin.egg-info/SOURCES.txt
===================================================================
--- cs/merlin/branches/v1/merlin.egg-info/SOURCES.txt 2006-11-11 03:16:36 UTC (rev 5244)
+++ cs/merlin/branches/v1/merlin.egg-info/SOURCES.txt 2006-11-11 03:24:18 UTC (rev 5245)
@@ -40,6 +40,7 @@
merlin/command/develop.py
merlin/command/easy_install.py
merlin/command/egg_info.py
+merlin/command/flags.py
merlin/command/install.py
merlin/command/install_deps.py
merlin/command/install_egg_info.py
Modified: cs/merlin/branches/v1/merlin.egg-info/entry_points.txt
===================================================================
--- cs/merlin/branches/v1/merlin.egg-info/entry_points.txt 2006-11-11 03:16:36 UTC (rev 5244)
+++ cs/merlin/branches/v1/merlin.egg-info/entry_points.txt 2006-11-11 03:24:18 UTC (rev 5245)
@@ -28,26 +28,27 @@
[merlin.distutils.commands]
bdist_rpm = merlin.command.bdist_rpm:bdist_rpm
+saveopts = merlin.command.saveopts:saveopts
+sdist = merlin.command.sdist:sdist
+sdist_egg = merlin.command.sdist_egg:sdist_egg
+build_ext = merlin.command.build_ext:build_ext
+develop = merlin.command.develop:develop
+build_py = merlin.command.build_py:build_py
+test = merlin.command.test:test
+install_scripts = merlin.command.install_scripts:install_scripts
+setopt = merlin.command.setopt:setopt
+egg_flags = merlin.command.egg_flags:egg_flags
+install_egg_info = merlin.command.install_egg_info:install_egg_info
install_deps = merlin.command.install_deps:install_deps
rotate = merlin.command.rotate:rotate
-develop = merlin.command.develop:develop
-setopt = merlin.command.setopt:setopt
-build_py = merlin.command.build_py:build_py
-saveopts = merlin.command.saveopts:saveopts
egg_info = merlin.command.egg_info:egg_info
register = merlin.command.register:register
upload = merlin.command.upload:upload
-install_egg_info = merlin.command.install_egg_info:install_egg_info
alias = merlin.command.alias:alias
easy_install = merlin.command.easy_install:easy_install
-install_scripts = merlin.command.install_scripts:install_scripts
-sdist_egg = merlin.command.sdist_egg:sdist_egg
bdist_egg = merlin.command.bdist_egg:bdist_egg
install = merlin.command.install:install
-test = merlin.command.test:test
install_lib = merlin.command.install_lib:install_lib
-build_ext = merlin.command.build_ext:build_ext
-sdist = merlin.command.sdist:sdist
[console_scripts]
merlin = merlin:main
More information about the cig-commits
mailing list