blob: 2da91ad3fc0cb69192b4e94083f9d17cb4609d16 [file] [edit]
src_libutil = files(
'util-bits.c',
'util-io.c',
'util-list.c',
'util-logger.c',
'util-memfile.c',
'util-memmap.c',
'util-sources.c',
'util-strings.c',
)
lib_util = static_library('util',
src_libutil,
include_directories: [inc_builddir],
dependencies: [dep_math, dep_epoll],
gnu_symbol_visibility: 'hidden',
)
dep_libutil = declare_dependency(link_with: lib_util)
proto_c_template = files('ei-proto.c.tmpl')
proto_h_template = files('ei-proto.h.tmpl')
brei_proto_h_template = files('brei-proto.h.tmpl')
brei_proto_headers = custom_target('brei-proto-headers',
input: protocol_xml,
output: ['brei-proto.h'],
command: [
scanner,
'--component=brei',
'--output=@OUTPUT@',
'@INPUT@',
brei_proto_h_template
],
)
if build_libei
ei_proto_headers = custom_target('ei-proto-headers',
input: protocol_xml,
output: ['ei-proto.h'],
command: [
scanner,
'--component=ei',
'--output=@OUTPUT@',
'@INPUT@',
proto_h_template,
],
)
ei_proto_sources = custom_target('ei-proto-sources',
input: protocol_xml,
output: ['ei-proto.c'],
command: [
scanner,
'--component=ei',
'--output=@OUTPUT@',
'@INPUT@',
'--jinja-extra-data={"headerfile": "ei-proto.h"}',
proto_c_template
],
)
src_libei = files(
'brei-shared.c',
'libei.c',
'libei-button.c',
'libei-callback.c',
'libei-connection.c',
'libei-device.c',
'libei-event.c',
'libei-fd.c',
'libei-handshake.c',
'libei-keyboard.c',
'libei-log.c',
'libei-pingpong.c',
'libei-ping.c',
'libei-pointer-absolute.c',
'libei-pointer.c',
'libei-region.c',
'libei-region.c',
'libei-scroll.c',
'libei-seat.c',
'libei-socket.c',
'libei-text.c',
'libei-touchscreen.c',
) + [brei_proto_headers, ei_proto_headers, ei_proto_sources]
deps_libei = [
dep_libutil,
]
lib_libei = library('ei',
src_libei,
dependencies: deps_libei,
include_directories: [inc_builddir],
gnu_symbol_visibility: 'hidden',
version: soname,
install: true,
)
libei_headers = files('libei.h')
install_headers(libei_headers, subdir: libei_api_dir)
dep_libei = declare_dependency(link_with: lib_libei,
include_directories: [inc_src],
)
meson.override_dependency('libei-@0@'.format(libei_api_version), dep_libei)
pkgconfig.generate(lib_libei,
filebase: 'libei-@0@'.format(libei_api_version),
name: 'libEI',
description: 'Emulated Input client library',
subdirs: libei_api_dir,
version: meson.project_version(),
libraries: lib_libei,
)
endif
if build_libeis
eis_proto_headers = custom_target('eis-proto-headers',
input: protocol_xml,
output: ['eis-proto.h'],
command: [
scanner,
'--component=eis',
'--output=@OUTPUT@',
'@INPUT@',
proto_h_template
],
)
eis_proto_sources = custom_target('eis-proto-sources',
input: protocol_xml,
output: ['eis-proto.c'],
command: [
scanner,
'--component=eis',
'--output=@OUTPUT@',
'@INPUT@',
'--jinja-extra-data={"headerfile": "eis-proto.h"}',
proto_c_template
],
)
src_libeis = files(
'brei-shared.c',
'libeis-button.c',
'libeis-callback.c',
'libeis-client.c',
'libeis-connection.c',
'libeis-device.c',
'libeis-event.c',
'libeis-fd.c',
'libeis-handshake.c',
'libeis-keyboard.c',
'libeis-log.c',
'libeis-pingpong.c',
'libeis-ping.c',
'libeis-pointer-absolute.c',
'libeis-pointer.c',
'libeis-region.c',
'libeis-scroll.c',
'libeis-seat.c',
'libeis-socket.c',
'libeis-text.c',
'libeis-touchscreen.c',
'libeis.c',
) + [brei_proto_headers, eis_proto_headers, eis_proto_sources]
lib_libeis = library('eis',
src_libeis,
dependencies: [dep_libutil],
include_directories: [inc_builddir],
gnu_symbol_visibility: 'hidden',
version: soname,
install: true,
)
libeis_headers = files('libeis.h')
install_headers(libeis_headers, subdir: libei_api_dir)
dep_libeis = declare_dependency(link_with: lib_libeis,
include_directories: [inc_src],
)
meson.override_dependency('libeis-@0@'.format(libei_api_version), dep_libeis)
pkgconfig.generate(lib_libeis,
filebase: 'libeis-@0@'.format(libei_api_version),
name: 'libEIS',
description: 'Emulated Input server library',
subdirs: libei_api_dir,
version: meson.project_version(),
libraries: lib_libeis,
)
endif
if build_oeffis
src_liboeffis = files('liboeffis.c')
deps_liboeffis = [dep_libutil, dep_sdbus]
lib_liboeffis = library('oeffis',
src_liboeffis,
include_directories: [inc_builddir],
dependencies: deps_liboeffis,
gnu_symbol_visibility: 'hidden',
version: soname,
install: true,
)
liboeffis_headers = files('liboeffis.h')
install_headers(liboeffis_headers, subdir: libei_api_dir)
dep_liboeffis = declare_dependency(link_with: lib_liboeffis,
include_directories: [inc_src],
)
meson.override_dependency('liboeffis-@0@'.format(libei_api_version), dep_liboeffis)
pkgconfig.generate(lib_liboeffis,
filebase: 'liboeffis-@0@'.format(libei_api_version),
name: 'libOeffis',
description: 'RemoteDesktop portal DBus helper library',
subdirs: libei_api_dir,
version: meson.project_version(),
libraries: lib_liboeffis,
)
endif
summary({
'liboeffis': build_oeffis,
'libei': build_libei,
'libeis': build_libeis,
}, section: 'Conditional Features', bool_yn: true)