Skip to content

Commit cd1dbae

Browse files
authored
BLD: Fix meson build on Cygwin. (scipy#17993)
Mostly fixing dependency contents and order. Some inclusion of visibility macros before stdlib headers. [skip ci]
1 parent 96adfba commit cd1dbae

File tree

13 files changed

+28
-16
lines changed

13 files changed

+28
-16
lines changed

dev.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,13 @@ def setup_build(cls, dirs, args):
436436
raise RuntimeError("Can't build into non-empty directory "
437437
f"'{build_dir.absolute()}'")
438438

439+
if sys.platform == "cygwin":
440+
# Cygwin only has netlib lapack, but can link against
441+
# OpenBLAS rather than netlib blas at runtime. There is
442+
# no libopenblas-devel to enable linking against
443+
# openblas-specific functions or OpenBLAS Lapack
444+
cmd.extend(["-Dlapack=lapack", "-Dblas=blas"])
445+
439446
build_options_file = (
440447
build_dir / "meson-info" / "intro-buildoptions.json")
441448
if build_options_file.exists():
@@ -547,6 +554,11 @@ def install_project(cls, dirs, args):
547554
with open(dirs.installed / ".gitignore", "w") as f:
548555
f.write("*")
549556

557+
if sys.platform == "cygwin":
558+
rebase_cmd = ["/usr/bin/rebase", "--database", "--oblivious"]
559+
rebase_cmd.extend(Path(dirs.installed).glob("**/*.dll"))
560+
subprocess.check_call(rebase_cmd)
561+
550562
print("Installation OK")
551563
return
552564

scipy/integrate/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ py3.extension_module('_vode',
134134
link_with: [vode_lib],
135135
c_args: [numpy_nodepr_api, Wno_unused_variable],
136136
link_args: version_link_args,
137-
dependencies: [lapack, fortranobject_dep],
137+
dependencies: [lapack, blas, fortranobject_dep],
138138
install: true,
139139
link_language: 'fortran',
140140
subdir: 'scipy/integrate'

scipy/linalg/meson.build

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ py3.extension_module('_fblas',
6565
[fblas_module, g77_abi_wrappers],
6666
c_args: numpy_nodepr_api,
6767
link_args: version_link_args,
68-
dependencies: [blas, lapack, fortranobject_dep],
68+
dependencies: [lapack, blas, fortranobject_dep],
6969
install: true,
7070
link_language: 'fortran',
7171
subdir: 'scipy/linalg'
@@ -85,7 +85,7 @@ py3.extension_module('_flapack',
8585
[flapack_module, g77_abi_wrappers],
8686
c_args: [numpy_nodepr_api, Wno_empty_body],
8787
link_args: version_link_args,
88-
dependencies: [lapack, fortranobject_dep],
88+
dependencies: [lapack, blas, fortranobject_dep],
8989
install: true,
9090
link_language: 'fortran',
9191
subdir: 'scipy/linalg'
@@ -210,7 +210,7 @@ cython_blas = py3.extension_module('cython_blas',
210210
c_args: cython_c_args,
211211
link_with: fwrappers,
212212
link_args: version_link_args,
213-
dependencies: [blas, lapack, np_dep],
213+
dependencies: [lapack, blas, np_dep],
214214
install: true,
215215
link_language: 'fortran',
216216
subdir: 'scipy/linalg'
@@ -225,7 +225,7 @@ cython_lapack = py3.extension_module('cython_lapack',
225225
c_args: cython_c_args,
226226
link_with: fwrappers,
227227
link_args: version_link_args,
228-
dependencies: [blas, lapack, np_dep],
228+
dependencies: [lapack, blas, np_dep],
229229
install: true,
230230
link_language: 'fortran',
231231
subdir: 'scipy/linalg'

scipy/optimize/_trlib/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ _trlib = py3.extension_module('_trlib',
1212
'../../_lib',
1313
'../../_build_utils/src'
1414
],
15-
dependencies: [lapack, np_dep],
15+
dependencies: [lapack, blas, np_dep],
1616
link_args: version_link_args,
1717
install: true,
1818
subdir: 'scipy/optimize/_trlib'

scipy/optimize/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ _lbfgsb = py3.extension_module('_lbfgsb',
109109
c_args: numpy_nodepr_api,
110110
fortran_args: fortran_ignore_warnings,
111111
link_args: version_link_args,
112-
dependencies: [lapack, fortranobject_dep],
112+
dependencies: [lapack, blas, fortranobject_dep],
113113
install: true,
114114
link_language: 'fortran',
115115
subdir: 'scipy/optimize'

scipy/sparse/linalg/_dsolve/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ _superlu = py3.extension_module('_superlu',
199199
link_with: [superlu_lib],
200200
include_directories: ['SuperLU/SRC'],
201201
link_args: version_link_args,
202-
dependencies: [blas, lapack, np_dep],
202+
dependencies: [lapack, blas, np_dep],
203203
install: true,
204204
subdir: 'scipy/sparse/linalg/_dsolve'
205205
)

scipy/sparse/linalg/_eigen/arpack/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ _arpack = py3.extension_module('_arpack',
102102
c_args: numpy_nodepr_api,
103103
link_with: [arpack_lib],
104104
link_args: version_link_args,
105-
dependencies: [lapack, fortranobject_dep],
105+
dependencies: [lapack, blas, fortranobject_dep],
106106
install: true,
107107
link_language: 'fortran',
108108
subdir: 'scipy/sparse/linalg/_eigen/arpack'

scipy/sparse/linalg/_isolve/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ _iterative = py3.extension_module('_iterative',
7373
c_args: numpy_nodepr_api,
7474
fortran_args: fortran_ignore_warnings,
7575
link_args: version_link_args,
76-
dependencies: [lapack, fortranobject_dep],
76+
dependencies: [lapack, blas, fortranobject_dep],
7777
install: true,
7878
link_language: 'fortran',
7979
subdir: 'scipy/sparse/linalg/_isolve'

scipy/sparse/linalg/_propack/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ foreach ele: elements
109109
link_with: propack_lib,
110110
c_args: ['-U_OPENMP', _cpp_Wno_cpp],
111111
fortran_args: _fflag_Wno_maybe_uninitialized,
112-
dependencies: [lapack, fortranobject_dep],
112+
dependencies: [lapack, blas, fortranobject_dep],
113113
link_args: version_link_args,
114114
install: true,
115115
link_language: 'fortran',

scipy/special/_faddeeva.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
#include "_faddeeva.h"
2+
13
#include <complex>
24
#include <cmath>
35

4-
#include "_faddeeva.h"
5-
66
using namespace std;
77

88
extern "C" {

0 commit comments

Comments
 (0)