| 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 |