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