From 68f9ee7e0b3fdddfa42fa11a15d9ae84460d5e19 Mon Sep 17 00:00:00 2001 From: Rostislav Pehlivanov Date: Sun, 1 Oct 2017 21:16:49 +0100 Subject: wayland_common: rewrite from scratch The wayland code was written more than 4 years ago when wayland wasn't even at version 1.0. This commit rewrites everything in a more modern way, switches to using the new xdg v6 shell interface which solves a lot of bugs and makes mpv tiling-friedly, adds support for drag and drop, adds support for touchscreens, adds support for KDE's server decorations protocol, and finally adds support for the new idle-inhibitor protocol. It does not yet use the frame callback as a main rendering loop driver, this will happen with a later commit. --- waftools/checks/custom.py | 11 ++++++++++- waftools/checks/generic.py | 8 ++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) (limited to 'waftools/checks') diff --git a/waftools/checks/custom.py b/waftools/checks/custom.py index d8065a35f2..698742406f 100644 --- a/waftools/checks/custom.py +++ b/waftools/checks/custom.py @@ -4,7 +4,7 @@ from waflib import Utils import os __all__ = ["check_pthreads", "check_iconv", "check_lua", - "check_cocoa", "check_openal"] + "check_cocoa", "check_openal", "check_wl_protocols"] pthreads_program = load_fragment('pthreads.c') @@ -83,6 +83,15 @@ def check_lua(ctx, dependency_identifier): return True return False +def check_wl_protocols(ctx, dependency_identifier): + def fn(ctx, dependency_identifier): + ret = check_pkg_config_datadir("wayland-protocols") + ret = ret(ctx, dependency_identifier) + if ret != None: + ctx.env.WL_PROTO_DIR = ret.split()[0] + return ret + return fn(ctx, dependency_identifier) + def check_cocoa(ctx, dependency_identifier): fn = check_cc( fragment = load_fragment('cocoa.m'), diff --git a/waftools/checks/generic.py b/waftools/checks/generic.py index 153cf9463d..093c600f34 100644 --- a/waftools/checks/generic.py +++ b/waftools/checks/generic.py @@ -7,7 +7,8 @@ __all__ = [ "check_pkg_config", "check_pkg_config_mixed", "check_pkg_config_mixed_all", "check_pkg_config_cflags", "check_cc", "check_statement", "check_libs", "check_headers", "compose_checks", "check_true", "any_version", - "load_fragment", "check_stub", "check_ctx_vars", "check_program"] + "load_fragment", "check_stub", "check_ctx_vars", "check_program", + "check_pkg_config_datadir"] any_version = None @@ -82,6 +83,9 @@ def check_pkg_config_mixed_all(*all_args, **kw_ext): def check_pkg_config_cflags(*args, **kw_ext): return _check_pkg_config([], ["--cflags"], *args, **kw_ext) +def check_pkg_config_datadir(*args, **kw_ext): + return _check_pkg_config([], ["--variable=pkgdatadir"], *args, **kw_ext) + def _check_pkg_config(_dyn_libs, _pkgc_args, *args, **kw_ext): def fn(ctx, dependency_identifier, **kw): argsl = list(args) @@ -113,7 +117,7 @@ def _check_pkg_config(_dyn_libs, _pkgc_args, *args, **kw_ext): # added only at its first occurrence. original_append_unique = ConfigSet.append_unique ConfigSet.append_unique = ConfigSet.append_value - result = bool(ctx.check_cfg(**opts)) + result = ctx.check_cfg(**opts) ConfigSet.append_unique = original_append_unique defkey = inflector.define_key(dependency_identifier) -- cgit v1.2.3