diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 256cf7299669..fe64c8fda833 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1608,6 +1608,7 @@ def generate_cython_transpile(self, target: build.BuildTarget) -> \ args += cython.get_option_compile_args(opt_proxy) args += self.build.get_global_args(cython, target.for_machine) args += self.build.get_project_args(cython, target.subproject, target.for_machine) + args += target.get_extra_args('cython') ext = opt_proxy[OptionKey('language', machine=target.for_machine, lang='cython')].value diff --git a/test cases/cython/3 cython_args/cythonargs.pyx b/test cases/cython/3 cython_args/cythonargs.pyx new file mode 100644 index 000000000000..2b220a7079d2 --- /dev/null +++ b/test cases/cython/3 cython_args/cythonargs.pyx @@ -0,0 +1,5 @@ +def test(): + IF VALUE: + return 1 + ELSE: + return 0 diff --git a/test cases/cython/3 cython_args/meson.build b/test cases/cython/3 cython_args/meson.build new file mode 100644 index 000000000000..e41d1b735d60 --- /dev/null +++ b/test cases/cython/3 cython_args/meson.build @@ -0,0 +1,30 @@ +project('cython_args', ['cython', 'c']) + +pymod = import('python') +python = pymod.find_installation('python3') +python_dep = python.dependency() +if not python_dep.found() + error('MESON_SKIP_TEST: Python library not found.') +endif + +mod = python.extension_module( + 'cythonargs', + files('cythonargs.pyx'), + cython_args: [ + '--compile-time-env', + 'VALUE=1' + ], + dependencies: [python_dep] +) + +test( + 'test', + python, + args: [ + 'test.py' + ], + workdir: meson.current_source_dir(), + env: environment({ + 'PYTHONPATH': meson.current_build_dir(), + }) +) diff --git a/test cases/cython/3 cython_args/test.py b/test cases/cython/3 cython_args/test.py new file mode 100644 index 000000000000..bd8a15276f73 --- /dev/null +++ b/test cases/cython/3 cython_args/test.py @@ -0,0 +1,3 @@ +import cythonargs + +assert cythonargs.test() == 1