setup.py: fix to catch all modules
authorAlain Péteut <peteut@space.unibe.ch>
Mon, 26 Dec 2011 12:41:35 +0000 (13:41 +0100)
committerSebastien Bourdeauducq <sebastien@milkymist.org>
Tue, 27 Dec 2011 10:19:37 +0000 (11:19 +0100)
Signed-off-by: Alain Péteut <peteut@space.unibe.ch>
setup.py

index 4bdf62e442c4248e2ff4ea795ef7bf6b4bf8f86a..e46835dece08a9160060990147bf5db6a277ddd8 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3.2
+# vim: noexpandtab:tabstop=8:softtabstop=8
 """ Migen's distutils distribution and installation script. """
 
 import sys, os
@@ -7,9 +8,19 @@ from distutils.core import setup
 here = os.path.abspath(os.path.dirname(__file__))
 README = open(os.path.join(here, "README")).read()
 
-if sys.version_info < (3, 2):
-       raise SystemExit("migen requires python 3.2 or greater")
+required_version = (3, 2)
+if sys.version_info < required_version:
+       raise SystemExit("migen requires python {0} or greater".format(
+               ".".join(map(str, required_version))))
 
+packages = ['migen']
+packages_dir = os.path.sep.join((here, packages[0]))
+for entry in os.listdir(packages_dir):
+       if (os.path.isdir(os.path.sep.join((packages_dir, entry))) and
+        os.path.isfile(os.path.sep.join((packages_dir, entry, '__init__.py')))):
+               packages.append('.'.join((packages[0], entry)))
+
+packages_dir={'': 'migen'}
 setup(
        name="migen",
        version="unknown",
@@ -19,7 +30,7 @@ setup(
        author_email="sebastien@milkymist.org",
        url="http://www.milkymist.org",
        download_url="https://github.com/milkymist/migen",
-       packages=['', 'migen'],
+       packages=packages,
        license="GPL",
        platforms=["Any"],
        keywords="HDL ASIC FPGA hardware design",