Merge pull request #24 from HaoZeke/sharedLib

BLD: Create OpenBLAS shared object
This commit is contained in:
Rohit Goswami 2024-08-14 06:03:04 -07:00 committed by GitHub
commit 0701835710
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 38 additions and 22 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

@ -500,4 +500,13 @@ netlib_lapack = library(_netlib_lapack_name,
link_with: _libs,
version: lapack_version,
soversion: lapack_major_version,
install: true)
install: true,
)
pkg.generate(netlib_lapack,
name: 'lapack',
filebase: 'meson-lapack',
description: 'lapack via meson build',
version: f'@pkg_ver@_lapack',
install_dir: pkg_install_dir,
)

View File

@ -27,6 +27,10 @@ fc_id = fc.get_id()
prj_bld_dir = meson.project_build_root()
prj_src_dir = meson.project_source_root()
pkg = import('pkgconfig')
pkg_ver = meson.project_version()
pkg_install_dir = '../../pkgconfig'
# Common args
_args = []
# TODO(rg): Max parallel number should be conditional
@ -536,7 +540,7 @@ subdir('driver/level3')
subdir('driver/others')
subdir('kernel')
_openblas = static_library('openblas',
openblas = both_libraries('openblas',
link_whole: [
_interface,
_l2_driver,
@ -544,7 +548,11 @@ _openblas = static_library('openblas',
_others,
_kern,
],
install: true)
dependencies: [dependency('threads')],
override_options: ['b_lundef=false', 'b_asneeded=false'],
install: true,
)
openblas_static = openblas.get_static_lib()
# Handle headers
fs = import('fs')
@ -598,13 +606,12 @@ custom_target('gen_install_headers',
depends : pcl,
)
pkg = import ('pkgconfig')
pkg_ver = meson.project_version()
pkg.generate(_openblas,
pkg.generate(openblas,
name: 'openblas',
filebase: 'openblas',
filebase: 'meson-openblas',
description: 'OpenBLAS via meson build',
version: f'@pkg_ver@_meson',
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