diff -urp a/meson.build b/meson.build
--- a/meson.build	2023-10-14 22:54:39.226371688 -0500
+++ b/meson.build	2023-10-14 23:00:28.755390834 -0500
@@ -39,8 +39,19 @@ add_project_arguments(
   ],
   language: 'cpp')
 
-wlroots = subproject('wlroots', default_options: ['examples=false', 'renderers=gles2'])
-have_xwlr = wlroots.get_variable('features').get('xwayland')
+wlroots = dependency('wlroots', required: get_option('use_system_wlroots'))
+use_system_wlroots = not get_option('use_system_wlroots').disabled() and wlroots.found()
+if not use_system_wlroots
+       wlroots = subproject('wlroots', default_options : ['examples=false']).get_variable('wlroots')
+endif
+
+have_xwlr = false
+if use_system_wlroots
+       have_xwlr = cpp_compiler.get_define('WLR_HAS_XWAYLAND', prefix: '#include <wlr/config.h>', dependencies: wlroots) == '1'
+else
+       have_xwlr = subproject('wlroots').get_variable('features').get('xwayland')
+endif
+
 xcb_dep = dependency('xcb', required: get_option('xwayland'))
 
 cmake = import('cmake')
diff -urp a/meson_options.txt b/meson_options.txt
--- a/meson_options.txt	2023-10-14 22:52:56.346366052 -0500
+++ b/meson_options.txt	2023-10-14 22:55:23.933374136 -0500
@@ -1,3 +1,4 @@
+option('use_system_wlroots', type: 'feature', value: 'auto', description: 'Use the system-wide installation of wlroots')
 option('xwayland', type: 'feature', value: 'auto', description: 'Enable support for X11 applications')
 option('systemd', type: 'feature', value: 'auto', description: 'Enable systemd integration')
 option('legacy_renderer', type: 'feature', value: 'disabled', description: 'Enable legacy renderer')
diff -urp a/src/meson.build b/src/meson.build
--- a/src/meson.build	2023-10-14 22:54:39.231371688 -0500
+++ b/src/meson.build	2023-10-14 22:55:36.874374845 -0500
@@ -7,9 +7,9 @@ executable('Hyprland', src,
   cpp_pch: 'pch/pch.hpp',
   dependencies: [
     server_protos,
+    wlroots,
     dependency('wayland-server'),
     dependency('wayland-client'),
-    wlroots.get_variable('wlroots'),
     dependency('cairo'),
     dependency('libdrm'),
     dependency('egl'),
