Skip to content

Commit 6d9a81e

Browse files
author
Pan
committed
Added compile time env definition for embedded library.
Conditionally include new libssh2 API endpoints, default to false for compatibility with older versions of libssh2.
1 parent 265e75b commit 6d9a81e

24 files changed

+2180
-4398
lines changed

setup.py

+22-31
Original file line numberDiff line numberDiff line change
@@ -7,56 +7,47 @@
77
from multiprocessing import cpu_count
88

99
import versioneer
10-
from setuptools import setup, find_packages, Extension
10+
from setuptools import setup, find_packages
1111

1212
cpython = platform.python_implementation() == 'CPython'
1313

1414
try:
1515
from Cython.Build import cythonize
16+
from Cython.Distutils.extension import Extension
17+
from Cython.Distutils import build_ext
1618
except ImportError:
19+
from setuptools import Extension
1720
USING_CYTHON = False
1821
else:
1922
USING_CYTHON = True
2023

2124
ext = 'pyx' if USING_CYTHON else 'c'
22-
sources = ['ssh2/*.%s' % (ext,)]
25+
sources = glob('ssh2/*.%s' % (ext,))
2326
_libs = ['ssh2']
2427
_comp_args = ["-ggdb"] # , "-O3"]
28+
_embedded_lib = bool(os.environ.get('EMBEDDED_LIB'))
29+
cython_args = {'cython_compile_time_env': {'EMBEDDED_LIB': _embedded_lib}} \
30+
if USING_CYTHON else {}
2531

32+
extensions = [
33+
Extension(sources[i].split('.')[0].replace('/', '.'),
34+
sources=[sources[i]],
35+
libraries=_libs,
36+
extra_compile_args=_comp_args,
37+
**cython_args
38+
# For conditional compilation
39+
# pyrex_compile_time_env
40+
)
41+
for i in range(len(sources))]
42+
43+
cmdclass = versioneer.get_cmdclass()
2644
if USING_CYTHON:
27-
extensions = [
28-
Extension('ssh2/*',
29-
sources=sources,
30-
libraries=_libs,
31-
extra_compile_args=_comp_args,
32-
# For conditional compilation
33-
# pyrex_compile_time_env
34-
)
35-
]
36-
extensions = cythonize(
37-
extensions,
38-
compiler_directives={'embedsignature': True,
39-
'optimize.use_switch': True,
40-
'boundscheck': False,
41-
'wraparound': False,
42-
},
43-
nthreads=cpu_count())
44-
else:
45-
sources = glob(sources[0])
46-
extensions = [
47-
Extension(sources[i].split('.')[0].replace('/', '.'),
48-
sources=[sources[i]],
49-
libraries=_libs,
50-
extra_compile_args=_comp_args,
51-
# For conditional compilation
52-
# pyrex_compile_time_env
53-
)
54-
for i in range(len(sources))]
45+
cmdclass['build_ext'] = build_ext
5546

5647
setup(
5748
name='ssh2-python',
5849
version=versioneer.get_version(),
59-
cmdclass=versioneer.get_cmdclass(),
50+
cmdclass=cmdclass,
6051
url='https://github.com/ParallelSSH/ssh2-python',
6152
license='LGPLv2',
6253
author='Panos Kittenis',

0 commit comments

Comments
 (0)