2020-07-14 14:41:32 +10:00
|
|
|
project('libei', 'c',
|
|
|
|
|
version: '0.1',
|
|
|
|
|
license: 'MIT/Expat',
|
|
|
|
|
default_options: [ 'c_std=gnu99', 'warning_level=2' ],
|
|
|
|
|
meson_version: '>= 0.50.0')
|
|
|
|
|
|
|
|
|
|
pkgconfig = import('pkgconfig')
|
|
|
|
|
|
|
|
|
|
cc = meson.get_compiler('c')
|
|
|
|
|
cppflags = ['-Wno-unused-parameter', '-fvisibility=hidden']
|
|
|
|
|
cflags = cppflags + ['-Wmissing-prototypes', '-Wstrict-prototypes']
|
2020-07-31 09:41:29 +10:00
|
|
|
add_project_arguments(cflags, language: 'c')
|
|
|
|
|
add_project_arguments(cppflags, language: 'cpp')
|
2020-07-14 14:41:32 +10:00
|
|
|
|
2020-07-28 14:19:28 +10:00
|
|
|
config_h = configuration_data()
|
|
|
|
|
config_h.set('_GNU_SOURCE', '1')
|
|
|
|
|
|
2020-07-31 12:24:44 +10:00
|
|
|
subdir('proto')
|
|
|
|
|
|
2020-08-25 10:16:28 +10:00
|
|
|
src_libutil = [
|
2020-07-28 14:19:28 +10:00
|
|
|
'src/util-io.h',
|
|
|
|
|
'src/util-list.h',
|
|
|
|
|
'src/util-list.c',
|
|
|
|
|
'src/util-logger.h',
|
|
|
|
|
'src/util-logger.c',
|
|
|
|
|
'src/util-macros.h',
|
2020-08-21 16:03:34 +10:00
|
|
|
'src/util-memfile.h',
|
|
|
|
|
'src/util-memfile.c',
|
2020-08-20 14:09:49 +10:00
|
|
|
'src/util-color.h',
|
2020-07-28 14:19:28 +10:00
|
|
|
'src/util-object.h',
|
|
|
|
|
'src/util-sources.h',
|
|
|
|
|
'src/util-sources.c',
|
|
|
|
|
'src/util-strings.c',
|
|
|
|
|
'src/util-strings.h',
|
2020-08-25 10:16:28 +10:00
|
|
|
]
|
|
|
|
|
|
|
|
|
|
lib_util = static_library('util', src_libutil)
|
2020-07-28 14:19:28 +10:00
|
|
|
|
|
|
|
|
dep_libutil = declare_dependency(link_with: lib_util)
|
|
|
|
|
|
2020-08-04 14:40:13 +10:00
|
|
|
src_libei = [
|
2020-08-18 19:29:19 +10:00
|
|
|
'src/brei-shared.h',
|
|
|
|
|
'src/brei-shared.c',
|
2020-07-14 14:41:32 +10:00
|
|
|
'src/libei.h',
|
|
|
|
|
'src/libei.c',
|
2020-07-29 11:53:03 +10:00
|
|
|
'src/libei-device.c',
|
2020-08-20 11:51:41 +10:00
|
|
|
'src/libei-log.c',
|
2020-07-29 11:53:03 +10:00
|
|
|
'src/libei-socket.c',
|
2020-08-05 16:47:26 +10:00
|
|
|
'src/libei-fd.c',
|
2020-08-18 16:36:36 +10:00
|
|
|
'src/libei-proto.h',
|
|
|
|
|
'src/libei-proto.c',
|
2020-07-31 12:24:44 +10:00
|
|
|
proto_headers,
|
2020-08-04 14:40:13 +10:00
|
|
|
]
|
|
|
|
|
|
|
|
|
|
lib_libei = shared_library('ei',
|
|
|
|
|
src_libei,
|
2020-07-31 12:24:44 +10:00
|
|
|
dependencies: [dep_libutil, dep_protobuf],
|
2020-07-14 14:41:32 +10:00
|
|
|
install: true
|
|
|
|
|
)
|
2020-07-29 14:08:59 +10:00
|
|
|
install_headers('src/libei.h')
|
2020-07-14 14:41:32 +10:00
|
|
|
|
2020-07-29 11:53:03 +10:00
|
|
|
dep_libei = declare_dependency(link_with: lib_libei,
|
|
|
|
|
include_directories: 'src')
|
|
|
|
|
|
2020-07-14 14:41:32 +10:00
|
|
|
pkgconfig.generate(lib_libei,
|
|
|
|
|
filebase: 'libei',
|
2020-07-31 09:41:29 +10:00
|
|
|
name: 'libEI',
|
|
|
|
|
description: 'Emulated Input client library',
|
|
|
|
|
version: meson.project_version(),
|
|
|
|
|
libraries: lib_libei,
|
2020-07-14 14:41:32 +10:00
|
|
|
)
|
|
|
|
|
|
2020-08-20 14:37:28 +10:00
|
|
|
src_libeis = [
|
2020-08-18 19:29:19 +10:00
|
|
|
'src/brei-shared.h',
|
|
|
|
|
'src/brei-shared.c',
|
2020-07-14 14:41:32 +10:00
|
|
|
'src/libeis.h',
|
|
|
|
|
'src/libeis.c',
|
2020-07-28 14:19:28 +10:00
|
|
|
'src/libeis-client.c',
|
|
|
|
|
'src/libeis-device.c',
|
2020-08-18 15:45:01 +10:00
|
|
|
'src/libeis-event.c',
|
2020-08-20 11:51:41 +10:00
|
|
|
'src/libeis-log.c',
|
2020-07-28 14:19:28 +10:00
|
|
|
'src/libeis-socket.c',
|
2020-08-06 14:03:33 +10:00
|
|
|
'src/libeis-fd.c',
|
2020-08-18 19:21:13 +10:00
|
|
|
'src/libeis-proto.h',
|
|
|
|
|
'src/libeis-proto.c',
|
2020-07-31 12:24:44 +10:00
|
|
|
proto_headers,
|
2020-08-20 14:37:28 +10:00
|
|
|
]
|
|
|
|
|
|
|
|
|
|
lib_libeis = shared_library('eis',
|
|
|
|
|
src_libeis,
|
2020-07-31 12:24:44 +10:00
|
|
|
dependencies: [dep_libutil, dep_protobuf],
|
2020-07-14 14:41:32 +10:00
|
|
|
install: true
|
|
|
|
|
)
|
2020-07-29 14:08:59 +10:00
|
|
|
install_headers('src/libeis.h')
|
2020-07-28 14:19:28 +10:00
|
|
|
|
|
|
|
|
dep_libeis = declare_dependency(link_with: lib_libeis,
|
|
|
|
|
include_directories: 'src')
|
|
|
|
|
|
2020-07-14 14:41:32 +10:00
|
|
|
pkgconfig.generate(lib_libeis,
|
|
|
|
|
filebase: 'libeis',
|
2020-07-31 09:41:29 +10:00
|
|
|
name: 'libEIS',
|
|
|
|
|
description: 'Emulated Input server library',
|
|
|
|
|
version: meson.project_version(),
|
|
|
|
|
libraries: lib_libeis,
|
2020-07-14 14:41:32 +10:00
|
|
|
)
|
2020-07-28 14:19:28 +10:00
|
|
|
|
2020-08-07 14:39:00 +10:00
|
|
|
lib_libreis = shared_library('reis',
|
|
|
|
|
'src/libreis.h',
|
|
|
|
|
'src/libreis.c',
|
|
|
|
|
proto_headers,
|
|
|
|
|
dependencies: [dep_libutil, dep_protobuf],
|
|
|
|
|
install: true,
|
|
|
|
|
include_directories: 'src',
|
|
|
|
|
)
|
|
|
|
|
install_headers('src/libreis.h')
|
|
|
|
|
|
|
|
|
|
dep_libreis = declare_dependency(link_with: lib_libreis,
|
|
|
|
|
include_directories: 'src')
|
|
|
|
|
|
|
|
|
|
pkgconfig.generate(lib_libreis,
|
|
|
|
|
filebase: 'libreis',
|
|
|
|
|
name: 'libREIS',
|
|
|
|
|
description: 'Restriction handler for Emulated Input servers',
|
|
|
|
|
version: meson.project_version(),
|
|
|
|
|
libraries: lib_libreis,
|
|
|
|
|
)
|
2020-07-28 14:19:28 +10:00
|
|
|
|
2020-08-21 16:57:41 +10:00
|
|
|
dep_libxkbcommon = dependency('xkbcommon', required: false)
|
|
|
|
|
config_h.set10('HAVE_LIBXKBCOMMON', dep_libxkbcommon.found())
|
2020-08-25 09:01:25 +10:00
|
|
|
executable('eis-demo-server',
|
|
|
|
|
'tools/eis-demo-server.c',
|
2020-08-21 16:57:41 +10:00
|
|
|
dependencies: [dep_libutil, dep_libeis, dep_libxkbcommon])
|
2020-07-28 14:19:28 +10:00
|
|
|
|
2020-08-24 19:59:10 +10:00
|
|
|
executable('ei-demo-client',
|
|
|
|
|
'tools/ei-demo-client.c',
|
2020-08-21 16:57:41 +10:00
|
|
|
dependencies: [dep_libutil, dep_libei, dep_libxkbcommon])
|
2020-07-28 14:19:28 +10:00
|
|
|
|
2020-07-31 09:56:07 +10:00
|
|
|
# tests
|
|
|
|
|
subproject('munit')
|
|
|
|
|
|
|
|
|
|
munit = dependency('munit', fallback: ['munit', 'munit_dep'])
|
|
|
|
|
|
2020-08-19 09:37:04 +10:00
|
|
|
lib_unittest = static_library('unittest',
|
|
|
|
|
'src/util-munit.h',
|
|
|
|
|
'src/util-munit.c',
|
|
|
|
|
dependencies: munit,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
dep_unittest = declare_dependency(
|
|
|
|
|
link_with: lib_unittest,
|
|
|
|
|
dependencies: munit
|
|
|
|
|
)
|
|
|
|
|
|
2020-07-31 09:56:07 +10:00
|
|
|
test('iotest',
|
|
|
|
|
executable('iotest',
|
|
|
|
|
'test/iotest.c',
|
|
|
|
|
include_directories: 'src',
|
2020-08-19 09:37:04 +10:00
|
|
|
dependencies: dep_unittest))
|
2020-08-07 09:42:37 +10:00
|
|
|
test('sourcestest',
|
|
|
|
|
executable('sourcestest',
|
|
|
|
|
'test/sourcestest.c',
|
|
|
|
|
include_directories: 'src',
|
2020-08-19 09:37:04 +10:00
|
|
|
dependencies: [dep_unittest, dep_libutil]))
|
2020-07-31 09:56:07 +10:00
|
|
|
|
2020-08-25 10:16:28 +10:00
|
|
|
test('unit-tests-untils',
|
|
|
|
|
executable('unit-tests-utils',
|
|
|
|
|
'test/unit-tests.c',
|
|
|
|
|
src_libutil,
|
|
|
|
|
include_directories: 'src',
|
|
|
|
|
c_args: ['-D_enable_tests_'],
|
|
|
|
|
dependencies: [dep_unittest]))
|
|
|
|
|
|
2020-08-20 14:37:28 +10:00
|
|
|
test('unit-tests-ei',
|
|
|
|
|
executable('unit-tests-ei',
|
2020-08-19 09:37:04 +10:00
|
|
|
'test/unit-tests.c',
|
2020-08-04 14:40:13 +10:00
|
|
|
src_libei,
|
|
|
|
|
include_directories: 'src',
|
|
|
|
|
c_args: ['-D_enable_tests_'],
|
2020-08-19 09:37:04 +10:00
|
|
|
dependencies: [dep_unittest, dep_libutil, dep_protobuf]))
|
2020-08-04 14:40:13 +10:00
|
|
|
|
2020-08-20 14:37:28 +10:00
|
|
|
test('unit-tests-eis',
|
|
|
|
|
executable('unit-tests-eis',
|
|
|
|
|
'test/unit-tests.c',
|
|
|
|
|
src_libeis,
|
|
|
|
|
include_directories: 'src',
|
|
|
|
|
c_args: ['-D_enable_tests_'],
|
|
|
|
|
dependencies: [dep_unittest, dep_libutil, dep_protobuf]))
|
|
|
|
|
|
2020-08-05 17:12:54 +10:00
|
|
|
lib_eierpecken = static_library('eierpecken',
|
|
|
|
|
'test/eierpecken.h',
|
|
|
|
|
'test/eierpecken.c',
|
|
|
|
|
include_directories: 'src',
|
2020-08-12 14:34:46 +10:00
|
|
|
dependencies: [munit, dep_libutil, dep_libei, dep_libeis],
|
2020-08-05 17:12:54 +10:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
test('libei-integration-test',
|
2020-08-12 14:35:19 +10:00
|
|
|
executable('eitest',
|
2020-08-05 17:12:54 +10:00
|
|
|
'test/test-ei.c',
|
|
|
|
|
link_with: lib_eierpecken,
|
2020-08-19 09:37:04 +10:00
|
|
|
dependencies: [dep_unittest, dep_libei, dep_libeis]))
|
2020-08-05 17:12:54 +10:00
|
|
|
|
2020-08-12 14:38:52 +10:00
|
|
|
test('libeis-integration-test',
|
|
|
|
|
executable('eistest',
|
|
|
|
|
'test/test-eis.c',
|
|
|
|
|
link_with: lib_eierpecken,
|
2020-08-19 09:37:04 +10:00
|
|
|
dependencies: [dep_unittest, dep_libei, dep_libeis]))
|
2020-08-05 17:12:54 +10:00
|
|
|
|
|
|
|
|
|
2020-07-31 09:56:07 +10:00
|
|
|
valgrind = find_program('valgrind', required : false)
|
|
|
|
|
if valgrind.found()
|
|
|
|
|
add_test_setup('valgrind',
|
|
|
|
|
exe_wrapper : [ valgrind,
|
|
|
|
|
'--leak-check=full',
|
|
|
|
|
'--gen-suppressions=all',
|
|
|
|
|
'--error-exitcode=3' ],
|
|
|
|
|
timeout_multiplier : 100)
|
|
|
|
|
else
|
|
|
|
|
message('valgrind not found, disabling valgrind test suite')
|
|
|
|
|
endif
|
|
|
|
|
|
2020-08-24 13:01:06 +10:00
|
|
|
|
|
|
|
|
# build-test only
|
|
|
|
|
executable('test-build-libei',
|
|
|
|
|
'test/buildtest.c',
|
|
|
|
|
dependencies : [dep_libei],
|
|
|
|
|
include_directories : 'src',
|
|
|
|
|
c_args : ['-Werror', '-DINCLUDE_LIBEI=1'],
|
|
|
|
|
install : false)
|
|
|
|
|
|
|
|
|
|
executable('test-build-libeis',
|
|
|
|
|
'test/buildtest.c',
|
|
|
|
|
dependencies : [dep_libeis],
|
|
|
|
|
include_directories : 'src',
|
|
|
|
|
c_args : ['-Werror', '-DINCLUDE_LIBEIS=1'],
|
|
|
|
|
install : false)
|
|
|
|
|
|
|
|
|
|
executable('test-build-libreis',
|
|
|
|
|
'test/buildtest.c',
|
|
|
|
|
dependencies : [dep_libreis],
|
|
|
|
|
include_directories : 'src',
|
|
|
|
|
c_args : ['-Werror', '-DINCLUDE_LIBREIS=1'],
|
|
|
|
|
install : false)
|
|
|
|
|
|
2020-07-31 09:41:29 +10:00
|
|
|
configure_file(output: 'config.h', configuration: config_h)
|