1# Copyright © 2017 Intel Corporation 2 3# Permission is hereby granted, free of charge, to any person obtaining a copy 4# of this software and associated documentation files (the "Software"), to deal 5# in the Software without restriction, including without limitation the rights 6# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7# copies of the Software, and to permit persons to whom the Software is 8# furnished to do so, subject to the following conditions: 9 10# The above copyright notice and this permission notice shall be included in 11# all copies or substantial portions of the Software. 12 13# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19# SOFTWARE. 20 21inc_wayland_drm = include_directories('.') 22 23wayland_drm_protocol_c = custom_target( 24 'wayland-drm-protocol.c', 25 input : 'wayland-drm.xml', 26 output : 'wayland-drm-protocol.c', 27 command : [prog_wl_scanner, wl_scanner_arg, '@INPUT@', '@OUTPUT@'], 28) 29 30wayland_drm_client_protocol_h = custom_target( 31 'wayland-drm-client-protocol.h', 32 input : 'wayland-drm.xml', 33 output : 'wayland-drm-client-protocol.h', 34 command : [prog_wl_scanner, 'client-header', '@INPUT@', '@OUTPUT@'], 35) 36 37wayland_drm_server_protocol_h = custom_target( 38 'wayland-drm-server-protocol.h', 39 input : 'wayland-drm.xml', 40 output : 'wayland-drm-server-protocol.h', 41 command : [prog_wl_scanner, 'server-header', '@INPUT@', '@OUTPUT@'], 42) 43 44libwayland_drm = static_library( 45 'wayland_drm', 46 ['wayland-drm.c', wayland_drm_protocol_c, wayland_drm_server_protocol_h], 47 gnu_symbol_visibility : 'hidden', 48 dependencies : [dep_wayland_server], 49 build_by_default : false, 50) 51 52# linux-dmabuf isn't part of wayland-drm, but this happens to be the only 53# place which is a) guaranteed to be built when building either or both 54# of EGL and Vulkan WSI, and b) guaranteed to be included before both, 55# so the targets are actually defined by the time the files come to be 56# used. 57# 58# Moving these to a src/wsi/ was suggested but shot down, so put these 59# here for now as the maybe-least-bad solution. 60wp_dir = dep_wl_protocols.get_variable(pkgconfig : 'pkgdatadir', internal : 'pkgdatadir') 61wp_protos = { 62 'linux-dmabuf-unstable-v1': 'unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml', 63 'presentation-time': 'stable/presentation-time/presentation-time.xml', 64 'tearing-control-v1': 'staging/tearing-control/tearing-control-v1.xml', 65} 66wp_files = {} 67foreach name, xml : wp_protos 68 code = custom_target( 69 name + '-protocol.c', 70 input : join_paths(wp_dir, xml), 71 output : name + '-protocol.c', 72 command : [prog_wl_scanner, wl_scanner_arg, '@INPUT@', '@OUTPUT@'], 73 ) 74 header = custom_target( 75 name + '-client-protocol.h', 76 input : join_paths(wp_dir, xml), 77 output : name + '-client-protocol.h', 78 command : [prog_wl_scanner, 'client-header', '@INPUT@', '@OUTPUT@'], 79 ) 80 wp_files += { name: [code, header] } 81endforeach 82