aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/python3/2 extmodule/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'meson/test cases/python3/2 extmodule/meson.build')
-rw-r--r--meson/test cases/python3/2 extmodule/meson.build37
1 files changed, 37 insertions, 0 deletions
diff --git a/meson/test cases/python3/2 extmodule/meson.build b/meson/test cases/python3/2 extmodule/meson.build
new file mode 100644
index 000000000..def21b027
--- /dev/null
+++ b/meson/test cases/python3/2 extmodule/meson.build
@@ -0,0 +1,37 @@
+project('Python extension module', 'c',
+ default_options : ['buildtype=release'])
+# Because Windows Python ships only with optimized libs,
+# we must build this project the same way.
+
+py3_mod = import('python3')
+py3 = py3_mod.find_python()
+py3_dep = dependency('python3', required : false)
+cc = meson.get_compiler('c')
+
+if py3_dep.found()
+ message('Detected Python version: ' + py3_dep.version())
+ # Building extensions for Python 3 using Visual Studio 2015
+ # no longer works (or, rather, they build but don't run).
+ # Disable the tests in this case.
+ if py3_dep.version().version_compare('>=3.8') and cc.get_id() == 'msvc' and cc.version().version_compare('<=19.00.24215.1')
+ error('MESON_SKIP_TEST: Python modules do not work with Python 3.8 and VS2015 or earlier.')
+ endif
+
+ subdir('ext')
+
+ test('extmod',
+ py3,
+ args : files('blaster.py'),
+ env : ['PYTHONPATH=' + pypathdir])
+
+ # Check we can apply a version constraint
+ dependency('python3', version: '>=@0@'.format(py3_dep.version()))
+
+else
+ error('MESON_SKIP_TEST: Python3 libraries not found, skipping test.')
+endif
+
+py3_pkg_dep = dependency('python3', method: 'pkg-config', required : false)
+if py3_pkg_dep.found()
+ python_lib_dir = py3_pkg_dep.get_pkgconfig_variable('libdir')
+endif