BLD: Use `both_libraries` to build libs

This commit is contained in:
Mateusz Sokół 2024-08-14 10:45:26 +00:00
parent adea569542
commit 04d9a533bb
5 changed files with 27 additions and 29 deletions

View File

@ -58,7 +58,7 @@ foreach lvl : lvls
executable(
op_name,
sources: mapped_sources,
link_with: [_openblas],
link_with: [openblas_static],
dependencies: [dependency('threads')],
include_directories: ctest_inc,
c_args: ['-DADD_', '-DCBLAS'],

View File

@ -496,16 +496,17 @@ endif
# Create the blas library
netlib_lapack = library(_netlib_lapack_name,
sources: _lapack_netlib_srcs,
link_with: _libs,
version: lapack_version,
soversion: lapack_major_version,
install: true)
sources: _lapack_netlib_srcs,
link_with: _libs,
version: lapack_version,
soversion: lapack_major_version,
install: true,
)
pkg.generate(netlib_lapack,
name: 'lapack',
filebase: 'meson-lapack',
description: 'lapack via meson build',
version: f'@pkg_ver@_lapack',
install_dir: '../../pkgconfig',
install_dir: pkg_install_dir,
)

View File

@ -29,6 +29,7 @@ prj_src_dir = meson.project_source_root()
pkg = import('pkgconfig')
pkg_ver = meson.project_version()
pkg_install_dir = '../../pkgconfig'
# Common args
_args = []
@ -539,23 +540,19 @@ subdir('driver/level3')
subdir('driver/others')
subdir('kernel')
_openblas = static_library('openblas',
link_whole: [
_interface,
_l2_driver,
_l3_driver,
_others,
_kern,
],
install: true,
)
_openblas_so = shared_library('openblas',
link_whole: [_openblas],
dependencies: [dependency('threads')],
override_options: ['b_lundef=false', 'b_asneeded=false'],
install: true,
)
openblas = both_libraries('openblas',
link_whole: [
_interface,
_l2_driver,
_l3_driver,
_others,
_kern,
],
dependencies: [dependency('threads')],
override_options: ['b_lundef=false', 'b_asneeded=false'],
install: true,
)
openblas_static = openblas.get_static_lib()
# Handle headers
fs = import('fs')
@ -609,12 +606,12 @@ custom_target('gen_install_headers',
depends : pcl,
)
pkg.generate(_openblas,
pkg.generate(openblas,
name: 'openblas',
filebase: 'meson-openblas',
description: 'OpenBLAS via meson build',
version: f'@pkg_ver@_meson',
install_dir: '../../pkgconfig',
install_dir: pkg_install_dir,
)
if build_testing

View File

@ -26,7 +26,7 @@ foreach _test : _test_input_array
executable(
test_id,
sources: f'@test_id@.f',
link_with: [_openblas],
link_with: [openblas_static],
dependencies: [dependency('threads')],
)

View File

@ -87,7 +87,7 @@ utest_inc = _inc + [include_directories('.')]
openblas_utest_exec = executable(
'openblas_utest',
sources: sources_utest,
link_with: _openblas,
link_with: openblas_static,
dependencies: [dependency('threads')],
include_directories: utest_inc,
c_args: _cargs,
@ -96,7 +96,7 @@ openblas_utest_exec = executable(
openblas_utest_ext_exec = executable(
'openblas_utest_ext',
sources: sources_utest_ext,
link_with: _openblas,
link_with: openblas_static,
dependencies: [dependency('threads')],
# This hack is required as `utest/test_extensions/common.c` needs
# `common.h` from the source root, not `utest/test_extensions` directory