From 330542a79fee5562ac779d4ea7da4d5b01d31560 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= Date: Mon, 22 Jan 2024 15:58:08 +0100 Subject: [PATCH] Build system: workaround for Meson bug, needed for building MATLAB Online package --- meson.build | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 261efb076..c0a200816 100644 --- a/meson.build +++ b/meson.build @@ -160,7 +160,20 @@ if get_option('build_for') == 'matlab' umfpack_dep = declare_dependency(link_args : '-lmwumfpack', dependencies : blas_dep) ut_dep = declare_dependency(link_args : '-lut') - slicot_dep = declare_dependency(dependencies : [ fortran_compiler.find_library('slicot64_pic'), blas_dep, lapack_dep ]) + # Workaround for Meson bug https://github.com/mesonbuild/meson/issues/12757 + # Use the C compiler as a fallback for detecting SLICOT under Linux with + # prefer_static=true (but still try the Fortran compiler to honour the -B + # option in fortran_args, as documented). Needed for building the MATLAB + # Online package. + if get_option('prefer_static') and host_machine.system() == 'linux' + slicot_dep_tmp = fortran_compiler.find_library('slicot64_pic', required : false) + if not slicot_dep_tmp.found() + slicot_dep_tmp = c_compiler.find_library('slicot64_pic') + endif + slicot_dep = declare_dependency(dependencies : [ slicot_dep_tmp, blas_dep, lapack_dep ]) + else + slicot_dep = declare_dependency(dependencies : [ fortran_compiler.find_library('slicot64_pic'), blas_dep, lapack_dep ]) + endif else # Octave build octave_exe = find_program('octave', required : not meson.is_cross_build(), disabler : true) mkoctfile_exe = find_program('mkoctfile')