summaryrefslogtreecommitdiff
path: root/meson.build
Commit message (Collapse)AuthorAgeFilesLines
* Bump the pango dependencyMatthias Clasen2020-08-021-1/+1
| | | | Require pango 1.45.5, so we can use pango_color_parse_with_alpha.
* Bump the glib dependencyMatthias Clasen2020-07-311-2/+2
| | | | | Some of the new apis we want to use to avoid deprecations were only introduced in 2.65.
* 3.99.03.99.0Matthias Clasen2020-07-301-1/+1
|
* build: Check for EGL support in libepoxy on WindowsChun-wei Fan2020-07-301-0/+16
| | | | | | | | | | ...EGL support needs to be explicitly enabled during the build of libepoxy on Windows as it is not enabled by default on Windows. With this, we can add an EGL renderer for Windows that make use of Google's libANGLE, which is a library that translates OpenGL/ES calls to Direct3D 9/11, which will provide better hardware compatibility on Windows and would act as one of the foundations to resolve issue #105.
* build: bump to sysprof 4 ABIChristian Hergert2020-07-281-1/+14
| | | | | | | | Sysprof has moved to a new ABI which removes GLib from the capture library so that GLib itself can link against sysprof-capture. This bumps the library ABI so we can keep things coordinated between all the new tracing layers in the stack.
* macos: support ARM/PowerPC time conversion for DisplayLink timesChristian Hergert2020-07-271-0/+11
| | | | | | When converting DisplayLink frame presentation times, we need to take into account the arch-specific types. This tracks changes in GNOME/GLib!1566 so that precision is not lost.
* Remove ATKEmmanuele Bassi2020-07-261-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To build a better world sometimes means having to tear the old one down. -- Alexander Pierce, "Captain America: The Winter Soldier" ATK served us well for nearly 20 years, but the world has changed, and GTK has changed with it. Now ATK is mostly a hindrance towards improving the accessibility stack: - it maps to a very specific implementation, AT-SPI, which is Linux and Unix specific - it requires implementing the same functionality in three different layers of the stack: AT-SPI, ATK, and GTK - only GTK uses it; every other Linux and Unix toolkit and application talks to AT-SPI directly, including assistive technologies Sadly, we cannot incrementally port GTK to a new accessibility stack; since ATK insulates us entirely from the underlying implementation, we cannot replace it piecemeal. Instead, we're going to remove everything and then incrementally build on a clean slate: - add an "accessible" interface, implemented by GTK objects directly, which describe the accessible role and state changes for every UI element - add an "assistive technology context" to proxy a native accessibility API, and assign it to every widget - implement the AT context depending on the platform For more information, see: https://gitlab.gnome.org/GNOME/gtk/-/issues/2833
* macos: prototype new GDK backend for macOSChristian Hergert2020-07-211-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is fairly substantial rewrite of the GDK backend for quartz and renamed to macOS to allow for a greenfield implementation. Many things have come across from the quartz implementation fairly intact such as the eventloop integration design and discovery of event windows from the NSEvent. However much has been changed to fit in with the new GDK design and how removal of child GdkWindow have been completely eliminated. Furthermore, the new GdkPopup allows for regular NSWindow to be used to provide popovers unlike the previous implementation. The object design more closely follows the ideal for a GDK backend. Views have been broken out into subclasses so that we can support multiple GSK renderer paths such as GL and Cairo (and Metal in the future). However mixed mode GL and Cairo will not be supported. Currently only the Cairo renderer has been implemented. A new frame clock implementation using CVDisplayLink provides more accurate information about when to draw drawing the next frame. Some testing will need to be done here to understand the power implications of this. This implementation has also gained edge snapping for CSD windows. Some work was also done to ensure that CSD windows have opaque regions registered with the display server. ** This is still very much a work-in-progress ** Some outstanding work that needs to be done: - Finish a GL context for macOS and alternate NSView for GL rendering (possibly using speciailized CALayer for OpenGL). - Input rework to ensure that we don't loose remapping of keys that was dropped from GDK during GTK 4 development. - Make sure input methods continue to work. - Drag-n-Drop is still very much a work in progress - High resolution input scrolling needs various work in GDK to land first before we can plumb that to NSEvent. - gtk/ has a number of things based on GDK_WINDOWING_QUARTZ that need to be updated to use the macOS backend. But this is good enough to start playing with and breaking things which is what I'd like to see.
* build: add ATK fallback subproject wrapperChristian Hergert2020-07-211-1/+2
| | | | Very similar to the other fallbacks we use.
* build: squash various warnings with ClangChristian Hergert2020-07-211-0/+2
| | | | | Otherwise we have really chatty builds that make it difficult to catch new issues when compiling.
* build: fix linking support on macOS with ClangChristian Hergert2020-07-211-5/+0
| | | | | | This was preventing any sort of building on macOS, even though the quartz backend is currently non-functional. Fixing this is a pre-requisite to getting a new macOS backend compiling.
* Clarify documentEmmanuele Bassi2020-06-181-2/+3
| | | | | We don't use the branch name to determine whether we should enable or disable deprecation warnings coming from our dependencies.
* Add libcloudproviders as a fallback subprojectEmmanuele Bassi2020-06-171-2/+10
| | | | | We require a new version of libcloudproviders so that we can enable it in our CI pipeline.
* 3.98.53.98.5Matthias Clasen2020-06-061-1/+1
|
* Merge branch 'master.msvc' into 'master'Matthias Clasen2020-06-051-6/+10
|\ | | | | | | | | Fix latest GTK master on Visual Studio See merge request GNOME/gtk!2028
| * modules: Fix build on Visual StudioChun-wei Fan2020-06-051-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Visual Studio does not allow decorating functions with '__declspec (dllexport)' if a prototype exists and is not decorated with '__declspec (dllexport)' as well, so we cannot just decorate g_io_module_[load|unload|query] in the various module sources with G_MODULE_EXPORT because the prototypes of these functions have been marked with _GLIB_EXTERN, which equates to 'extern' unless overridden Fix this by overriding _GLIB_EXTERN with the appropriate visibility flag, as we have used to define _GDK_EXTERN. Unfortunately, we can't just use _GDK_EXTERN G_MODULE_EXPORT as they may have not been defined yet for our use Do this across the board for all modules, even if they are not buildable on Visual Studio nor Windows, for consistency's sake.
* | x11: Add back support for the damage extensionRay Strode2020-06-051-0/+5
|/ | | | | | | | | | | commit 14bf58ec5dfdf19e3ca603b977626608dafc729b dropped support for using the DAMAGE extension since there was no code that needed it. We're going to need it again, however, to address an NVidia vendor driver issue. This commit does the plumbing to add it back.
* Drop fallback-c89.cChristoph Reiter2020-05-311-9/+0
| | | | | | | | | We require a C compiler supporting C99 now. The main purpose of these fallbacks was for MSVC. From what I can see this is now all supported by MSVC 2015+ anyway. The only other change this includes is to replace isnanf() with the (type infering) C99 isnan() macro, because MSVC doesn't provide isnanf().
* Add GtkNumericSorterMatthias Clasen2020-05-301-0/+1
| | | | | This sorter compares numbers obtained from items by evaluating an expression.
* Fix inconsistencies in our pango depsMatthias Clasen2020-05-301-2/+3
| | | | | | | We were applying the pango version requirements inconsistently, leading to different pango variables being taking from system pango vs the subproject at times. Thankfully, meson detects this and complains, so we can fix it.
* Bump the pango dependencyMatthias Clasen2020-05-301-2/+3
| | | | | | | We soon want to rely on the list model apis in pango 1.45. This commit also fixes a mixup where using pango as a submodule would break the build when pangoft2 is required.
* Revert "Bump the pango dependency"Matthias Clasen2020-05-301-3/+2
| | | | | | This reverts commit 98df0be43dea6ff61aadb28e1823b11a6d53452a. It broke the win32 build.
* meson: CosmeticsMatthias Clasen2020-05-291-1/+3
| | | | Treat the display backend list like other lists in the summary.
* Bump the pango dependencyMatthias Clasen2020-05-291-2/+3
| | | | | | | We soon want to rely on the list model apis in pango 1.45. This commit also fixes a mixup where using pango as a submodule would break the build when pangoft2 is required.
* gtksearchengine: Add tracker3 search engineCarlos Garnacho2020-05-191-0/+10
| | | | | Make this dependency optional at build time, and prefer it over the old tracker <= 2.x implementation.
* 3.98.43.98.4Matthias Clasen2020-05-181-1/+1
|
* x11: Remove XDamage dependencyBenjamin Otte2020-05-171-5/+0
| | | | It's not used.
* build: clean up .pc generationJan Tojnar2020-04-291-2/+2
| | | | | | | Path concatenation is much nicer than the unwieldy format method. Since paths returned by get_option are relative to prefix, they will be joined as before. As a bonus, this fixes weird platforms like NixOS that actually pass absolute includedir under a different prefix.
* 3.98.33.98.3Matthias Clasen2020-04-211-1/+1
|
* meson: Use summary()Timm Bäder2020-04-171-29/+27
| | | | Instead of doing our own. Bumps the dependency to 0.53 though.
* meson: Trivial formatttingTimm Bäder2020-04-171-5/+5
|
* build: Prepare library versioningMatthias Clasen2020-04-141-1/+2
| | | | | | | | | | Set version and soversion separately for the library. When we do the 4.0 release, we will set: gtk_soversion = '1' gtk_library_version = '1.0.0' See https://gitlab.gnome.org/GNOME/gtk/-/issues/1963
* wayland: Move popups with xdg_popup.repositionJonas Ådahl2020-04-081-4/+10
| | | | | | | | | | | | | | | | | | | | The third version of xdg-shell introduces support for explicit popup repositioning. If available, make use of this to implement popup repositioning. Note that this does *NOT* include atomic parent-child state synchronization. For that, https://gitlab.freedesktop.org/wayland/wayland-protocols/issues/13 will be needed. This currently uses my own fork of wayland-protocols which adds meson support, so that we can use it as a subproject. Eventually when wayland-protocols' meson support lands upstream, we should change it to point there. Silence some meson warnings while at it to make CI happy. This also bumps the glib requirement, since g_warning_once() is used.
* Merge branch 'cross-postinstall' into 'master'Matthias Clasen2020-04-061-5/+9
|\ | | | | | | | | meson: Don't execute post-install.py if cross compiling See merge request GNOME/gtk!1636
| * meson: Don't execute post-install.py if cross compilingMartin Storsjö2020-04-051-5/+9
| |
* | meson: Fix check for builtype argumentsNirbheek Chauhan2020-04-031-4/+7
|/ | | | | | | | | | | `get_option('buildtype')` will return `'custom'` for most combinations of `-Doptimization` and `-Ddebug`, but those two will always be set correctly if only `-Dbuildtype` is set. So we should look at those options directly. For the two-way mapping between `buildtype` and `optimization` + `debug`, see this table: https://mesonbuild.com/Builtin-options.html#build-type-options
* supp: Use a single suppressions file for lib, lib64 and multiarchSimon McVittie2020-04-021-1/+1
| | | | | | | | | In addition to the traditional library directory lib and the 64-bit multilib directory lib64, this will cover Debian-style multiarch (lib/x86_64-linux-gnu etc.), Arch Linux 32-bit (lib32), x32 and various others. Signed-off-by: Simon McVittie <smcv@debian.org>
* 3.98.23.98.2Matthias Clasen2020-03-311-1/+1
|
* meson.build: Fix Visual Studio buildsChun-wei Fan2020-03-311-0/+1
| | | | | We need to make the C++ language available before we can access the C++ compiler object...
* 3.98.13.98.1Matthias Clasen2020-03-211-1/+1
|
* Require pango 1.44.4Matthias Clasen2020-03-211-1/+1
| | | | | This lets use use the insert-hyphen attribute unconditionally.
* build: Add -Wno-typedef-redefinition to buildTimm Bäder2020-03-121-0/+1
| | | | Clang otherwise complains about this
* build: Add -Wnull-dereferenceBenjamin Otte2020-03-051-0/+1
| | | | | | | | | | Sprinkle various g_assert() around the code where gcc cannot figure out on its own that a variable is not NULL and too much refactoring would be needed to make it do that. Also fix usage of g_assert_nonnull(x) to use g_assert(x) because the first is not marked as G_GNUC_NORETURN because of course GTester supports not aborting on aborts.
* build: Add more useful warning flagsBenjamin Otte2020-03-051-0/+3
| | | | I found those on the interwebs and decided they are useful.
* build: Install Valgrind suppressions filesPhilip Chimento2020-02-231-0/+7
| | | | | | | This is so that other programs linking to GTK can use GTK's suppressions files when performing their own Valgrind analysis. Closes: #138
* 3.98.03.98.0Matthias Clasen2020-02-101-1/+1
|
* meson/MSVC builds: Use -utf-8 where availableChun-wei Fan2020-02-031-3/+11
| | | | | | | | | This avoids the build from erroring out on C4819 (Unicode handling issue in Visual Studio compiler), notably when running on Chinese, Japanese and Korean locales. Also apply -D_USE_MATH_DEFINES, -FImsvc_recommended_pragmas.h and -utf-8 to the C++ compiler options as well.
* Make wayland load cursors on demandMatthias Clasen2020-01-241-2/+0
| | | | | | | | | | | Copy just enough of libwayland-cursor to make our own loading. This lets us drop the dependency on libwayland-cursor, and changes the startup cost for cursor theme loading from 25ms to 0.1ms. At the same time, simplify the handling of scaled cursors - instead of creating an array of theme objects, just make a single theme object provide all scaled cursor sizes.
* build: Check for sincosf()Chun-wei Fan2020-01-081-0/+1
| | | | | | | sincosf() is really a GCC-specific function that may more may not be supported on non-GCC compilers, so we want to check for it, otherwise we use a fallback implementation, not unlike the one in demos/gtk-demo/gtkgears.c.
* Bump up the required version of MesonEmmanuele Bassi2019-11-161-1/+1
| | | | Match the one we're testing on our CI infrastructure.