summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalf Gommers <ralf.gommers@gmail.com>2023-04-21 23:41:45 +0100
committerEli Schwartz <eschwartz93@gmail.com>2023-05-05 12:23:52 -0400
commit91c7e795193792b734563ccef44bf7bfdb8e9b8e (patch)
tree3f06006ee3f740f7df30b873c03eb7bbc0b4052a
parenta95ebf10776757664e1c1ad91f662374a31e0133 (diff)
downloadmeson-91c7e795193792b734563ccef44bf7bfdb8e9b8e.tar.gz
Use release buildtype in Cython tests, and skip unless ninja backend
This matches the tests for Python extensions. Also include some other cleanups to these `meson.build` files: Adding `python_dep` is no longer needed, this is automatic now. Use a single line for `import('python').find_installation()`, because the result of `import('python')` by itself is not used for anything.
-rw-r--r--test cases/cython/1 basic/meson.build9
-rw-r--r--test cases/cython/2 generated sources/meson.build17
-rw-r--r--test cases/cython/3 cython_args/meson.build17
-rw-r--r--test cases/python/3 cython/libdir/meson.build4
-rw-r--r--test cases/python/3 cython/meson.build7
5 files changed, 33 insertions, 21 deletions
diff --git a/test cases/cython/1 basic/meson.build b/test cases/cython/1 basic/meson.build
index 8c24e2312..81a24f52e 100644
--- a/test cases/cython/1 basic/meson.build
+++ b/test cases/cython/1 basic/meson.build
@@ -1,11 +1,14 @@
project(
'basic cython project',
['cython', 'c'],
- default_options : ['warning_level=3']
+ default_options : ['warning_level=3', 'buildtype=release'],
)
-py_mod = import('python')
-py3 = py_mod.find_installation()
+if meson.backend() != 'ninja'
+ error('MESON_SKIP_TEST: Ninja backend required')
+endif
+
+py3 = import('python').find_installation()
py3_dep = py3.dependency(required : false)
if not py3_dep.found()
error('MESON_SKIP_TEST: Python library not found.')
diff --git a/test cases/cython/2 generated sources/meson.build b/test cases/cython/2 generated sources/meson.build
index 498e31908..4b0bf739f 100644
--- a/test cases/cython/2 generated sources/meson.build
+++ b/test cases/cython/2 generated sources/meson.build
@@ -1,12 +1,16 @@
project(
'generated cython sources',
['cython'],
+ default_options : ['buildtype=release'],
)
-py_mod = import('python')
-py3 = py_mod.find_installation('python3')
-py3_dep = py3.dependency(required : false)
+if meson.backend() != 'ninja'
+ error('MESON_SKIP_TEST: Ninja backend required')
+endif
+
fs = import('fs')
+py3 = import('python').find_installation('python3')
+py3_dep = py3.dependency(required : false)
if not py3_dep.found()
error('MESON_SKIP_TEST: Python library not found.')
endif
@@ -18,7 +22,7 @@ ct = custom_target(
command : [py3, '@INPUT@', '@OUTPUT@'],
)
-ct_ext = py3.extension_module('ct', ct, dependencies : py3_dep)
+ct_ext = py3.extension_module('ct', ct)
test(
'custom target',
@@ -35,7 +39,7 @@ cti = custom_target(
command : [py3, '@INPUT@', '@OUTPUT@'],
)
-cti_ext = py3.extension_module('cti', cti[0], dependencies : py3_dep)
+cti_ext = py3.extension_module('cti', cti[0])
cf = configure_file(
input : 'configure.pyx.in',
@@ -43,7 +47,7 @@ cf = configure_file(
copy : true,
)
-cf_ext = py3.extension_module('cf', cf, dependencies : py3_dep)
+cf_ext = py3.extension_module('cf', cf)
test(
'configure file',
@@ -61,7 +65,6 @@ gen = generator(
g_ext = py3.extension_module(
'g',
gen.process('g.in'),
- dependencies : py3_dep,
)
test(
diff --git a/test cases/cython/3 cython_args/meson.build b/test cases/cython/3 cython_args/meson.build
index e41d1b735..45cbbbb30 100644
--- a/test cases/cython/3 cython_args/meson.build
+++ b/test cases/cython/3 cython_args/meson.build
@@ -1,7 +1,14 @@
-project('cython_args', ['cython', 'c'])
+project('cython_args', ['cython', 'c'],
+ # Needed because Windows Python builds are release-only and tend to be
+ # unhappy with a debug build type.
+ default_options : ['buildtype=release']
+)
+
+if meson.backend() != 'ninja'
+ error('MESON_SKIP_TEST: Ninja backend required')
+endif
-pymod = import('python')
-python = pymod.find_installation('python3')
+python = import('python').find_installation('python3')
python_dep = python.dependency()
if not python_dep.found()
error('MESON_SKIP_TEST: Python library not found.')
@@ -12,9 +19,9 @@ mod = python.extension_module(
files('cythonargs.pyx'),
cython_args: [
'--compile-time-env',
- 'VALUE=1'
+ 'VALUE=1',
+ '-3',
],
- dependencies: [python_dep]
)
test(
diff --git a/test cases/python/3 cython/libdir/meson.build b/test cases/python/3 cython/libdir/meson.build
index 2b6ebc7af..d148b00a7 100644
--- a/test cases/python/3 cython/libdir/meson.build
+++ b/test cases/python/3 cython/libdir/meson.build
@@ -1,11 +1,11 @@
pyx_c = custom_target('storer_pyx',
output : 'storer_pyx.c',
input : 'storer.pyx',
- command : [cython, '@INPUT@', '-o', '@OUTPUT@'],
+ command : [cython, '@INPUT@', '-o', '@OUTPUT@', '-3'],
)
slib = py3.extension_module('storer',
'storer.c', pyx_c,
- dependencies : py3_dep)
+)
pydir = meson.current_build_dir()
diff --git a/test cases/python/3 cython/meson.build b/test cases/python/3 cython/meson.build
index 5fc07a882..8ff8d515e 100644
--- a/test cases/python/3 cython/meson.build
+++ b/test cases/python/3 cython/meson.build
@@ -1,6 +1,6 @@
project('cython', 'c',
- default_options : ['warning_level=3'])
-
+ default_options : ['warning_level=3', 'buildtype=release']
+)
if meson.backend() != 'ninja'
error('MESON_SKIP_TEST: Ninja backend required')
endif
@@ -10,8 +10,7 @@ if not cython.found()
error('MESON_SKIP_TEST: Cython3 not found.')
endif
-py_mod = import('python')
-py3 = py_mod.find_installation()
+py3 = import('python').find_installation(pure: false)
py3_dep = py3.dependency(required: false)
if not py3_dep.found()
error('MESON_SKIP_TEST: Python library not found.')