Commit 5409958b authored by Stefan Behnel's avatar Stefan Behnel

find .pxd include directories automatically during installation

parent 8a0ab027
......@@ -37,32 +37,35 @@ if sys.version_info[0] >= 3:
build_py.fixer_names = fixers
add_command_class("build_py", build_py)
pxd_packages = ['cpython', 'libc', 'libcpp']
pxd_include_dirs = [
directory for directory, dirs, files in os.walk('Cython/Includes')
if '__init__.pyx' in files or '__init__.pxd' in files
or directory == 'Cython/Includes' ]
pxd_include_patterns = [
p+'/*.pxd' for p in pxd_include_dirs ] + [
p+'/*.pyx' for p in pxd_include_dirs ]
if sys.version_info < (2,4):
install_base_dir = get_python_lib(prefix='')
import glob
patterns = ['Cython/Includes/*.pxd',
'Cython/Plex/*.pxd',
'Cython/Compiler/*.pxd',
'Cython/Runtime/*.pyx']
for p in pxd_packages:
patterns.append('Cython/Includes/%s/*.pxd' % p)
patterns.append('Cython/Includes/%s/__init__.pyx' % p)
patterns = pxd_include_patterns + [
'Cython/Plex/*.pxd',
'Cython/Compiler/*.pxd',
'Cython/Runtime/*.pyx'
]
setup_args['data_files'] = [
(os.path.dirname(os.path.join(install_base_dir, pattern)),
[ f for f in glob.glob(pattern) ])
for pattern in patterns
]
else:
patterns = ['Includes/*.pxd',
'Plex/*.pxd',
'Compiler/*.pxd',
'Runtime/*.pyx']
for p in pxd_packages:
patterns.append('Includes/%s/*.pxd' % p)
patterns.append('Includes/%s/__init__.pyx' % p)
setup_args['package_data'] = {'Cython' : patterns}
setup_args['package_data'] = {
'Cython.Plex' : ['*.pxd'],
'Cython.Compiler' : ['*.pxd'],
'Cython.Runtime' : ['*.pyx', '*.pxd'],
'Cython' : [ p[7:] for p in pxd_include_patterns ],
}
# This dict is used for passing extra arguments that are setuptools
# specific to setup
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment