You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-python/pysimdjson/files/pysimdjson-4.0.0-unbundle.p...

96 lines
2.5 KiB

diff --git a/setup.py b/setup.py
index f1de675..4c23028 100644
--- a/setup.py
+++ b/setup.py
@@ -27,53 +27,59 @@ if system == 'Darwin':
os.environ.setdefault('MACOSX_DEPLOYMENT_TARGET', '10.14')
extra_compile_args.append('-std=c++11')
-if os.getenv('BUILD_WITH_CYTHON') and not CYTHON_AVAILABLE:
+build_with_cython = os.getenv('BUILD_WITH_CYTHON')
+if build_with_cython and not CYTHON_AVAILABLE:
print(
'BUILD_WITH_CYTHON environment variable is set, but cython'
' is not available. Falling back to pre-cythonized version if'
' available.'
)
+ build_with_cython = False
-if os.getenv('BUILD_WITH_CYTHON') and CYTHON_AVAILABLE:
- macros = []
- compiler_directives = {
- 'embedsignature': True
- }
+build_with_system_lib = os.getenv('BUILD_WITH_SYSTEM_LIB')
+
+macros = []
+compiler_directives = {}
+libraries = []
+sources = [
+ 'simdjson/errors.cpp',
+]
+
+if build_with_system_lib:
+ libraries.append('simdjson')
+else:
+ sources.append('simdjson/simdjson.cpp')
+
+if build_with_cython:
+ compiler_directives['embedsignature'] = True
if os.getenv('BUILD_FOR_DEBUG'):
# Enable line tracing, which also enables support for coverage
# reporting.
- macros = [
+ macros += [
('CYTHON_TRACE', 1),
('CYTHON_TRACE_NOGIL', 1)
]
compiler_directives['linetrace'] = True
- extensions = cythonize([
- Extension(
- 'csimdjson',
- [
- 'simdjson/simdjson.cpp',
- 'simdjson/errors.cpp',
- 'simdjson/csimdjson.pyx'
- ],
- define_macros=macros,
- extra_compile_args=extra_compile_args
- )
- ], compiler_directives=compiler_directives)
+ sources.append('simdjson/csimdjson.pyx')
else:
- extensions = [
- Extension(
- 'csimdjson',
- [
- 'simdjson/simdjson.cpp',
- 'simdjson/errors.cpp',
- 'simdjson/csimdjson.cpp'
- ],
- extra_compile_args=extra_compile_args,
- language='c++'
- )
- ]
+ sources.append('simdjson/csimdjson.cpp')
+
+
+extensions = [
+ Extension(
+ 'csimdjson',
+ sources,
+ define_macros=macros,
+ extra_compile_args=extra_compile_args,
+ libraries=libraries,
+ language='c++',
+ )
+]
+
+if build_with_cython:
+ extensions = cythonize(extensions, compiler_directives=compiler_directives)
setup(
name='pysimdjson',