--- .gitignore | 1 + include/linux/input.h | 4 ++++ meson.build | 39 ++++++++++++++++++++++++++++++++++++++- src/libinput-util.h | 4 ++++ test/litest.c | 9 ++++----- test/litest.h | 8 ++++++++ test/test-pointer.c | 2 ++ 7 files changed, 61 insertions(+), 6 deletions(-)
diff --git a/.gitignore b/.gitignore index d35d0c3e..a2ef14cd 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ *.gcda *.gcno tags +/build diff --git a/include/linux/input.h b/include/linux/input.h index 06316b27..11ff9cce 100644 --- a/include/linux/input.h +++ b/include/linux/input.h @@ -8,10 +8,14 @@ #ifndef _INPUT_H #define _INPUT_H +#include <config.h> + #include <sys/time.h> #include <sys/ioctl.h> #include <sys/types.h> +#ifdef __linux__ #include <linux/types.h> +#endif #include "input-event-codes.h" diff --git a/meson.build b/meson.build index b82fd42e..29329e6e 100644 --- a/meson.build +++ b/meson.build @@ -39,6 +39,35 @@ if cc.get_define('static_assert', prefix : prefix) == '' config_h.set('static_assert(...)', '/* */') endif +if not cc.has_header_symbol('errno.h', 'program_invocation_short_name', prefix : prefix) + if cc.has_header_symbol('stdlib.h', 'getprogname') + config_h.set('program_invocation_short_name', 'getprogname()') + endif +endif + +if cc.has_header('xlocale.h') + config_h.set('HAVE_XLOCALE_H', '1') +endif + +if not cc.has_header_symbol('sys/ptrace.h', 'PTRACE_ATTACH', prefix : prefix) + config_h.set('PTRACE_ATTACH', 'PT_ATTACH') + config_h.set('PTRACE_CONT', 'PT_CONTINUE') + config_h.set('PTRACE_DETACH', 'PT_DETACH') +endif + +if target_machine.system() != 'linux' + config_h.set('__u8', 'uint8_t') + config_h.set('__u16', 'uint16_t') + config_h.set('__u32', 'uint32_t') + config_h.set('__u64', 'uint64_t') + config_h.set('__s8', 'int8_t') + config_h.set('__s16', 'int16_t') + config_h.set('__s32', 'int32_t') + config_h.set('__s64', 'int64_t') + config_h.set('_IOC_READ', 'IOC_OUT') + config_h.set('_IOC_WRITE', 'IOC_IN') +endif + # Dependencies pkgconfig = import('pkgconfig') dep_udev = dependency('libudev') @@ -47,6 +76,11 @@ dep_libevdev = dependency('libevdev', version : '>= 0.4') dep_lm = cc.find_library('m', required : false) dep_rt = cc.find_library('rt', required : false) +if target_machine.system() != 'linux' + dep_libepoll = declare_dependency(link_args : ['-lepoll-shim'], include_directories : [ + include_directories(join_paths(get_option('prefix'), 'include', 'libepoll-shim')) ]) +endif + # Include directories includes_include = include_directories('include') includes_src = include_directories('src') @@ -193,6 +227,9 @@ deps_libinput = [ dep_libwacom, dep_libinput_util ] +if target_machine.system() != 'linux' + deps_libinput += [ dep_libepoll ] +endif libinput_version_h_config = configuration_data() libinput_version_h_config.set('LIBINPUT_VERSION_MAJOR', libinput_version[0]) @@ -601,7 +638,7 @@ if get_option('tests') 'test/litest.c' ] - dep_dl = cc.find_library('dl') + dep_dl = cc.find_library('dl', required : false) deps_litest = [ dep_libinput, dep_check, diff --git a/src/libinput-util.h b/src/libinput-util.h index 57bcdbb5..6bd95474 100644 --- a/src/libinput-util.h +++ b/src/libinput-util.h @@ -31,11 +31,15 @@ #include <errno.h> #include <limits.h> #include <locale.h> +#ifdef HAVE_XLOCALE_H +#include <xlocale.h> +#endif #include <math.h> #include <stdarg.h> #include <stdbool.h> #include <stddef.h> #include <stdio.h> +#include <stdlib.h> #include <string.h> #include <time.h> #include <unistd.h> diff --git a/test/litest.c b/test/litest.c index 05726726..fd56347a 100644 --- a/test/litest.c +++ b/test/litest.c @@ -42,7 +42,6 @@ #include "linux/input.h" #include <sys/ptrace.h> #include <sys/resource.h> -#include <sys/sendfile.h> #include <sys/timerfd.h> #include <sys/wait.h> #include <sys/stat.h> @@ -1032,7 +1031,7 @@ litest_copy_file(const char *dest, const char *src, const char *header) src, strerror(errno)); /* lazy, just check for error and empty file copy */ - litest_assert_int_gt(sendfile(out, in, NULL, 40960), 0); + litest_assert_int_gt(litest_send_file(out, in), 0); close(out); close(in); @@ -3537,10 +3536,10 @@ is_debugger_attached(void) if (pid == 0) { int ppid = getppid(); - if (ptrace(PTRACE_ATTACH, ppid, NULL, NULL) == 0) { + if (ptrace(PTRACE_ATTACH, ppid, NULL, 0) == 0) { waitpid(ppid, NULL, 0); - ptrace(PTRACE_CONT, NULL, NULL); - ptrace(PTRACE_DETACH, ppid, NULL, NULL); + ptrace(PTRACE_CONT, ppid, NULL, 0); + ptrace(PTRACE_DETACH, ppid, NULL, 0); rc = 0; } else { rc = 1; diff --git a/test/litest.h b/test/litest.h index faa469c0..7406c125 100644 --- a/test/litest.h +++ b/test/litest.h @@ -1006,6 +1006,14 @@ litest_touchpad_is_external(struct litest_device *dev) return is_external; } +static inline int +litest_send_file(int sock, int fd) +{ + char buf[40960]; + int n = read(fd, buf, 40960); + return write(sock, buf, n); +} + #undef ck_assert_double_eq #undef ck_assert_double_ne #undef ck_assert_double_lt diff --git a/test/test-pointer.c b/test/test-pointer.c index 7324c0f6..14801aeb 100644 --- a/test/test-pointer.c +++ b/test/test-pointer.c @@ -30,7 +30,9 @@ #include <libinput.h> #include <math.h> #include <unistd.h> +#ifdef __linux__ #include <values.h> +#endif #include "libinput-util.h" #include "litest.h" -- 2.15.0 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel