From: Emmanuele Bassi Date: Wed, 11 Apr 2018 13:37:57 +0000 (+0100) Subject: Simplify the Wayland code generation X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~22^2~527 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a2a99d27c95a6589f397cfd55a49f2571f61b74f;p=gtk4.git Simplify the Wayland code generation Instead of going through an ancillary script to strip away the `WL_EXPORT` annotation from the generated code, we should bump up the required version of Wayland, and use the `private-code` argument for wayland-scanner, which does the right thing for us. --- diff --git a/gdk/wayland/genprotocolfiles.py b/gdk/wayland/genprotocolfiles.py deleted file mode 100755 index 1edd4e33e3..0000000000 --- a/gdk/wayland/genprotocolfiles.py +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -import sys -import re -import shutil -import subprocess - -scanner = sys.argv[1] -in_file = sys.argv[2] -out_file = sys.argv[3] -#TODO: We can infer this optinon from the name of the output file! -option = sys.argv[4] - -pc = subprocess.Popen([scanner, option, in_file, out_file], stdout=subprocess.PIPE) -(stdo, _) = pc.communicate() -if pc.returncode != 0: - sys.exit(pc.returncode) - -# Now read the generated file again and remove all WL_EXPORTs -content = "" -with open(out_file, 'r', encoding='utf-8') as content_file: - content = content_file.read() - -content = content.replace('WL_EXPORT ', '') -ofile = open(out_file, 'w') -ofile.write(content) -ofile.close() - - - -# unstable = False - -# if "unstable" in out_file: - # unstable = True - - -# if out_file.endswith("-protocol.c"): - # print("protocol source") -# elif out_file.endswith("-client-protocol.h"): - # print("client protocol header") -# elif out_file.endswith("-server-protocol.h"): - # print("server protocol header") -# else: - # print("ERROR: '",out_file,"' is not a valid output file") diff --git a/gdk/wayland/meson.build b/gdk/wayland/meson.build index 6390e57c19..8bf4718611 100644 --- a/gdk/wayland/meson.build +++ b/gdk/wayland/meson.build @@ -41,7 +41,6 @@ proto_dir = dependency('wayland-protocols').get_pkgconfig_variable('pkgdatadir') assert(proto_dir != '', 'Could not get pkgdatadir from wayland-protocols.pc') wayland_scanner = find_program('wayland-scanner') -genprotocols = find_program('genprotocolfiles.py') # Format: # - protocol name @@ -77,20 +76,18 @@ foreach p: proto_sources input: input, output: '@0@-client-protocol.h'.format(output_base), command: [ - genprotocols, wayland_scanner, - '@INPUT@', '@OUTPUT@', 'client-header', + '@INPUT@', '@OUTPUT@', ]) gdk_wayland_sources += custom_target('@0@ source'.format(output_base), input: input, output: '@0@-protocol.c'.format(output_base), command: [ - genprotocols, wayland_scanner, + 'private-code', '@INPUT@', '@OUTPUT@', - 'code', ]) endforeach diff --git a/gtk/meson.build b/gtk/meson.build index f1e057189d..075cc9069f 100644 --- a/gtk/meson.build +++ b/gtk/meson.build @@ -600,10 +600,6 @@ proto_sources = [ ] im_wayland_sources = files('gtkimcontextwayland.c') -if wayland_enabled - wayland_scanner = find_program('wayland-scanner') - genprotocols = find_program('../gdk/wayland/genprotocolfiles.py') -endif foreach p: proto_sources proto_name = p.get(0) @@ -619,24 +615,23 @@ foreach p: proto_sources endif if wayland_enabled + # wayland_scanner is defined in gdk/wayland/meson.build im_wayland_sources += custom_target('@0@ client header'.format(output_base), input: input, output: '@0@-client-protocol.h'.format(output_base), command: [ - genprotocols, wayland_scanner, - '@INPUT@', '@OUTPUT@', 'client-header', + '@INPUT@', '@OUTPUT@', ]) im_wayland_sources += custom_target('@0@ source'.format(output_base), input: input, output: '@0@-protocol.c'.format(output_base), command: [ - genprotocols, wayland_scanner, + 'private-code', '@INPUT@', '@OUTPUT@', - 'code', ]) endif endforeach diff --git a/meson.build b/meson.build index de66c987eb..fbc23ba257 100644 --- a/meson.build +++ b/meson.build @@ -33,7 +33,7 @@ cairo_req = '>= 1.14.0' gdk_pixbuf_req = '>= 2.30.0' introspection_req = '>= 1.39.0' wayland_proto_req = '>= 1.9' -wayland_req = '>= 1.9.91' +wayland_req = '>= 1.14.91' graphene_req = '>= 1.5.1' epoxy_req = '>= 1.4' cloudproviders_req = '>= 0.2.5'