summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/pysimdjson')
-rw-r--r--dev-python/pysimdjson/files/pysimdjson-4.0.0-unbundle.patch95
-rw-r--r--dev-python/pysimdjson/metadata.xml4
-rw-r--r--dev-python/pysimdjson/pysimdjson-4.0.0.ebuild9
3 files changed, 107 insertions, 1 deletions
diff --git a/dev-python/pysimdjson/files/pysimdjson-4.0.0-unbundle.patch b/dev-python/pysimdjson/files/pysimdjson-4.0.0-unbundle.patch
new file mode 100644
index 000000000000..de52bc063a24
--- /dev/null
+++ b/dev-python/pysimdjson/files/pysimdjson-4.0.0-unbundle.patch
@@ -0,0 +1,95 @@
+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',
diff --git a/dev-python/pysimdjson/metadata.xml b/dev-python/pysimdjson/metadata.xml
index bbbada85c7ef..0fbbf43703c8 100644
--- a/dev-python/pysimdjson/metadata.xml
+++ b/dev-python/pysimdjson/metadata.xml
@@ -5,6 +5,10 @@
<email>chutzpah@gentoo.org</email>
<name>Patrick McLean</name>
</maintainer>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
<upstream>
<remote-id type="pypi">pysimdjson</remote-id>
</upstream>
diff --git a/dev-python/pysimdjson/pysimdjson-4.0.0.ebuild b/dev-python/pysimdjson/pysimdjson-4.0.0.ebuild
index 67405c43dc7b..3400cda568d5 100644
--- a/dev-python/pysimdjson/pysimdjson-4.0.0.ebuild
+++ b/dev-python/pysimdjson/pysimdjson-4.0.0.ebuild
@@ -23,13 +23,20 @@ BDEPEND="
"
distutils_enable_tests pytest
+PATCHES=(
+ "${FILESDIR}"/${P}-unbundle.patch
+)
+
src_prepare() {
# benchmarks aren't run
sed -i -e 's:pytest-benchmark::' setup.cfg || die
# force regen
-# rm simdjson/csimdjson.cpp || die
+ rm simdjson/csimdjson.cpp || die
+ # bundled lib :-(
+ rm simdjson/simdjson.{cpp,h} || die
distutils-r1_src_prepare
export BUILD_WITH_CYTHON=1
+ export BUILD_WITH_SYSTEM_LIB=1
}