56 lines
1.6 KiB
Plaintext
56 lines
1.6 KiB
Plaintext
|
project('${modulename}',
|
||
|
['c', 'fortran'],
|
||
|
version : '0.1',
|
||
|
meson_version: '>= 1.1.0',
|
||
|
default_options : [
|
||
|
'warning_level=1',
|
||
|
'buildtype=${buildtype}'
|
||
|
])
|
||
|
fc = meson.get_compiler('fortran')
|
||
|
|
||
|
py = import('python').find_installation('''${python}''', pure: false)
|
||
|
py_dep = py.dependency()
|
||
|
|
||
|
incdir_numpy = run_command(py,
|
||
|
['-c', 'import os; os.chdir(".."); import numpy; print(numpy.get_include())'],
|
||
|
check : true
|
||
|
).stdout().strip()
|
||
|
|
||
|
incdir_f2py = run_command(py,
|
||
|
['-c', 'import os; os.chdir(".."); import numpy.f2py; print(numpy.f2py.get_include())'],
|
||
|
check : true
|
||
|
).stdout().strip()
|
||
|
|
||
|
inc_np = include_directories(incdir_numpy)
|
||
|
np_dep = declare_dependency(include_directories: inc_np)
|
||
|
|
||
|
incdir_f2py = incdir_numpy / '..' / '..' / 'f2py' / 'src'
|
||
|
inc_f2py = include_directories(incdir_f2py)
|
||
|
fortranobject_c = incdir_f2py / 'fortranobject.c'
|
||
|
|
||
|
inc_np = include_directories(incdir_numpy, incdir_f2py)
|
||
|
# gh-25000
|
||
|
quadmath_dep = fc.find_library('quadmath', required: false)
|
||
|
|
||
|
${lib_declarations}
|
||
|
${lib_dir_declarations}
|
||
|
|
||
|
py.extension_module('${modulename}',
|
||
|
[
|
||
|
${source_list},
|
||
|
fortranobject_c
|
||
|
],
|
||
|
include_directories: [
|
||
|
inc_np,
|
||
|
${inc_list}
|
||
|
],
|
||
|
dependencies : [
|
||
|
py_dep,
|
||
|
quadmath_dep,
|
||
|
${dep_list}
|
||
|
${lib_list}
|
||
|
${lib_dir_list}
|
||
|
],
|
||
|
${fortran_args}
|
||
|
install : true)
|