Skip to content

Commit

Permalink
meson.build: Use library() to build libflashrom
Browse files Browse the repository at this point in the history
Use library() instead of both_libraries() to build libflashrom. The
built-in option `default-library` can be used to decide which kind of
libraries should be built. Make `both` the default and throw an error in
the case someone tries to build the classic_cli with a shared library.

Change-Id: I27f10fdf1227795a9a3b4e050a2d708b58f10ee7
Signed-off-by: Thomas Heijligen <[email protected]>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/73101
Reviewed-by: Edward O'Callaghan <[email protected]>
Reviewed-by: Anastasia Klimchuk <[email protected]>
Tested-by: build bot (Jenkins) <[email protected]>
  • Loading branch information
heijligen authored and Edward O'Callaghan committed Apr 20, 2023
1 parent f3c21c6 commit 67ca4a7
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,17 @@ project('flashromutils', 'c',
'werror=true',
'optimization=s',
'debug=false',
'default_library=both'
],
)

if get_option('classic_cli').enabled() and get_option('default_library') == 'shared'
error('''
Cannot build cli_classic with shared libflashrom. Use \'-Dclassic_cli=disabled\' to disable the cli,
or use \'--default-library=both\' to also build the classic_cli
''')
endif

subdir('doc')

# libtool versioning
Expand Down Expand Up @@ -587,7 +595,7 @@ if host_machine.system() == 'darwin'
else
vflag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), mapfile)
endif
libflashrom = both_libraries(
libflashrom = library(
'flashrom',
sources : [
srcs,
Expand Down Expand Up @@ -624,7 +632,7 @@ pkgg.generate(
description : 'library to interact with flashrom',
)

if get_option('classic_cli').auto() or get_option('classic_cli').enabled()
if get_option('classic_cli').enabled() or get_option('classic_cli').auto() and not get_option('default_library') == 'shared'
classic_cli = executable(
'flashrom',
files(
Expand All @@ -637,7 +645,8 @@ if get_option('classic_cli').auto() or get_option('classic_cli').enabled()
install : true,
install_dir : get_option('sbindir'),
link_args : link_args,
link_with : libflashrom.get_static_lib(), # flashrom needs internal symbols of libflashrom
# flashrom needs internal symbols of libflashrom
link_with : get_option('default_library') == 'static' ? libflashrom : libflashrom.get_static_lib(),
)
if get_option('llvm_cov').enabled()
run_target('llvm-cov-cli', command : ['scripts/llvm-cov', classic_cli])
Expand Down

0 comments on commit 67ca4a7

Please sign in to comment.