diff options
author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-04-03 12:28:19 +0000 |
---|---|---|
committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-04-03 12:28:19 +0000 |
commit | b9d077c10d0ded84ee91ac375eafb24e1658237d (patch) | |
tree | de2ab952ebf32d84726ab3f5bf8e0b37e29d6132 /setup.py | |
parent | abe6c5d6ae20a3fd29e30ca73df3a54c8177a69c (diff) | |
download | django-b9d077c10d0ded84ee91ac375eafb24e1658237d.tar.gz |
Fixed #3338, #3536, #3796 -- Fixed a bunch of setup and build problems in a
portable fashion. That took a *lot* longer to debug than I thought it would, so
let's try not to break it.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4912 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'setup.py')
-rw-r--r-- | setup.py | 37 |
1 files changed, 26 insertions, 11 deletions
@@ -3,6 +3,20 @@ from distutils.command.install import INSTALL_SCHEMES import os import sys +def fullsplit(path, result=None): + """ + Split a pathname into components (the opposite of os.path.join) in a + platform-neutral way. + """ + if result is None: + result = [] + head, tail = os.path.split(path) + if head == '': + return [tail] + result + if head == path: + return result + return fullsplit(head, [tail] + result) + # Tell distutils to put the data_files in platform-specific installation # locations. See here for an explanation: # http://groups.google.com/group/comp.lang.python/browse_thread/thread/35ec7b2fed36eaec/2105ee4d9e8042cb @@ -13,27 +27,28 @@ for scheme in INSTALL_SCHEMES.values(): # an easy way to do this. packages, data_files = [], [] root_dir = os.path.dirname(__file__) -len_root_dir = len(root_dir) django_dir = os.path.join(root_dir, 'django') +pieces = fullsplit(root_dir) +if pieces[-1] == '': + len_root_dir = len(pieces)- 1 +else: + len_root_dir = len(pieces) for dirpath, dirnames, filenames in os.walk(django_dir): # Ignore dirnames that start with '.' for i, dirname in enumerate(dirnames): if dirname.startswith('.'): del dirnames[i] if '__init__.py' in filenames: - package = dirpath[len_root_dir:].lstrip('/').replace('/', '.') - packages.append(package) - else: + packages.append('.'.join(fullsplit(dirpath)[len_root_dir:])) + elif filenames: data_files.append([dirpath, [os.path.join(dirpath, f) for f in filenames]]) -# Small hack for working with bdist_wininst. -# See http://mail.python.org/pipermail/distutils-sig/2004-August/004134.html -if len(sys.argv) > 1 and sys.argv[1] == 'bdist_wininst': - for file_info in data_files: - file_info[0] = '/PURELIB/%s' % file_info[0] - # Dynamically calculate the version based on django.VERSION. -version = "%d.%d-%s" % (__import__('django').VERSION) +version_tuple = __import__('django').VERSION +if version_tuple[2] is not None: + version = "%d.%d_%s" % version_tuple +else: + version = "%d.%d" % version_tuple[:2] setup( name = "Django", |