summaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/setup.py b/setup.py
index 081cdb4c4b..c5ae133b34 100644
--- a/setup.py
+++ b/setup.py
@@ -1,8 +1,27 @@
from distutils.core import setup
+from distutils.command.install_data import install_data
from distutils.command.install import INSTALL_SCHEMES
import os
import sys
+class osx_install_data(install_data):
+ # On MacOS, the platform-specific lib dir is /System/Library/Framework/Python/.../
+ # which is wrong. Python 2.5 supplied with MacOS 10.5 has an Apple-specific fix
+ # for this in distutils.command.install_data#306. It fixes install_lib but not
+ # install_data, which is why we roll our own install_data class.
+
+ def finalize_options(self):
+ # By the time finalize_options is called, install.install_lib is set to the
+ # fixed directory, so we set the installdir to install_lib. The
+ # install_data class uses ('install_data', 'install_dir') instead.
+ self.set_undefined_options('install', ('install_lib', 'install_dir'))
+ install_data.finalize_options(self)
+
+if sys.platform == "darwin":
+ cmdclasses = {'install_data': osx_install_data}
+else:
+ cmdclasses = {'install_data': install_data}
+
def fullsplit(path, result=None):
"""
Split a pathname into components (the opposite of os.path.join) in a
@@ -55,6 +74,7 @@ setup(
author_email = 'foundation@djangoproject.com',
description = 'A high-level Python Web framework that encourages rapid development and clean, pragmatic design.',
packages = packages,
+ cmdclass = cmdclasses,
data_files = data_files,
scripts = ['django/bin/django-admin.py'],
)