1*d83cc019SAndroid Build Coastguard Workerbuild_overlay = get_option('overlay') 2*d83cc019SAndroid Build Coastguard Workeroverlay_backends = get_option('overlay_backends') 3*d83cc019SAndroid Build Coastguard Worker 4*d83cc019SAndroid Build Coastguard Workergpu_overlay_src = [ 5*d83cc019SAndroid Build Coastguard Worker 'chart.c', 6*d83cc019SAndroid Build Coastguard Worker 'config.c', 7*d83cc019SAndroid Build Coastguard Worker 'cpu-top.c', 8*d83cc019SAndroid Build Coastguard Worker 'debugfs.c', 9*d83cc019SAndroid Build Coastguard Worker 'gem-interrupts.c', 10*d83cc019SAndroid Build Coastguard Worker 'gem-objects.c', 11*d83cc019SAndroid Build Coastguard Worker 'gpu-top.c', 12*d83cc019SAndroid Build Coastguard Worker 'gpu-perf.c', 13*d83cc019SAndroid Build Coastguard Worker 'gpu-freq.c', 14*d83cc019SAndroid Build Coastguard Worker 'overlay.c', 15*d83cc019SAndroid Build Coastguard Worker 'power.c', 16*d83cc019SAndroid Build Coastguard Worker 'rc6.c', 17*d83cc019SAndroid Build Coastguard Worker] 18*d83cc019SAndroid Build Coastguard Worker 19*d83cc019SAndroid Build Coastguard Workerxv_backend_required = false 20*d83cc019SAndroid Build Coastguard Workerxlib_backend_required = false 21*d83cc019SAndroid Build Coastguard Workerbuild_xv_backend = overlay_backends.contains('xv') or overlay_backends.contains('auto') 22*d83cc019SAndroid Build Coastguard Workerbuild_xlib_backend = overlay_backends.contains('x') or overlay_backends.contains('auto') 23*d83cc019SAndroid Build Coastguard Workerif build_overlay.enabled() 24*d83cc019SAndroid Build Coastguard Worker xv_backend_required = overlay_backends.contains('xv') 25*d83cc019SAndroid Build Coastguard Worker xlib_backend_required = overlay_backends.contains('x') 26*d83cc019SAndroid Build Coastguard Workerendif 27*d83cc019SAndroid Build Coastguard Worker 28*d83cc019SAndroid Build Coastguard Workerxv = dependency('xv', required : xv_backend_required) 29*d83cc019SAndroid Build Coastguard Workerx11 = dependency('x11', required : xv_backend_required) 30*d83cc019SAndroid Build Coastguard Workerxext = dependency('xext', required : xv_backend_required) 31*d83cc019SAndroid Build Coastguard Workerdri2proto = dependency('dri2proto', 32*d83cc019SAndroid Build Coastguard Worker version : '>= 2.6', 33*d83cc019SAndroid Build Coastguard Worker required : xv_backend_required or xlib_backend_required) 34*d83cc019SAndroid Build Coastguard Workercairo_xlib = dependency('cairo-xlib', required : xlib_backend_required) 35*d83cc019SAndroid Build Coastguard Workerxrandr = dependency('xrandr', version : '>=1.3', required : build_overlay) 36*d83cc019SAndroid Build Coastguard Worker 37*d83cc019SAndroid Build Coastguard Workergpu_overlay_deps = [ realtime, math, cairo, pciaccess, libdrm, 38*d83cc019SAndroid Build Coastguard Worker libdrm_intel, lib_igt_perf ] 39*d83cc019SAndroid Build Coastguard Worker 40*d83cc019SAndroid Build Coastguard Workerboth_x11_src = '' 41*d83cc019SAndroid Build Coastguard Worker 42*d83cc019SAndroid Build Coastguard Workerwith_xv_backend = false 43*d83cc019SAndroid Build Coastguard Workerwith_xlib_backend = false 44*d83cc019SAndroid Build Coastguard Workerbackends_strings = [] 45*d83cc019SAndroid Build Coastguard Worker 46*d83cc019SAndroid Build Coastguard Workergpu_overlay_cflags = [] 47*d83cc019SAndroid Build Coastguard Workerif build_xv_backend and xv.found() and x11.found() and xext.found() and dri2proto.found() 48*d83cc019SAndroid Build Coastguard Worker both_x11_src = 'x11/position.c' 49*d83cc019SAndroid Build Coastguard Worker gpu_overlay_src += [ 50*d83cc019SAndroid Build Coastguard Worker 'x11/dri2.c', 51*d83cc019SAndroid Build Coastguard Worker 'x11/dri2.h', 52*d83cc019SAndroid Build Coastguard Worker 'x11/rgb2yuv.c', 53*d83cc019SAndroid Build Coastguard Worker 'x11/rgb2yuv.h', 54*d83cc019SAndroid Build Coastguard Worker 'x11/x11-overlay.c', 55*d83cc019SAndroid Build Coastguard Worker ] 56*d83cc019SAndroid Build Coastguard Worker gpu_overlay_deps += [ xv, x11, xext, dri2proto ] 57*d83cc019SAndroid Build Coastguard Worker gpu_overlay_cflags += [ '-DHAVE_OVERLAY_XVLIB' ] 58*d83cc019SAndroid Build Coastguard Worker with_xv_backend = true 59*d83cc019SAndroid Build Coastguard Worker backends_strings += 'Xv' 60*d83cc019SAndroid Build Coastguard Workerendif 61*d83cc019SAndroid Build Coastguard Worker 62*d83cc019SAndroid Build Coastguard Workerif build_xlib_backend and cairo_xlib.found() and dri2proto.found() 63*d83cc019SAndroid Build Coastguard Worker both_x11_src = 'x11/position.c' 64*d83cc019SAndroid Build Coastguard Worker gpu_overlay_src += 'x11/x11-window.c' 65*d83cc019SAndroid Build Coastguard Worker gpu_overlay_deps += [ cairo_xlib, dri2proto ] 66*d83cc019SAndroid Build Coastguard Worker gpu_overlay_cflags += [ '-DHAVE_OVERLAY_XLIB' ] 67*d83cc019SAndroid Build Coastguard Worker with_xlib_backend = true 68*d83cc019SAndroid Build Coastguard Worker backends_strings += 'X' 69*d83cc019SAndroid Build Coastguard Workerendif 70*d83cc019SAndroid Build Coastguard Worker 71*d83cc019SAndroid Build Coastguard Workergpu_overlay_src += both_x11_src 72*d83cc019SAndroid Build Coastguard Worker 73*d83cc019SAndroid Build Coastguard Workergpu_overlay_src += 'kms/kms-overlay.c' 74*d83cc019SAndroid Build Coastguard Worker 75*d83cc019SAndroid Build Coastguard Workerleg = find_program('leg', required : build_overlay) 76*d83cc019SAndroid Build Coastguard Workerif leg.found() 77*d83cc019SAndroid Build Coastguard Worker leg_file = custom_target('tracepoint_format', 78*d83cc019SAndroid Build Coastguard Worker output: 'tracepoint_format.h', 79*d83cc019SAndroid Build Coastguard Worker input: 'tracepoint_format.leg', 80*d83cc019SAndroid Build Coastguard Worker command: [leg, '-P', '-o', '@OUTPUT@', '@INPUT@']) 81*d83cc019SAndroid Build Coastguard Worker gpu_overlay_src += leg_file 82*d83cc019SAndroid Build Coastguard Workerelse 83*d83cc019SAndroid Build Coastguard Worker message('WARNING: leg command not found, disabling overlay; try : apt-get install peg') 84*d83cc019SAndroid Build Coastguard Workerendif 85*d83cc019SAndroid Build Coastguard Worker 86*d83cc019SAndroid Build Coastguard Workerif not build_overlay.disabled() and ['x86', 'x86_64'].contains(host_machine.cpu_family()) and libdrm_intel.found() and leg.found() and xrandr.found() and cairo.found() and (with_xlib_backend or with_xv_backend) 87*d83cc019SAndroid Build Coastguard Worker executable('intel-gpu-overlay', gpu_overlay_src, 88*d83cc019SAndroid Build Coastguard Worker include_directories : inc, 89*d83cc019SAndroid Build Coastguard Worker c_args : gpu_overlay_cflags, 90*d83cc019SAndroid Build Coastguard Worker dependencies : gpu_overlay_deps, 91*d83cc019SAndroid Build Coastguard Worker install : true) 92*d83cc019SAndroid Build Coastguard Worker build_info += 'Build overlay: true' 93*d83cc019SAndroid Build Coastguard Worker build_info += 'Overlay backends: ' + ','.join(backends_strings) 94*d83cc019SAndroid Build Coastguard Workerelse 95*d83cc019SAndroid Build Coastguard Worker if build_overlay.enabled() 96*d83cc019SAndroid Build Coastguard Worker error('Cannot build overlay due to missing dependencies') 97*d83cc019SAndroid Build Coastguard Worker endif 98*d83cc019SAndroid Build Coastguard Worker build_info += 'Build overlay: false' 99*d83cc019SAndroid Build Coastguard Workerendif 100