| project( |
| 'generated cython sources', |
| ['cython', 'c'], |
| default_options : ['buildtype=release'], |
| ) |
| |
| 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 |
| |
| ct = custom_target( |
| 'ct', |
| input : 'gen.py', |
| output : 'ct.pyx', |
| command : [py3, '@INPUT@', '@OUTPUT@'], |
| ) |
| |
| ct_ext = py3.extension_module('ct', ct) |
| |
| test( |
| 'custom target', |
| py3, |
| args : [files('test.py'), 'ct'], |
| env : ['PYTHONPATH=' + meson.current_build_dir()] |
| ) |
| |
| # Test a CustomTargetIndex |
| cti = custom_target( |
| 'cti', |
| input : 'gen.py', |
| output : 'cti.pyx', |
| command : [py3, '@INPUT@', '@OUTPUT@'], |
| ) |
| |
| cti_ext = py3.extension_module('cti', cti[0]) |
| |
| cf = configure_file( |
| input : 'configure.pyx.in', |
| output : 'cf.pyx', |
| copy : true, |
| ) |
| |
| cf_ext = py3.extension_module('cf', cf) |
| |
| test( |
| 'configure file', |
| py3, |
| args : [files('test.py'), 'cf'], |
| env : ['PYTHONPATH=' + meson.current_build_dir()] |
| ) |
| |
| gen = generator( |
| find_program('generator.py'), |
| arguments : ['@INPUT@', '@OUTPUT@'], |
| output : '@BASENAME@.pyx', |
| ) |
| |
| g_ext = py3.extension_module( |
| 'g', |
| gen.process('g.in'), |
| ) |
| |
| test( |
| 'generator', |
| py3, |
| args : [files('test.py'), 'g'], |
| env : ['PYTHONPATH=' + meson.current_build_dir()] |
| ) |
| |
| stuff_pxi = fs.copyfile( |
| 'stuff.pxi.in', |
| 'stuff.pxi' |
| ) |
| |
| # Need to copy the cython source to the build directory |
| # since meson can only generate the .pxi there |
| includestuff_pyx = fs.copyfile( |
| 'includestuff.pyx' |
| ) |
| |
| stuff_pxi_dep = declare_dependency(sources: stuff_pxi) |
| |
| includestuff_ext = py3.extension_module( |
| 'includestuff', |
| includestuff_pyx, |
| dependencies: stuff_pxi_dep |
| ) |
| |
| simpleinclude_ext = py3.extension_module( |
| 'simpleinclude', |
| 'simpleinclude.pyx', |
| ) |
| |
| subdir('libdir') |
| |
| test( |
| 'custom target in subdir', |
| py3, |
| args : [files('test.py'), 'ct2'], |
| env : ['PYTHONPATH=' + pydir] |
| ) |