2016-03-27 12:56:54 +03:00
|
|
|
from setuptools import setup#, Extension
|
2019-02-18 14:42:44 +02:00
|
|
|
from Cython.Build import cythonize, build_ext
|
2016-03-27 12:56:54 +03:00
|
|
|
from distutils.extension import Extension
|
|
|
|
# setuptools DWIM monkey-patch madness
|
|
|
|
# http://mail.python.org/pipermail/distutils-sig/2007-September/thread.html#8204
|
|
|
|
#import sys
|
|
|
|
#if 'setuptools.extension' in sys.modules:
|
|
|
|
# m = sys.modules['setuptools.extension']
|
|
|
|
# m.Extension.__dict__ = m._Extension.__dict__
|
|
|
|
|
2017-04-19 17:43:24 +03:00
|
|
|
# TODO CHECK THIS OUT http://stackoverflow.com/questions/4056657/what-is-the-easiest-way-to-make-an-optional-c-extension-for-a-python-package
|
|
|
|
# also this: https://docs.python.org/2/extending/building.html
|
|
|
|
import os
|
|
|
|
|
|
|
|
print("You might want to add additional library path to LD_LIBRARY_PATH (especially if you are not using"
|
|
|
|
" GNU GSL in your system library path) and if import fails. ")
|
2017-05-03 08:32:06 +03:00
|
|
|
if("LD_LIBRARY_PATH" in os.environ):
|
2017-05-03 08:30:05 +03:00
|
|
|
print(os.environ['LD_LIBRARY_PATH'].split(':'))
|
2017-04-19 17:43:24 +03:00
|
|
|
|
2016-03-27 12:56:54 +03:00
|
|
|
qpms_c = Extension('qpms_c',
|
2017-05-11 04:38:46 +03:00
|
|
|
sources = ['qpms/qpms_c.pyx', #'qpms/hexpoints_c.pyx',
|
|
|
|
'qpms/gaunt.c',#'qpms/gaunt.h','qpms/vectors.h','qpms/translations.h',
|
2017-04-19 17:43:24 +03:00
|
|
|
# FIXME http://stackoverflow.com/questions/4259170/python-setup-script-extensions-how-do-you-include-a-h-file
|
2019-02-22 08:22:56 +02:00
|
|
|
'qpms/translations.c',
|
|
|
|
'qpms/wigner.c'],
|
2018-05-15 14:37:05 +03:00
|
|
|
extra_compile_args=['-std=c99','-ggdb', '-O0',
|
2017-05-03 08:30:05 +03:00
|
|
|
'-DQPMS_COMPILE_PYTHON_EXTENSIONS', # this is required
|
|
|
|
#'-DQPMS_USE_OMP',
|
2017-04-26 14:12:29 +03:00
|
|
|
'-DDISABLE_NDEBUG', # uncomment to enable assertions in the modules
|
2017-05-03 08:30:05 +03:00
|
|
|
#'-fopenmp',
|
2017-04-26 14:12:29 +03:00
|
|
|
],
|
2017-05-08 19:45:16 +03:00
|
|
|
libraries=['gsl', 'blas', 'gslcblas', #'omp'
|
2018-01-15 15:14:15 +02:00
|
|
|
# TODO resolve the problem with openblas (missing gotoblas symbol) and preferable use other blas library
|
2017-05-03 08:43:29 +03:00
|
|
|
],
|
2017-05-03 08:32:06 +03:00
|
|
|
runtime_library_dirs=os.environ['LD_LIBRARY_PATH'].split(':') if 'LD_LIBRARY_PATH' in os.environ else []
|
2017-04-19 17:43:24 +03:00
|
|
|
)
|
2016-03-27 12:56:54 +03:00
|
|
|
|
|
|
|
setup(name='qpms',
|
2019-02-25 07:03:11 +02:00
|
|
|
version = "0.2.994",
|
2016-03-27 12:56:54 +03:00
|
|
|
packages=['qpms'],
|
2019-02-18 14:42:44 +02:00
|
|
|
setup_requires=['cython>0.28'],
|
2019-02-21 16:05:38 +02:00
|
|
|
install_requires=['cython>=0.21','quaternion','spherical_functions',
|
|
|
|
#'py_gmm' # no longer needed
|
|
|
|
],
|
2019-02-25 09:52:23 +02:00
|
|
|
# TODO implement https://stackoverflow.com/questions/17366784/setuptools-unable-to-use-link-from-dependency-links and update README.md accordingly
|
2016-07-12 03:24:15 +03:00
|
|
|
dependency_links=['https://github.com/texnokrates/py_gmm','https://github.com/moble/quaternion','https://github.com/moble/spherical_functions'],
|
2019-02-18 14:42:44 +02:00
|
|
|
ext_modules=cythonize([qpms_c], include_path=['qpms']),
|
2016-03-27 12:56:54 +03:00
|
|
|
cmdclass = {'build_ext': build_ext},
|
|
|
|
)
|
|
|
|
|
|
|
|
|