1if not get_option('backend-drm') 2 subdir_done() 3endif 4 5lib_backlight = static_library( 6 'backlight', 7 'libbacklight.c', 8 dependencies: [ 9 dep_libdrm_headers, 10 dependency('libudev') 11 ], 12 include_directories: common_inc, 13 install: false 14) 15dep_backlight = declare_dependency( 16 link_with: lib_backlight, 17 include_directories: include_directories('.') 18) 19 20config_h.set('BUILD_DRM_COMPOSITOR', '1') 21 22srcs_drm = [ 23 'drm.c', 24 'fb.c', 25 'modes.c', 26 'kms.c', 27 'state-helpers.c', 28 'state-propose.c', 29 linux_dmabuf_unstable_v1_protocol_c, 30 linux_dmabuf_unstable_v1_server_protocol_h, 31 presentation_time_server_protocol_h, 32] 33 34deps_drm = [ 35 dep_libdl, 36 dep_libweston_private, 37 dep_session_helper, 38 dep_libdrm, 39 dep_libinput_backend, 40 dependency('libudev', version: '>= 136'), 41 dep_backlight 42] 43 44if get_option('renderer-gl') 45 dep_gbm = dependency('gbm', required: false) 46 if not dep_gbm.found() 47 error('drm-backend with GL renderer requires gbm which was not found. Or, you can use \'-Drenderer-gl=false\'.') 48 endif 49 if dep_gbm.version().version_compare('>= 17.1') 50 config_h.set('HAVE_GBM_MODIFIERS', '1') 51 endif 52 if dep_gbm.version().version_compare('>= 17.2') 53 config_h.set('HAVE_GBM_FD_IMPORT', '1') 54 endif 55 deps_drm += dep_gbm 56 srcs_drm += 'drm-gbm.c' 57 config_h.set('BUILD_DRM_GBM', '1') 58endif 59 60if get_option('backend-drm-screencast-vaapi') 61 foreach name : [ 'libva', 'libva-drm' ] 62 d = dependency(name, version: '>= 0.34.0', required: false) 63 if not d.found() 64 error('VA-API recorder requires @0@ >= 0.34.0 which was not found. Or, you can use \'-Dbackend-drm-screencast-vaapi=false\'.'.format(name)) 65 endif 66 deps_drm += d 67 endforeach 68 69 srcs_drm += 'vaapi-recorder.c' 70 deps_drm += dependency('threads') 71 config_h.set('BUILD_VAAPI_RECORDER', '1') 72endif 73 74if get_option('remoting') or get_option('pipewire') 75 if not get_option('renderer-gl') 76 error('DRM virtual requires renderer-gl.') 77 endif 78 srcs_drm += 'drm-virtual.c' 79 config_h.set('BUILD_DRM_VIRTUAL', '1') 80endif 81 82plugin_drm = shared_library( 83 'drm-backend', 84 srcs_drm, 85 include_directories: common_inc, 86 dependencies: deps_drm, 87 name_prefix: '', 88 install: true, 89 install_dir: dir_module_libweston 90) 91env_modmap += 'drm-backend.so=@0@;'.format(plugin_drm.full_path()) 92 93install_headers(backend_drm_h, subdir: dir_include_libweston_install) 94