meson: Build the classic cli / flashrom cli executable as feature

Provide the meson option `-Dclassic_cli=auto/enabled/disabled` to
determine if the classic cli flashrom executable should be built. This
is needed to support targets, like libpayload, which can only build
libflashrom.

Change-Id: If39981ad0b3281edd6fc7e220362d2938dddf814
Signed-off-by: Thomas Heijligen <thomas.heijligen@secunet.com>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/66705
Original-Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
Original-Reviewed-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72355
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/meson.build b/meson.build
index 240cf3c..045b779 100644
--- a/meson.build
+++ b/meson.build
@@ -458,19 +458,21 @@
   install_dir: join_paths(get_option('mandir'), 'man8'),
 )
 
-executable(
-  'flashrom',
-  files(
-    'cli_classic.c',
-    'cli_common.c',
-    'cli_output.c',
-  ),
-  c_args : cargs,
-  include_directories : include_dir,
-  install : true,
-  install_dir : get_option('sbindir'),
-  link_with : libflashrom.get_static_lib(), # flashrom needs internal symbols of libflashrom
-)
+if get_option('classic_cli').auto() or get_option('classic_cli').enabled()
+  executable(
+    'flashrom',
+    files(
+      'cli_classic.c',
+      'cli_common.c',
+      'cli_output.c',
+    ),
+    c_args : cargs,
+    include_directories : include_dir,
+    install : true,
+    install_dir : get_option('sbindir'),
+    link_with : libflashrom.get_static_lib(), # flashrom needs internal symbols of libflashrom
+  )
+endif
 
 if get_option('ich_descriptors_tool').auto() or get_option('ich_descriptors_tool').enabled()
   subdir('util/ich_descriptors_tool')
diff --git a/meson_options.txt b/meson_options.txt
index f0ff2be..b883f6b 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,5 +1,6 @@
 option('pciutils', type : 'boolean', value : true, description : 'use pciutils')
 option('usb', type : 'boolean', value : true, description : 'use libusb1')
+option('classic_cli', type : 'feature', value : 'enabled', description : 'classic flashrom cli binary')
 option('default_programmer_name', type : 'string', description : 'default programmer')
 option('default_programmer_args', type : 'string', description : 'default programmer arguments')
 option('ich_descriptors_tool', type : 'feature', value : 'auto', description : 'Build ich_descriptors_tool')