The Meson Build System http://mesonbuild.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

109 lines
2.0 KiB

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