53 lines
1.5 KiB
Meson
53 lines
1.5 KiB
Meson
|
_binary_tree_pxi = custom_target(
|
||
|
'_binary_tree_pxi',
|
||
|
output: '_binary_tree.pxi',
|
||
|
input: '_binary_tree.pxi.tp',
|
||
|
command: [py, tempita, '@INPUT@', '-o', '@OUTDIR@'],
|
||
|
)
|
||
|
|
||
|
# .pyx is generated so this is needed to make Cython compilation work. The pxi
|
||
|
# file is included avoid "missing dependency paths" with ninja -t missindeps
|
||
|
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@']
|
||
|
)
|
||
|
py.extension_module(
|
||
|
name,
|
||
|
[pyx, neighbors_cython_tree, utils_cython_tree],
|
||
|
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
|