Cython conditional compilation based on external value given via `setuptools`
conditional-compilation, cython, python, setuptools
Solution
Thank you for the link.
The interesting flag in the `setup.py` is `cython_compile_time_env`. And to import the `Extension` from Cython.
from setuptools import setup
from Cython.Distutils.extension import Extension
ext = Extension(
name,
include_dirs=include_dirs,
cython_compile_time_env=dict(OPENMP=True),
sources=['test.pyx'])
setup(name=name,
cmdclass=dict(build_ext=build_ext),
ext_modules=[ext])
And in the `test.pyx`:
...
IF OPENMP:
#Do openmp
ELSE:
#No openmp
...
Cython conditional statements (`IF...ELSE` above) are documented here.
Problem
I try to conditionally generate C code from a Cython pyx file. I found in the Cython documentation that I can use `DEF` to define a value and `IF` to conditionally generate code based on a defined value, but how can I set the value from the `setup.py` via `Extension` from `setuptools`. Thank You