|
_binary_tree_pxi = custom_target( |
|
'_binary_tree_pxi', |
|
output: '_binary_tree.pxi', |
|
input: '_binary_tree.pxi.tp', |
|
command: [py, tempita, '@INPUT@', '-o', '@OUTDIR@'], |
|
) |
|
|
|
|
|
|
|
neighbors_cython_tree = [ |
|
fs.copyfile('__init__.py'), |
|
fs.copyfile('_partition_nodes.pxd'), |
|
_binary_tree_pxi, |
|
] |
|
|
|
name_list = ['_ball_tree', '_kd_tree'] |
|
|
|
foreach name: name_list |
|
pyx = custom_target( |
|
name + '_pyx', |
|
output: name + '.pyx', |
|
input: name + '.pyx.tp', |
|
command: [py, tempita, '@INPUT@', '-o', '@OUTDIR@'], |
|
# TODO in principle this should go in py.exension_module below. This is |
|
# temporary work-around for dependency issue with .pyx.tp files. For more |
|
# details, see https://github.com/mesonbuild/meson/issues/13212 |
|
depends: [neighbors_cython_tree, utils_cython_tree, metrics_cython_tree], |
|
) |
|
py.extension_module( |
|
name, |
|
pyx, |
|
dependencies: [np_dep], |
|
cython_args: cython_args, |
|
subdir: 'sklearn/neighbors', |
|
install: true |
|
) |
|
endforeach |
|
|
|
neighbors_extension_metadata = { |
|
'_partition_nodes': |
|
{'sources': ['_partition_nodes.pyx'], |
|
'override_options': ['cython_language=cpp'], 'dependencies': [np_dep]}, |
|
'_quad_tree': {'sources': ['_quad_tree.pyx'], 'dependencies': [np_dep]}, |
|
} |
|
|
|
foreach ext_name, ext_dict : neighbors_extension_metadata |
|
py.extension_module( |
|
ext_name, |
|
[ext_dict.get('sources'), utils_cython_tree], |
|
dependencies: ext_dict.get('dependencies'), |
|
override_options : ext_dict.get('override_options', []), |
|
cython_args: cython_args, |
|
subdir: 'sklearn/neighbors', |
|
install: true |
|
) |
|
endforeach |
|
|