summaryrefslogtreecommitdiff
path: root/egl
Commit message (Collapse)AuthorAgeFilesLines
* build: use full_path() instead of path()Simon Ser2022-03-251-1/+1
| | | | | | | | | Fixes the following warning: WARNING: Project targeting '>= 0.56.0' but tried to use feature deprecated since '0.55.0': ExternalProgram.path. use ExternalProgram.full_path() instead Signed-off-by: Simon Ser <contact@emersion.fr>
* meson: override dependencies to ease use as subprojectSimon Ser2021-12-081-0/+9
| | | | | | | | | | | | | Make it easier to use Wayland as a Meson subproject by overriding dependencies we define. This allows to easily build Wayland as a subproject like so: subproject('wayland', required: false, default_options: ['documentation=false']) After this statement, the wayland-* dependencies will use the subproject instead of the system if available. Signed-off-by: Simon Ser <contact@emersion.fr>
* build: Include the Wayland minor version in libraries' ABI versionsSimon McVittie2021-10-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ABI of a shared library on Linux is given by a major version, which is part of the SONAME and is incremented (rarely) on incompatible changes, and a minor version, which is part of the basename of the regular file to which the SONAME provides a symlink. Until now, the ABI minor version was hard-coded, which means we can't tell which of a pair of Wayland libraries is newer (and therefore likely to have more symbols and/or fewer bugs). libwayland-egl already had ABI major version 1, so we can use the "marketing" version number as the ABI major.minor version number directly, so Wayland 1.19.90 would produce libwayland-egl.so.1 -> libwayland-egl.so.1.19.90. libwayland-cursor and libwayland-server have ABI major version 0, and OS distributions don't like it when there's a SONAME bump for no good reason, so use their existing ABI major version together with the "marketing" minor version: libwayland-cursor.so.0 -> libwayland-cursor.so.0.19.90. If the Wayland major version number is incremented to 2, we'll have to rethink this, so add some error() to break the build if/when that happens. Assuming that Wayland 2.0 would involve breaking changes, the best way would probably to bump all the SONAMEs to libwayland-foo.so.2. Resolves: https://gitlab.freedesktop.org/wayland/wayland/-/issues/175 Signed-off-by: Simon McVittie <smcv@collabora.com>
* protocol: Add wl_surface.offsetJonas Ådahl2021-10-281-0/+14
| | | | | | | | | | | | | | This is meant to address the issue where the call to 'wl_surface.attach' is done by e.g. Vulkan, meaning applications cannot affect the values of the offset passed as the x and y arguments. The lack of ability to pass these is problematic when using the Vulkan for e.g. drawing DND surfaces, as the buffer offset is used to implement the drag icon hotspots. Closes: https://gitlab.freedesktop.org/wayland/wayland/-/issues/148 Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Simon Ser <contact@emersion.fr>
* build: drop autotoolsSimon Ser2021-03-053-22/+2
| | | | | | Meson now replaces autotools. Signed-off-by: Simon Ser <contact@emersion.fr>
* egl: fix typo "Backards"Maxime Roussin-Bélanger2020-12-171-6/+6
|
* Add Meson buildEmmanuele Bassi2020-01-101-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Meson is a next generation build system, simpler than Autotools and also faster and more portable. Most importantly, it will make integrating ASan easier in CI. The goal is to maintain feature parity of the Meson build with the Autotools build, until such time when we can drop the latter. Add a script which generates the desired Doxygen configuration for our various output formats and executes it using that configuration. This is not something Meson can or should do. Fixes: https://gitlab.freedesktop.org/wayland/wayland/issues/80 [daniels: Changed to bump version, use GitLab issues URL, remove header checks not used in any code, remove pre-pkg-config Expat support, added missing include paths to wayland-egl and cpp-compile-test, added GitLab CI. Bumped version, removed unnecessary pkg-config paths.] [daniels: Properly install into mandir/man3 via some gross paramaterisation, generate real stamp files.] Pekka: - squashed patches - removed MAKEFLAGS from meson CI - remove unused PACKAGE* defines - fix up scanner dependency handling - instead of host_scanner option, build wayland-scanner twice when cross-compiling - changed .pc files to match more closely the autotools versions - reorder doxygen man sources to reduce diff to autotools - fix pkgconfig.generate syntax warnings (new in Meson) - bump meson version to 0.47 for configure_file(copy) and run_command(check) - move doc tool checks into doc/meson.build, needed in more places - make all doc tools mandatory if building docs - check dot and doxygen versions - add build files under doc/publican - reindent to match Weston Meson style Simon: - Remove install arg from configure_file - Don't build wayland-scanner twice during cross-build - Fix naming of the threads dependency - Store tests in dict - Add missing HAVE_* decls for functions - Remove unused cc_native variable - Make doxygen targets a dict - Make dot_gv a dict - Use dicts in man_pages - Make decls use dicts - Make generated_headers use dicts - Align Meson version number with autotool's Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com> Signed-off-by: Simon Ser <contact@emersion.fr>
* wayland-egl: Ignore underscored symbols in ABI checkDaniel Stone2018-03-201-9/+1
| | | | | | | | | | | | Rather than a hard-coded list of platform symbols, just ignore anything prefaced with an underscore. This fixes breakage on ARM, which declares several slightly different platform symbols to x86. Signed-off-by: Daniel Stone <daniels@collabora.com> Fixes: 21b1f22eb056 ("wayland-egl: enhance the symbol test") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105620 Cc: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
* wayland-egl: Make symbol test fail on failureDaniel Stone2018-03-191-6/+21
| | | | | | | | | | | | | | | | | | The previous rewrite of the wayland-egl ABI checker introduced checks for removed symbols as well as added symbols, but broke some failure conditions. Add an explict return-code variable set in failure paths, rather than chaining or conditions. If we cannot find the binary or nm, we regard this as an error condition, rather than test failure. v2: Don't test if we can execute $NM. Signed-off-by: Daniel Stone <daniels@collabora.com> Reported-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Fixes: 21b1f22eb056 ("wayland-egl: enhance the symbol test") Cc: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
* wayland-egl: bump the version number to 18.1.0Emil Velikov2018-03-191-1/+1
| | | | | | | | | | | | | Seems like I was overoptimistic with my earlier assumption, namely: "... 17.3.x should be the last version that ships the library." Mesa 18.0.0 and its wayland-egl is about to be released any time soon, so bump the number since it must no be smaller. As soon as we get a wayland release I'll drop the Mesa copy but for now. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
* wayland-egl: enhance the symbol testEmil Velikov2018-03-191-8/+28
| | | | | | | | | | | | | | | The current test had a few fall-outs: - it was checking only for T (.text) symbols - did not consider symbol removal Fix that by fetching all the symbols and doing a bidirectional check - for added and removed symbols. Error out with informative message for each case. v2: Rebase on top of $NM patch. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
* wayland-egl: fail the symbol check if lib is missingEmil Velikov2018-03-191-1/+9
| | | | | | | | | | | Based on a similar patch (in Mesa) by Eric Engestrom. v2: Rebase on top of $NM patch v3: Rebase Reviewed-by: Eric Engestrom <eric@engestrom.ch> (v1) Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
* wayland-egl: use correct `nm` path when cross-compilingEmil Velikov2018-02-231-1/+1
| | | | | | | | | Inspired by Heiko Becker and Eric's work in libdrm and Mesa respectively. Cc: Eric Engestrom <eric.engestrom@imgtec.com> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
* wayland-egl: rename wl_egl_window::private to driver_privateEmil Velikov2018-02-093-6/+6
| | | | | | | | | | | | | | | | | | | | private is a reserved keyword in C++. Thus if one is to have a backend driver written in said language build will fail as below: .../wayland-egl-backend.h:56:8: expected unqualified-id before ‘private’ Rename it to driver_private and update the test. NOTE: version bump is not required since: - this is a pure API change, ABI is identical - hardware drivers already require [minor] changes to move to the upstream wayland-egl-backend.h Cc: Arnaud Vrac <rawoul@gmail.com> Cc: Miguel A . Vico <mvicomoya@nvidia.com> Suggested-by: Arnaud Vrac <rawoul@gmail.com> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Miguel A Vico Moya <mvicomoya@nvidia.com>
* wayland-egl: move the wayland-egl{, -core}.h headers to egl/Emil Velikov2018-02-092-0/+92
| | | | | | | Now we have all the wayland-egl bits in a single place. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Arnaud Vrac <avrac@freebox.fr>
* wayland-egl-symbols-check: pass the DSO name via the build systemEmil Velikov2018-02-091-1/+1
| | | | | | | | | The location of the file is build system specific so, keep it there. Cc: Daniel Stone <daniels@collabora.com> Suggested-by: Daniel Stone <daniels@collabora.com> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Arnaud Vrac <avrac@freebox.fr>
* wayland-egl: add a note about keeping the backend version in syncEmil Velikov2018-02-091-0/+4
| | | | | Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Arnaud Vrac <avrac@freebox.fr>
* wayland-egl: introduce wayland-egl-backend.pcEmil Velikov2018-02-091-0/+9
| | | | | | | | | | | | | | | | File will be installed alongside the backend header. This way vendor implementations have enough information about the interface and they can build their backend/driver library accordingly. Cc: Miguel A. Vico <mvicomoya@nvidia.com> Cc: James Jones <jajones@nvidia.com> Cc: Daniel Stone <daniels@collabora.com> Cc: duncan-roe <duncan_roe@optusnet.com.au> Cc: Takanari Hayama <taki@igel.co.jp> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Miguel A Vico Moya <mvicomoya@nvidia.com> Reviewed-by: Arnaud Vrac <avrac@freebox.fr>
* wayland-egl: correct wayland-egl.pc description/versionEmil Velikov2018-02-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Drop the "Mesa" part from the commit message and change the version to 17.4.0. The number bears references from its Mesa heritage. Currently Mesa provides 17.2.x while 17.3.x should be the last version that ships the library. Some version numbers of wayland-egl.pc providers and users. The latter is taken from Ubuntu 17.04. Providers: - Mali: 7.10 - Mesa: 17.2.2 Users: - retroarch: NA - qtwayland5: NA - mpv, libmpv1: 9.0 - mesa-utils-extra: NA - weston, libweston-1-0: NA - libwaffle-1-0: 9.1 - libsdl2-2.0-0: NA - libgstreamer-plugins-bad1.0-0: autotools 9.0, meson 1.0 - libglfw3-wayland: NA - kwin-wayland, kwin-wayland-backend-wayland: NA? - glmark2-wayland, glmark2-es2-wayland: NA - libwebkit2gtk-4.0-37, libwebkit2gtk-4.0-37-gtk2, (webkit overall): NA - libgtk-3-0 (gtk overall): NA - libcogl20 (cogl overall): 1.0.0 v2: Bump the version to 17.4.0 Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Arnaud Vrac <avrac@freebox.fr>
* wayland-egl: reuse the existing WL_EXPORT macroEmil Velikov2018-02-091-10/+5
| | | | | | | | | | There's little point if redefining new one ourselves. Just reuse the one that's already available. Cc: Daniel Stone <daniels@collabora.com> Suggested-by: Daniel Stone <daniels@collabora.com> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Arnaud Vrac <avrac@freebox.fr>
* wayland-egl: import libwayland-egl.so frontend library from MesaEmil Velikov2018-02-095-0/+434
Currently the client-facing libwayland-egl API is defined by a header file shipped by Wayland, but the implementation is left to each vendor. This can cause collisions when multiple implementations are installed on the same system. Importing the implementation into Wayland with a stable and versioned driver-facing ABI allows multiple drivers to coexist on the same system. Pull the sample implementation from Mesa commit 677edff5cfd ("wayland-egl: rework and simplify wl_egl_window initialization") It has been used by the Mesa open source drivers, NVIDIA and others[1]. v2: Reword commit message, rebase on top of newer Mesa. [1] https://github.com/thayama/wayland-egl Cc: Miguel A. Vico <mvicomoya@nvidia.com> Cc: James Jones <jajones@nvidia.com> Cc: Daniel Stone <daniels@collabora.com> Cc: duncan-roe <duncan_roe@optusnet.com.au> Cc: Takanari Hayama <taki@igel.co.jp> Suggested-by: Daniel Stone <daniels@collabora.com> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Miguel A Vico Moya <mvicomoya@nvidia.com> Reviewed-by: Arnaud Vrac <avrac@freebox.fr>