1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
| 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)
|
|