Thomas Heijligen has uploaded this change for review.

View Change

meson.build: Use library() to build libflashrom

Use library() instead of both_libraries() to build libflashrom. The
build-in option `default-library` can be used to decide which kind of
libraries should be build. 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 <thomas.heijligen@secunet.com>
---
M meson.build
1 file changed, 27 insertions(+), 3 deletions(-)

git pull ssh://review.coreboot.org:29418/flashrom refs/changes/01/73101/1
diff --git a/meson.build b/meson.build
index 2f11c3f..a3f1d84 100644
--- a/meson.build
+++ b/meson.build
@@ -8,9 +8,17 @@
'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 build also the classic_cli
+ ''')
+endif
+
# libtool versioning
lt_current = '1'
lt_revision = '0'
@@ -570,7 +578,7 @@
else
vflag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), mapfile)
endif
-libflashrom = both_libraries(
+libflashrom = library(
'flashrom',
sources : [
srcs,
@@ -618,7 +626,7 @@
install_dir: join_paths(get_option('mandir'), 'man8'),
)

-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(
@@ -631,7 +639,8 @@
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])

To view, visit change 73101. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-Change-Id: I27f10fdf1227795a9a3b4e050a2d708b58f10ee7
Gerrit-Change-Number: 73101
Gerrit-PatchSet: 1
Gerrit-Owner: Thomas Heijligen <src@posteo.de>
Gerrit-MessageType: newchange