cython

extra_compile_args in Cython


I want to pass some extra options to the Cython compiler by using extra_compile_args.

My setup.py:

from distutils.core import setup

from Cython.Build import cythonize

setup(
  name = 'Test app',
  ext_modules = cythonize("test.pyx", language="c++", extra_compile_args=["-O3"]),
)

However, when I run python setup.py build_ext --inplace, I get the following warning:

UserWarning: got unknown compilation option, please remove: extra_compile_args

Question: How does one use extra_compile_args correctly?

I use Cython 0.23.4 under Ubuntu 14.04.3.


Solution

  • Use the more traditional way without cythonize to supply extra compiler options:

    from distutils.core import setup
    from distutils.extension import Extension
    from Cython.Distutils import build_ext
    
    setup(
      name = 'Test app',
      ext_modules=[
        Extension('test',
                  sources=['test.pyx'],
                  extra_compile_args=['-O3'],
                  language='c++')
        ],
      cmdclass = {'build_ext': build_ext}
    )