meson: deprecated 'true' and 'false' in combo options for 'enabled' and 'disabled'

To prepare to use meson's builtin feature options in the future, which
are more powerful and provide useful feature for packagers, like the
ability to turn all "automagic" features off, and then explicitly turn
on the ones they want.

This is designed to make the transition softer, since the 'true' and
'false' are still accepted, just with a warning.

Acked-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4740>
diff --git a/meson.build b/meson.build
index 198d051..8d89bf9 100644
--- a/meson.build
+++ b/meson.build
@@ -51,8 +51,6 @@
 
 with_vulkan_icd_dir = get_option('vulkan-icd-dir')
 with_tests = get_option('build-tests')
-with_valgrind = get_option('valgrind')
-with_libunwind = get_option('libunwind')
 with_glx_read_only_text = get_option('glx-read-only-text')
 with_glx_direct = get_option('glx-direct')
 with_osmesa = get_option('osmesa')
@@ -87,47 +85,68 @@
 endif
 
 with_gles1 = get_option('gles1')
+if with_gles1 == 'true'
+  with_gles1 = 'enabled'
+  warning('gles1 option "true" deprecated, please use "enabled" instead.')
+elif with_gles1 == 'false'
+  with_gles1 = 'disabled'
+  warning('gles1 option "false" deprecated, please use "disabled" instead.')
+endif
 with_gles2 = get_option('gles2')
+if with_gles2 == 'true'
+  with_gles2 = 'enabled'
+  warning('gles2 option "true" deprecated, please use "enabled" instead.')
+elif with_gles2 == 'false'
+  with_gles2 = 'disabled'
+  warning('gles2 option "false" deprecated, please use "disabled" instead.')
+endif
 if host_machine.system() == 'windows'
   if with_gles1 == 'auto'
-    with_gles1 = 'false'
+    with_gles1 = 'disabled'
   endif
   if with_gles2 == 'auto'
-    with_gles2 = 'false'
+    with_gles2 = 'disabled'
   endif
 endif
 with_opengl = get_option('opengl')
 
 # Default shared glapi off for windows, on elsewhere.
 _sg = get_option('shared-glapi')
+if _sg == 'true'
+  _sg = 'enabled'
+  warning('shared-glapi option "true" deprecated, please use "enabled" instead.')
+elif _sg == 'false'
+  _sg = 'disabled'
+  warning('shared-glapi option "false" deprecated, please use "disabled" instead.')
+endif
 if _sg == 'auto'
   with_shared_glapi = host_machine.system() != 'windows'
 else
-  with_shared_glapi = _sg == 'true'
+  with_shared_glapi = _sg == 'enabled'
 endif
 
 # shared-glapi is required if at least two OpenGL APIs are being built
 if not with_shared_glapi
-  if ((with_gles1 == 'true' and with_gles2 == 'true') or
-      (with_gles1 == 'true' and with_opengl) or
-      (with_gles2 == 'true' and with_opengl))
+  if ((with_gles1 == 'enabled' and with_gles2 == 'enabled') or
+      (with_gles1 == 'enabled' and with_opengl) or
+      (with_gles2 == 'enabled' and with_opengl))
     error('shared-glapi required for building two or more of OpenGL, OpenGL ES 1.x, OpenGL ES 2.x')
   endif
-  with_gles1 = 'false'
-  with_gles2 = 'false'
+  with_gles1 = 'disabled'
+  with_gles2 = 'disabled'
 endif
 
 # We require OpenGL for OpenGL ES
 if not with_opengl
-  if (with_gles1 == 'true' or with_gles2 == 'true') and not with_opengl
+  if (with_gles1 == 'enabled' or with_gles2 == 'enabled') and not with_opengl
     error('building OpenGL ES without OpenGL is not supported.')
   endif
-  with_gles1 = 'false'
-  with_gles2 = 'false'
+  with_gles1 = 'disabled'
+  with_gles2 = 'disabled'
 endif
 
-with_gles1 = with_gles1 != 'false'
-with_gles2 = with_gles2 != 'false'
+with_gles1 = with_gles1 != 'disabled'
+with_gles2 = with_gles2 != 'disabled'
 with_any_opengl = with_opengl or with_gles1 or with_gles2
 # Only build shared_glapi if at least one OpenGL API is enabled
 with_shared_glapi = with_shared_glapi and with_any_opengl
@@ -214,7 +233,7 @@
 if with_gallium and system_has_kms_drm
   _glx = get_option('glx')
   _egl = get_option('egl')
-  if _glx == 'dri' or _egl == 'true' or (_glx == 'disabled' and _egl != 'false')
+  if _glx == 'dri' or _egl == 'enabled' or (_glx == 'disabled' and _egl != 'disabled')
     with_dri = true
   endif
 endif
@@ -306,10 +325,17 @@
 endif
 
 _xlib_lease = get_option('xlib-lease')
+if _xlib_lease == 'true'
+  _xlib_lease = 'enabled'
+  warning('xlib_lease option "true" deprecated, please use "enabled" instead.')
+elif _xlib_lease == 'false'
+  _xlib_lease = 'disabled'
+  warning('xlib_lease option "false" deprecated, please use "disabled" instead.')
+endif
 if _xlib_lease == 'auto'
   with_xlib_lease = with_platform_x11 and with_platform_drm
 else
-  with_xlib_lease = _xlib_lease == 'true'
+  with_xlib_lease = _xlib_lease == 'enabled'
 endif
 
 with_glx = get_option('glx')
@@ -346,22 +372,36 @@
 endif
 
 _gbm = get_option('gbm')
+if _gbm == 'true'
+  _gbm = 'enabled'
+  warning('gbm option "true" deprecated, please use "enabled" instead.')
+elif _gbm == 'false'
+  _gbm = 'disabled'
+  warning('gbm option "false" deprecated, please use "disabled" instead.')
+endif
 if _gbm == 'auto'
   with_gbm = system_has_kms_drm and with_dri
 else
-  with_gbm = _gbm == 'true'
+  with_gbm = _gbm == 'enabled'
 endif
 if with_gbm and not system_has_kms_drm
   error('GBM only supports DRM/KMS platforms')
 endif
 
 _egl = get_option('egl')
+if _egl == 'true'
+  _egl = 'enabled'
+  warning('egl option "true" deprecated, please use "enabled" instead.')
+elif _egl == 'false'
+  _egl = 'disabled'
+  warning('egl option "false" deprecated, please use "disabled" instead.')
+endif
 if _egl == 'auto'
   with_egl = (
     not ['darwin', 'windows'].contains(host_machine.system()) and
     with_dri and with_shared_glapi and with_platforms
   )
-elif _egl == 'true'
+elif _egl == 'enabled'
   if not with_dri
     error('EGL requires dri')
   elif not with_shared_glapi
@@ -436,10 +476,17 @@
 with_dri2 = (with_dri or with_any_vk) and (with_dri_platform == 'drm' or
   host_machine.system() == 'gnu')
 _dri3 = get_option('dri3')
+if _dri3 == 'true'
+  _dri3 = 'enabled'
+  warning('dri3 option "true" deprecated, please use "enabled" instead.')
+elif _dri3 == 'false'
+  _dri3 = 'disabled'
+  warning('dri3 option "false" deprecated, please use "disabled" instead.')
+endif
 if _dri3 == 'auto'
   with_dri3 = system_has_kms_drm and with_dri2
 else
-  with_dri3 = _dri3 == 'true'
+  with_dri3 = _dri3 == 'enabled'
 endif
 
 if with_any_vk and (with_platform_x11 and not with_dri3)
@@ -452,30 +499,37 @@
 endif
 
 _vdpau = get_option('gallium-vdpau')
+if _vdpau == 'true'
+  _vdpau = 'enabled'
+  warning('gallium-vdpau option "true" deprecated, please use "enabled" instead.')
+elif _vdpau == 'false'
+  _vdpau = 'disabled'
+  warning('gallium-vdpau option "false" deprecated, please use "disabled" instead.')
+endif
 if not system_has_kms_drm
-  if _vdpau == 'true'
+  if _vdpau == 'enabled'
     error('VDPAU state tracker can only be build on unix-like OSes.')
   else
-    _vdpau = 'false'
+    _vdpau = 'disabled'
   endif
 elif not with_platform_x11
-  if _vdpau == 'true'
+  if _vdpau == 'enabled'
     error('VDPAU state tracker requires X11 support.')
   else
-    _vdpau = 'false'
+    _vdpau = 'disabled'
   endif
 elif not (with_gallium_r300 or with_gallium_r600 or with_gallium_radeonsi or
           with_gallium_nouveau)
-  if _vdpau == 'true'
+  if _vdpau == 'enabled'
     error('VDPAU state tracker requires at least one of the following gallium drivers: r300, r600, radeonsi, nouveau.')
   else
-    _vdpau = 'false'
+    _vdpau = 'disabled'
   endif
 endif
 dep_vdpau = null_dep
 with_gallium_vdpau = false
-if _vdpau != 'false'
-  dep_vdpau = dependency('vdpau', version : '>= 1.1', required : _vdpau == 'true')
+if _vdpau != 'disabled'
+  dep_vdpau = dependency('vdpau', version : '>= 1.1', required : _vdpau == 'enabled')
   if dep_vdpau.found()
     dep_vdpau = dep_vdpau.partial_dependency(compile_args : true)
     with_gallium_vdpau = true
@@ -495,31 +549,38 @@
 endif
 
 _xvmc = get_option('gallium-xvmc')
+if _xvmc == 'true'
+  _xvmc = 'enabled'
+  warning('gallium-xvmc option "true" deprecated, please use "enabled" instead.')
+elif _xvmc == 'false'
+  _xvmc = 'disabled'
+  warning('gallium-xvmc option "false" deprecated, please use "disabled" instead.')
+endif
 if not system_has_kms_drm
-  if _xvmc == 'true'
+  if _xvmc == 'enabled'
     error('XVMC state tracker can only be build on unix-like OSes.')
   else
-    _xvmc = 'false'
+    _xvmc = 'disabled'
   endif
 elif not with_platform_x11
-  if _xvmc == 'true'
+  if _xvmc == 'enabled'
     error('XVMC state tracker requires X11 support.')
   else
-    _xvmc = 'false'
+    _xvmc = 'disabled'
   endif
 elif not (with_gallium_r600 or with_gallium_nouveau)
-  if _xvmc == 'true'
+  if _xvmc == 'enabled'
     error('XVMC state tracker requires at least one of the following gallium drivers: r600, nouveau.')
   else
-    _xvmc = 'false'
+    _xvmc = 'disabled'
   endif
 endif
 dep_xvmc = null_dep
 dep_xv = null_dep
 with_gallium_xvmc = false
-if _xvmc != 'false'
-  dep_xvmc = dependency('xvmc', version : '>= 1.0.6', required : _xvmc == 'true')
-  dep_xv = dependency('xv', required : _xvmc == 'true')
+if _xvmc != 'disabled'
+  dep_xvmc = dependency('xvmc', version : '>= 1.0.6', required : _xvmc == 'enabled')
+  dep_xv = dependency('xv', required : _xvmc == 'enabled')
   with_gallium_xvmc = dep_xvmc.found() and dep_xv.found()
 endif
 
@@ -609,23 +670,30 @@
 endif
 
 _va = get_option('gallium-va')
+if _va == 'true'
+  _va = 'enabled'
+  warning('gallium-va option "true" deprecated, please use "enabled" instead.')
+elif _va == 'false'
+  _va = 'disabled'
+  warning('gallium-va option "false" deprecated, please use "disabled" instead.')
+endif
 if not system_has_kms_drm
-  if _va == 'true'
+  if _va == 'enabled'
     error('VA state tracker can only be built on unix-like OSes.')
   else
-    _va = 'false'
+    _va = 'disabled'
   endif
 elif not (with_gallium_r600 or with_gallium_radeonsi or with_gallium_nouveau)
-  if _va == 'true'
+  if _va == 'enabled'
     error('VA state tracker requires at least one of the following gallium drivers: r600, radeonsi, nouveau.')
   else
-    _va = 'false'
+    _va = 'disabled'
   endif
 endif
 with_gallium_va = false
 dep_va = null_dep
-if _va != 'false'
-  dep_va = dependency('libva', version : '>= 0.38.0', required : _va == 'true')
+if _va != 'disabled'
+  dep_va = dependency('libva', version : '>= 0.38.0', required : _va == 'enabled')
   if dep_va.found()
     dep_va_headers = dep_va.partial_dependency(compile_args : true)
     with_gallium_va = true
@@ -638,21 +706,28 @@
 endif
 
 _xa = get_option('gallium-xa')
+if _xa == 'true'
+  _xa = 'enabled'
+  warning('gallium-xa option "true" deprecated, please use "enabled" instead.')
+elif _xa == 'false'
+  _xa = 'disabled'
+  warning('gallium-xa option "false" deprecated, please use "disabled" instead.')
+endif
 if not system_has_kms_drm
-  if _xa == 'true'
+  if _xa == 'enabled'
     error('XA state tracker can only be built on unix-like OSes.')
   else
-    _xa = 'false'
+    _xa = 'disabled'
   endif
 elif not (with_gallium_nouveau or with_gallium_freedreno or with_gallium_i915
           or with_gallium_svga)
-  if _xa == 'true'
+  if _xa == 'enabled'
     error('XA state tracker requires at least one of the following gallium drivers: nouveau, freedreno, i915, svga.')
   else
-    _xa = 'false'
+    _xa = 'disabled'
   endif
 endif
-with_gallium_xa = _xa != 'false'
+with_gallium_xa = _xa != 'disabled'
 
 d3d_drivers_path = get_option('d3d-drivers-path')
 if d3d_drivers_path == ''
@@ -672,8 +747,15 @@
     error('Using nine with wine requires dri3')
   endif
 endif
-
-if get_option('power8') != 'false'
+_power8 = get_option('power8')
+if _power8 == 'true'
+  _power8 = 'enabled'
+  warning('power8 option "true" deprecated, please use "enabled" instead.')
+elif _power8 == 'disabled'
+  _power8 = 'disabled'
+  warning('power8 option "false" deprecated, please use "disabled" instead.')
+endif
+if _power8 != 'disabled'
   # on old versions of meson the cpu family would return as ppc64le on little
   # endian power8, this was changed in 0.48 such that the family would always
   # be ppc64 regardless of endianness, and then the machine.endian() value
@@ -694,7 +776,7 @@
         args : '-mpower8-vector',
         name : 'POWER8 intrinsics')
       pre_args += ['-D_ARCH_PWR8', '-mpower8-vector']
-    elif get_option('power8') == 'true'
+    elif get_option('power8') == 'enabled'
       error('POWER8 intrinsic support required but not found.')
     endif
   endif
@@ -816,9 +898,16 @@
 
 with_shader_cache = false
 _shader_cache = get_option('shader-cache')
-if _shader_cache != 'false'
+if _shader_cache == 'true'
+  _shader_cache = 'enabled'
+  warning('shader_cache option "true" deprecated, please use "enabled" instead.')
+elif _shader_cache == 'false'
+  _shader_cache = 'disabled'
+  warning('shader_cache option "false" deprecated, please use "disabled" instead.')
+endif
+if _shader_cache != 'disabled'
   if host_machine.system() == 'windows'
-    if _shader_cache == 'true'
+    if _shader_cache == 'enabled'
       error('Shader Cache does not currently work on Windows')
     endif
   else
@@ -1232,8 +1321,15 @@
 pre_args += '-DHAVE_ZLIB'
 
 _zstd = get_option('zstd')
-if _zstd != 'false'
-  dep_zstd = dependency('libzstd', required : _zstd == 'true')
+if _zstd == 'true'
+  _zstd = 'enabled'
+  warning('zstd option "true" deprecated, please use "enabled" instead.')
+elif _zstd == 'false'
+  _zstd = 'disabled'
+  warning('zstd option "false" deprecated, please use "disabled" instead.')
+endif
+if _zstd != 'disabled'
+  dep_zstd = dependency('libzstd', required : _zstd == 'enabled')
   if dep_zstd.found()
     pre_args += '-DHAVE_ZSTD'
   endif
@@ -1362,12 +1458,26 @@
 endif
 
 _shared_llvm = get_option('shared-llvm')
+if _shared_llvm == 'true'
+  _shared_llvm = 'enabled'
+  warning('shared_llvm option "true" deprecated, please use "enabled" instead.')
+elif _shared_llvm == 'false'
+  _shared_llvm = 'disabled'
+  warning('shared_llvm option "false" deprecated, please use "disabled" instead.')
+endif
 if _shared_llvm == 'auto'
   _shared_llvm = (host_machine.system() != 'windows')
 else
-  _shared_llvm = (_shared_llvm == 'true')
+  _shared_llvm = (_shared_llvm == 'enabled')
 endif
 _llvm = get_option('llvm')
+if _llvm == 'true'
+  _llvm = 'enabled'
+  warning('llvm option "true" deprecated, please use "enabled" instead.')
+elif _llvm == 'false'
+  _llvm = 'disabled'
+  warning('llvm option "false" deprecated, please use "disabled" instead.')
+endif
 
 # the cmake method can only link statically, so don't attempt to use it if we
 # want to link dynamically. Before 0.54.0 meson will try cmake even when shared
@@ -1381,7 +1491,7 @@
 
 dep_llvm = null_dep
 with_llvm = false
-if _llvm != 'false'
+if _llvm != 'disabled'
   dep_llvm = dependency(
     'llvm',
     version : _llvm_version,
@@ -1389,7 +1499,7 @@
     optional_modules : llvm_optional_modules,
     required : (
       with_amd_vk or with_gallium_radeonsi or with_gallium_swr or
-      with_gallium_opencl or _llvm == 'true'
+      with_gallium_opencl or _llvm == 'enabled'
     ),
     static : not _shared_llvm,
     method : _llvm_method,
@@ -1448,8 +1558,16 @@
   pre_args += '-DUSE_LIBGLVND=1'
 endif
 
-if with_valgrind != 'false'
-  dep_valgrind = dependency('valgrind', required : with_valgrind == 'true')
+_valgrind = get_option('valgrind')
+if _valgrind == 'true'
+  _valgrind = 'enabled'
+  warning('valgrind option "true" deprecated, please use "enabled" instead.')
+elif _valgrind == 'false'
+  _valgrind = 'disabled'
+  warning('valgrind option "false" deprecated, please use "disabled" instead.')
+endif
+if _valgrind != 'disabled'
+  dep_valgrind = dependency('valgrind', required : _valgrind == 'enabled')
   if dep_valgrind.found()
     pre_args += '-DHAVE_VALGRIND'
   endif
@@ -1499,8 +1617,16 @@
   pre_args += '-DMESA_SELINUX'
 endif
 
-if with_libunwind != 'false'
-  dep_unwind = dependency('libunwind', required : with_libunwind == 'true')
+_libunwind = get_option('libunwind')
+if _libunwind == 'true'
+  _libunwind = 'enabled'
+  warning('libunwind option "true" deprecated, please use "enabled" instead.')
+elif _libunwind == 'false'
+  _libunwind = 'disabled'
+  warning('libunwind option "false" deprecated, please use "disabled" instead.')
+endif
+if _libunwind != 'disabled'
+  dep_unwind = dependency('libunwind', required : _libunwind == 'enabled')
   if dep_unwind.found()
     pre_args += '-DHAVE_LIBUNWIND'
   endif
@@ -1634,8 +1760,15 @@
 endif
 
 _sensors = get_option('lmsensors')
-if _sensors != 'false'
-  dep_lmsensors = cc.find_library('sensors', required : _sensors == 'true')
+if _sensors == 'true'
+  _sensors = 'enabled'
+  warning('sensors option "true" deprecated, please use "enabled" instead.')
+elif _sensors == 'false'
+  _sensors = 'disabled'
+  warning('sensors option "false" deprecated, please use "disabled" instead.')
+endif
+if _sensors != 'disabled'
+  dep_lmsensors = cc.find_library('sensors', required : _sensors == 'enabled')
   if dep_lmsensors.found()
     pre_args += '-DHAVE_LIBSENSORS=1'
   endif