diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000000000000000000000000000000000000..523902ae46b58a1345f8fb9541aa9d2c4c3b5f0b --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,2 @@ +global-include *.pyx +global-include *.c \ No newline at end of file diff --git a/setup.py b/setup.py index 49a0cbe63f7f7b5a2b7c394498f9553cc3f37852..10d05b652d824c3929a8059c07d9e4175b1c0775 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -from setuptools import setup +from setuptools import setup, find_packages from distutils.core import Extension import numpy import sys @@ -12,42 +12,31 @@ except ImportError: else: USE_CYTHON = True +ext = '.pyx' if USE_CYTHON else '.c' +extension_args = {'language': 'c', + 'extra_compile_args': ['-fopenmp'], + 'extra_link_args': ['-lomp'], + 'libraries': cython_gsl.get_libraries(), + 'library_dirs': [cython_gsl.get_library_dir(), + '/usr/local/lib', + os.path.join(sys.prefix, 'lib')], + 'include_dirs': [numpy.get_include(), + cython_gsl.get_cython_include_dir(), + os.path.join(sys.prefix, 'include')], + 'define_macros': [("NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION")]} + +extensions = [Extension(name='pyrost.bin.beam_calc', + sources=['pyrost/bin/beam_calc' + ext], **extension_args), + Extension(name='pyrost.bin.st_utils', + sources=['pyrost/bin/st_utils' + ext], **extension_args)] + if USE_CYTHON: - extensions = [Extension(name='beam_calc', - sources=["pyrost/bin/beam_calc.pyx"], - language="c", - extra_compile_args=['-fopenmp'], - extra_link_args=['-lomp'], - libraries=cython_gsl.get_libraries(), - library_dirs=[cython_gsl.get_library_dir(), '/usr/local/lib', - os.path.join(sys.prefix, 'lib')], - include_dirs=[numpy.get_include(), - cython_gsl.get_cython_include_dir(), - os.path.join(sys.prefix, 'include')], - define_macros=[("NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION")]), - Extension(name='st_utils', - sources=["pyrost/bin/st_utils.pyx"], - language="c", - extra_compile_args=['-fopenmp'], - extra_link_args=['-lomp'], - libraries=cython_gsl.get_libraries(), - library_dirs=[cython_gsl.get_library_dir(), '/usr/local/lib', - os.path.join(sys.prefix, 'lib')], - include_dirs=[numpy.get_include(), - cython_gsl.get_cython_include_dir(), - os.path.join(sys.prefix, 'include')], - define_macros=[("NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION")])] extensions = cythonize(extensions, annotate=False, language_level="3", - build_dir="build", compiler_directives={'cdivision': True, 'boundscheck': False, 'wraparound': False, 'binding': True, 'embedsignature': True}) -else: - extensions = [Extension(name="pyrost/bin/*", - sources=["pyrost/bin/*.c"], - include_dirs=[numpy.get_include()])] with open('README.md', 'r') as readme: long_description = readme.read() @@ -59,13 +48,10 @@ setup(name='pyrost', long_description=long_description, long_description_content_type='text/markdown', url="https://github.com/simply-nicky/rst", - install_requires=[ - 'Cython', - 'CythonGSL', - 'h5py', - 'numpy', - 'scipy', - ], + packages=find_packages(), + include_package_data=True, + package_data={'pyrost.bin': ['*.pyx']}, + install_requires=['Cython', 'CythonGSL', 'h5py', 'numpy', 'scipy',], extras_require={'interactive': ['matplotlib', 'jupyter', 'pyximport']}, setup_requires=['pytest-runner'], tests_require=['pytest'], @@ -75,5 +61,4 @@ setup(name='pyrost', "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent" ], - python_requires='>=3.7', - options={'build': {'build_lib': 'pyrost/bin'}}) + python_requires='>=3.7')