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