spice-common/common/meson.build
Vivek Kasireddy bb8f66983a common: Add a udev helper to identify GPU Vendor
Given that libudev is widely available on many Linux distros, we
can use the relevant APIs to iterate over all the devices associated
with the drm subsystem to figure out if a specific vendor GPU
is available or not.

This capability (identifying GPU Vendor) is useful to determine
whether to launch Gstreamer pipeline using h/w accelerated
plugins. On systems where libudev is not available (Windows,
MacOS, etc) we'd have to make this determination based on the
availability of the relevant plugins in the Gstreamer registry.

Cc: Frediano Ziglio <freddy77@gmail.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Dongwon Kim <dongwon.kim@intel.com>
Cc: Hazwan Arif Mazlan <hazwan.arif.mazlan@intel.com>
Cc: Jin Chung Teng <jin.chung.teng@intel.com>
Signed-off-by: Vivek Kasireddy <vivek.kasireddy@intel.com>
Acked-by: Frediano Ziglio <freddy77@gmail.com>
2023-10-17 10:32:27 +01:00

195 lines
6.0 KiB
Meson

#
# libspice-common
#
spice_common_sources = [
'agent.c',
'agent.h',
'backtrace.c',
'backtrace.h',
'canvas_utils.c',
'canvas_utils.h',
'demarshallers.h',
'draw.h',
'lines.c',
'lines.h',
'log.c',
'log.h',
'lz.c',
'lz.h',
'lz_common.h',
'lz_config.h',
'macros.h',
'marshaller.c',
'marshaller.h',
'mem.c',
'mem.h',
'messages.h',
'pixman_utils.c',
'pixman_utils.h',
'quic.c',
'quic.h',
'quic_config.h',
'rect.h',
'region.c',
'region.h',
'ring.h',
'rop3.c',
'rop3.h',
'snd_codec.c',
'snd_codec.h',
'utils.c',
'utils.h',
'udev.c',
'udev.h',
'verify.h',
'recorder.h'
]
if get_option('instrumentation') == 'recorder'
spice_common_sources += [
'recorder/recorder.c',
'recorder/recorder.h',
'recorder/recorder_ring.c',
'recorder/recorder_ring.h'
]
endif
if get_option('instrumentation') == 'agent'
spice_common_sources += [
'agent_interface.c',
'agent_interface.h'
]
endif
spice_common_lib = static_library('spice-common', spice_common_sources,
install : false,
include_directories : spice_common_include,
dependencies : spice_common_deps)
spice_common_dep = declare_dependency(link_with : spice_common_lib,
include_directories : spice_common_include,
dependencies : spice_common_deps)
# client_demarshallers
if spice_common_generate_client_code or spice_common_generate_server_code
codegen_cmd = [python, spice_codegen]
codegen_args = ['--generate-demarshallers',
'--client',
'--include', 'common/messages.h',
'--generated-declaration-file', '@OUTPUT1@',
'@INPUT@', '@OUTPUT0@']
client_demarshallers = custom_target('client_demarshallers',
input : [spice_proto],
output : ['generated_client_demarshallers.c', 'generated_messages.h'],
install : false,
command : [codegen_cmd, codegen_args],
depend_files : [spice_codegen_files, 'messages.h'])
endif
#
# libspice-common-client
#
if spice_common_generate_client_code
# client_marshallers
codegen_args = ['--generate-marshallers',
'--generate-header',
'-P',
'--client',
'--include', 'common/client_marshallers.h',
'@INPUT0@', '@OUTPUT0@']
client_marshallers = custom_target('client_marshallers',
input : [spice_proto, client_demarshallers],
output : ['generated_client_marshallers.c', 'generated_client_marshallers.h'],
install : false,
command : [codegen_cmd, codegen_args],
depend_files : [spice_codegen_files, 'client_marshallers.h'])
spice_common_client_sources = [
client_demarshallers,
client_marshallers,
'client_marshallers.h',
'ssl_verify.c',
'ssl_verify.h',
]
spice_common_client_lib = static_library('spice-common-client', spice_common_client_sources,
install : false,
dependencies : [spice_common_dep, gio2_deps])
spice_common_client_dep = declare_dependency(sources : client_marshallers[1],
link_with : spice_common_client_lib,
dependencies : [spice_common_dep, gio2_deps])
endif
#
# libspice-common-server
#
if spice_common_generate_server_code
structs_args = [
'-M', 'String',
'-M', 'Rect',
'-M', 'Point',
'-M', 'DisplayBase',
'-M', 'Fill',
'-M', 'Opaque',
'-M', 'Copy',
'-M', 'Blend',
'-M', 'Blackness',
'-M', 'Whiteness',
'-M', 'Invers',
'-M', 'Rop3',
'-M', 'Stroke',
'-M', 'Text',
'-M', 'Transparent',
'-M', 'AlphaBlend',
'-M', 'Composite',
]
targets = [
{ 'name' : 'server_demarshallers',
'input' : [ spice_proto, client_demarshallers ],
'output' : ['generated_server_demarshallers.c'],
'codegen_args' : ['--generate-demarshallers',
'--server',
'--include', 'common/messages.h',
'@INPUT0@', '@OUTPUT0@'],
},
{ 'name' : 'server_marshallers',
'input' : [ spice_proto, client_demarshallers ],
'output' : ['generated_server_marshallers.c', 'generated_server_marshallers.h'],
'codegen_args' : ['--generate-marshallers',
'--generate-header',
'--server',
structs_args,
'--include', 'common/messages.h',
'@INPUT0@', '@OUTPUT0@']
},
]
spice_common_server_sources = []
spice_common_server_dep_sources = []
foreach t : targets
target = custom_target(t['name'],
input : t['input'],
output : t['output'],
install : false,
command : [codegen_cmd, t['codegen_args']],
depend_files : [spice_codegen_files, 'messages.h'])
spice_common_server_sources += target
if t['output'].length() > 1
spice_common_server_dep_sources += target[1]
endif
endforeach
spice_common_server_lib = static_library('spice-common-server', spice_common_server_sources,
install : false,
dependencies : spice_common_dep)
spice_common_server_dep = declare_dependency(sources : spice_common_server_dep_sources,
link_with : spice_common_server_lib,
dependencies : spice_common_dep)
endif