-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmeson.build
68 lines (59 loc) · 1.45 KB
/
meson.build
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
56
57
58
59
60
61
62
63
64
65
66
67
68
project(
'odrpack95',
['fortran', 'c'],
version: '1.0.1',
meson_version: '>=1.1',
license: 'MIT',
default_options: [
'buildtype=release',
'fortran_std=none'
],
)
c_compiler = meson.get_compiler('c')
# BLAS
if host_machine.system() == 'darwin'
message('Using `Accelerate` framework as BLAS library.')
add_project_link_arguments('-framework', 'Accelerate', language: ['c', 'fortran'])
blas_dep = declare_dependency()
else
# static linking does not work in cibuildwheel
blas_dep = dependency('openblas', required: false)
if not blas_dep.found()
blas_dep = c_compiler.find_library('openblas', required: false)
endif
endif
if blas_dep.found()
blas_source = []
else
message('No specific BLAS library detected. Falling back to reference BLAS.')
blas_source = join_paths(meson.current_source_dir(), 'extern/blas.f')
endif
# Sources
odrpack_source = files(
'src/linpack.f',
'src/blas_interfaces.f90',
'src/odrpack.f90',
'src/odrpack_kinds.F90',
'src/odrpack_core.f90',
'src/odrpack_reports.f90',
'src/odrpack_capi.f90'
)
odrpack_lib = static_library(
meson.project_name(),
sources: [odrpack_source, blas_source],
dependencies: [blas_dep]
)
incdir = include_directories('c/include')
odrpack_dep = declare_dependency(
include_directories: [incdir],
link_with: [odrpack_lib]
)
# Examples
if get_option('build_examples')
subdir('example')
subdir('c')
endif
# Tests
if get_option('build_tests')
subdir('test')
endif