aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Partin <tristan@partin.io>2022-03-23 11:42:01 -0500
committerXavier Claessens <xclaesse@gmail.com>2022-03-23 15:44:01 -0400
commitc65abc568c48b37db2267bfb25322c850ba014a9 (patch)
tree772ce2afe41b968bec3e7798c37508e04ef016c6
parenteccdbfe3d1b0fb11f99f44f67f0f66731d52030a (diff)
downloadmeson-c65abc568c48b37db2267bfb25322c850ba014a9.zip
meson-c65abc568c48b37db2267bfb25322c850ba014a9.tar.gz
meson-c65abc568c48b37db2267bfb25322c850ba014a9.tar.bz2
Add support for cython_args
cython_args was previoously ignored by Meson.
-rw-r--r--mesonbuild/backend/ninjabackend.py1
-rw-r--r--test cases/cython/3 cython_args/cythonargs.pyx5
-rw-r--r--test cases/cython/3 cython_args/meson.build30
-rw-r--r--test cases/cython/3 cython_args/test.py3
4 files changed, 39 insertions, 0 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index e0fdc93..6f560fe 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -1615,6 +1615,7 @@ class NinjaBackend(backends.Backend):
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 0000000..2b220a7
--- /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 0000000..e41d1b7
--- /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 0000000..bd8a152
--- /dev/null
+++ b/test cases/cython/3 cython_args/test.py
@@ -0,0 +1,3 @@
+import cythonargs
+
+assert cythonargs.test() == 1