meson: add logic to select apple and windows dri
authorDylan Baker <dylan@pnwbakers.com>
Sat, 28 Oct 2017 00:20:52 +0000 (17:20 -0700)
committerDylan Baker <dylan@pnwbakers.com>
Wed, 22 Nov 2017 20:47:43 +0000 (12:47 -0800)
This is still not fully correct (haiku and BSD is notably probably not
correct), but Linux is not regressed and this should be correct for
macOS and Windows.

v2: - set the dri_platform to windows on Cygwin as well (Jon)
v3: - Add a better todo for Hurd (Eric)

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
meson.build

index cba08682bc5dd5da868363677bd0a7a02a3e8993..d5a7c62266117217a3b6651d15c3c17164b7b180 100644 (file)
@@ -187,8 +187,20 @@ if with_dri_i915
   dep_libdrm_intel = dependency('libdrm_intel', version : '>= 2.4.75')
 endif
 
-# TODO: other OSes
-with_dri_platform = 'drm'
+if host_machine.system() == 'darwin'
+  with_dri_platform = 'apple'
+elif ['windows', 'cygwin'].contains(host_machine.system())
+  with_dri_platform = 'windows'
+elif host_machine.system() == 'linux'
+  # FIXME: This should include BSD and possibly other systems
+  with_dri_platform = 'drm'
+else
+  # FIXME: haiku doesn't use dri, and xlib doesn't use dri, probably should
+  # assert here that one of those cases has been met.
+  # FIXME: GNU (hurd) ends up here as well, but meson doesn't officially
+  # support Hurd at time of writing (2017/11)
+  with_dri_platform = 'none'
+endif
 
 with_platform_android = false
 with_platform_wayland = false