aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meson.build15
1 files changed, 12 insertions, 3 deletions
diff --git a/meson.build b/meson.build
index 5c38749f..4341ccfe 100644
--- a/meson.build
+++ b/meson.build
@@ -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
@@ -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,
@@ -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(
@@ -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])