import sys
import tempfile
import textwrap
+if not pkgutil.find_loader('setuptools'):
+ from distutils.core import setup
+ from distutils.extension import Extension
+else:
+ from setuptools import setup
+ from setuptools.extension import Extension
from distutils.ccompiler import new_compiler
from distutils.errors import CompileError, LinkError
from itertools import filterfalse, takewhile
distutils.sysconfig.customize_compiler = \
monkey_with_compiler(distutils.sysconfig.customize_compiler)
-if not pkgutil.find_loader('setuptools'):
- from distutils.core import setup
- from distutils.extension import Extension
-else:
- from setuptools import setup
- from setuptools.extension import Extension
-
# PEP 440 versioning of the Ceph FS package on PyPI
# Bump this version, after every changeset
def get_python_flags(libs):
py_libs = sum((libs.split() for libs in
distutils.sysconfig.get_config_vars('LIBS', 'SYSLIBS')), [])
+ ldflags = list(filterfalse(lambda lib: lib.startswith('-l'), py_libs))
+ py_libs = [lib.replace('-l', '') for lib in
+ filter(lambda lib: lib.startswith('-l'), py_libs)]
compiler = new_compiler()
distutils.sysconfig.customize_compiler(compiler)
return dict(
include_dirs=[distutils.sysconfig.get_python_inc()],
library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'),
- libraries=libs + [lib.replace('-l', '') for lib in py_libs],
+ libraries=libs + py_libs,
extra_compile_args=filter_unsupported_flags(
compiler.compiler[0],
- distutils.sysconfig.get_config_var('CFLAGS').split()),
+ compiler.compiler[1:] + distutils.sysconfig.get_config_var('CFLAGS').split()),
extra_link_args=(distutils.sysconfig.get_config_var('LDFLAGS').split() +
- distutils.sysconfig.get_config_var('LINKFORSHARED').split()))
+ ldflags))
def check_sanity():
shutil.rmtree(tmp_dir)
-if 'BUILD_DOC' in os.environ.keys():
- pass
+if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
+ ext_args = {}
+ cython_constants = dict(BUILD_DOC=True)
+ cythonize_args = dict(compile_time_env=cython_constants)
elif check_sanity():
- pass
+ ext_args = get_python_flags(['cephfs'])
+ cython_constants = dict(BUILD_DOC=False)
+ include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")]
+ cythonize_args = dict(compile_time_env=cython_constants,
+ include_path=include_path)
else:
sys.exit(1)
Extension(
"cephfs",
[source],
- **get_python_flags(['cephfs'])
+ **ext_args
)
],
compiler_directives={'language_level': sys.version_info.major},
build_dir=os.environ.get("CYTHON_BUILD_DIR", None),
- include_path=[
- os.path.join(os.path.dirname(__file__), "..", "rados")
- ]
+ **cythonize_args
),
classifiers=[
'Intended Audience :: Developers',
'License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)',
'Operating System :: POSIX :: Linux',
'Programming Language :: Cython',
- 'Programming Language :: Python :: 2.7',
- 'Programming Language :: Python :: 3.4',
- 'Programming Language :: Python :: 3.5'
+ 'Programming Language :: Python :: 3',
],
cmdclass=cmdclass,
)