meson: Convert options from feature to boolean

Features are things we can automatically enable or disable based on the
presence or absence of supporting dependencies. Neither ABI compliance
testing (despite the fact that we can detect the tool) nor tests fit
this category: They are developer tools and their use should be judged
ahead of the invocation of meson.

Change-Id: I9725cc0444d92c8443cfb28ecd878f77792f38ce
Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
diff --git a/meson.build b/meson.build
index bf309ec..81f1982 100644
--- a/meson.build
+++ b/meson.build
@@ -9,13 +9,13 @@
         'cpp_std': 'c++23',
         'c_std': 'c17',
         'b_ndebug': 'if-release',
-        'tests': (meson.is_subproject() ? 'disabled' : 'enabled'),
+        'tests': not meson.is_subproject(),
     },
     version: '0.10.0',
     meson_version: '>=1.3.0',
 )
 
-if get_option('tests').allowed()
+if get_option('tests')
     add_languages('cpp')
 endif
 
@@ -74,7 +74,7 @@
 subdir('include')
 subdir('src')
 
-if get_option('tests').allowed()
+if get_option('tests')
     subdir('tests')
 endif
 
diff --git a/meson.options b/meson.options
index dcd63d0..0276f78 100644
--- a/meson.options
+++ b/meson.options
@@ -1,4 +1,4 @@
 option('abi', type: 'array', description: 'Constrain exposed symbol classes', choices: ['deprecated', 'stable', 'testing'], value: ['deprecated', 'stable', 'testing'])
-option('abi-compliance-check', type: 'feature', description: 'Detect public ABI/API changes')
+option('abi-compliance-check', type: 'boolean', description: 'Detect public ABI/API changes')
 option('oem', type: 'array', description: 'Enable OEM PLDM extensions', choices: ['ibm', 'meta'], value: ['ibm', 'meta'])
-option('tests', type: 'feature', description: 'Build tests')
+option('tests', type: 'boolean', description: 'Build tests')
diff --git a/scripts/pre-submit b/scripts/pre-submit
index ac551e7..dbf990d 100755
--- a/scripts/pre-submit
+++ b/scripts/pre-submit
@@ -26,7 +26,7 @@
 # Ensure the test suite passes in the default configuration. Note
 # that we don't specify -Dabi=... - the default is equivalent to
 # -Dabi=deprecated,stable,testing.
-CFLAGS=-fanalyzer meson setup -Dabi-compliance-check=disabled "$BUILD"
+CFLAGS=-fanalyzer meson setup -Dabi-compliance-check=false "$BUILD"
 meson compile -C "$BUILD"
 meson test -C "$BUILD"
 
diff --git a/src/meson.build b/src/meson.build
index aa224f4..340f170 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -40,11 +40,11 @@
     libraries: libpldm,
 )
 
-if get_option('tests').allowed()
+if get_option('tests')
     c_suite = meson.get_compiler('c').get_id()
     cpp_suite = meson.get_compiler('cpp').get_id()
 
-    if get_option('abi-compliance-check').allowed() and c_suite == cpp_suite and c_suite == 'gcc'
+    if get_option('abi-compliance-check') and c_suite == cpp_suite and c_suite == 'gcc'
         host = host_machine.cpu_family()
         baseline_dump = meson.project_source_root() / 'abi' / host / '@0@.dump'.format(
             c_suite,