summaryrefslogtreecommitdiff
path: root/meson.build
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* build: We no longer need freetypeMatthias Clasen2019-11-011-27/+0
|
* Bump the pango dependencyMatthias Clasen2019-11-011-1/+1
| | | | | This lets us avoid freetype uses, and simplifies some other things as well.
* Bump wayland-protocols requirementsOlivier Fourdan2019-07-291-1/+1
| | | | | | | | | | | | | | | The `name` and `description` events were added to `xdg-output` protocol in version 2 which is part of wayland-protocols 1.14. In xdg-output-v1 version 3, the `xdg-output.done` event was deprecated and the `xdg-output.description` event was made mutable, but that doesn't change the actual events so we do not actually need to require that version of xdg-output from wayland-protocols 1.18. Update the wayland-protocols requirement to the bare minimum version, which is 1.14. https://gitlab.gnome.org/GNOME/gtk/issues/2057
* meson: Rename documentation option to gtk_docMatthias Clasen2019-07-011-1/+1
| | | | | | This name is what most of the stack is using. Lets follow along, even though it is (imo) uglier.
* build: Do not use add_global_flags()Emmanuele Bassi2019-06-241-1/+1
| | | | It's almost always not what you want.
* build: Make script interpreter optionalBenjamin Otte2019-05-301-1/+2
| | | | Running the tests needs it though, so it's only optional without tests.
* rendernodeparser: Parse cairo scriptBenjamin Otte2019-05-301-0/+3
| | | | | | | | | | | | Use cairo-script-interpreter to parse the scripts that generate cairo nodes. This requires libcairoscriptinterpreter.so to work properly, but if it isn't found we disable this (unimportant for normal functioning) code and just emits a parser warning. The testsuite requires it however or it will fail. A new test is included that tests all of this.
* profiler: port GdkProfiler to sysprof-3Christian Hergert2019-05-291-0/+11
| | | | | | | | | | This uses the new sysprof-3 ABI to implement the capture writer. It also uses the statically linked libsysprof-capture-3.a that is provided with Sysprof for the capture writing to ensure that we do not leak any symbols nor depend on any additional libraries. The GTK_TRACE_FD can be used to pass a FD for tracing into Gtk. Sysprof uses this when the Gtk instrument is selected for recording.
* meson: allow building man pages without the documentationChristoph Reiter2019-05-251-4/+3
| | | | | | | | The 'documentation' option also guarded the man page build. Instead if skipping the whole docs subdir skip the specific gtkdoc calls, so that the man page build still works. This brings it in line with the gtk3 meson build.
* gdk/x11: Make XInput2 a mandatory build time dependency for x11Carlos Garnacho2019-05-151-12/+13
| | | | | | XInput2 is more than a decade old already, and the input improvements there (and in every other backend really) make it untenable to have support for X11 core input events dragging things behind.
* 3.963.96.0Matthias Clasen2019-05-071-1/+1
|
* Update the version of GrapheneEmmanuele Bassi2019-04-291-1/+1
| | | | We're going to use newly added API soon.
* widget: Add surface relative transform changed callbackJonas Ådahl2019-04-241-1/+1
| | | | | | | | | | | | | | Added two new private GtkWidget API: * gtk_widget_add_surface_transform_changed_callback() * gtk_widget_remove_surface_transform_changed_callback() The intention is to let the user know when a widget transform relative to the surface changes. It works by calculating the surface relative transform during allocation, and notifying the callbacks if it changed since last time. Each widget adds itself as a listener to its parent widget, thus will be triggered if a parents surface relative transform changes.
* build: Add new gcc error flagsBenjamin Otte2019-04-151-0/+2
| | | | | | | | | | | | | | | These flags check for code that we don't want to write, so turn them into error flags. Variable length arrays should be replaced by malloc() - or explicit alloca() calls if you know what you're doing. Implicit fallthrough should be replaced by explicit fallthrough with the usage of G_GNU_FALLTHROUGH. This work inspired by Kees Cook's LCA2019 talk: https://www.youtube.com/watch?v=FY9SbqTO5GQ http://outflux.net/slides/2019/lca/danger.pdf
* Convert fallthrough comments to G_GNUC_FALLTHROUGHBenjamin Otte2019-04-151-1/+1
| | | | | | | This way it's very obvious that fallthrough is indeed what we want. Also bump the glib requirement to 2.59 which introduced G_GNUC_FALLTHROUGH.
* build: Add gtk-css static libraryBenjamin Otte2019-04-121-0/+1
| | | | | | | | | | This library is meant to be the new CSS library that gets used from GDK, GSK and GTK for string printing and parsing. As a first step, move GtkCssProviderError into it. While doing so, split it into GtkCssParserError (for critical problems) and GtkCssParserWarning (for non-critical problems).
* meson: Only use HarfBuzz fallback when neededChun-wei Fan2019-04-121-2/+6
| | | | | | | | | | | The current Meson releases have broken CMake support, meaning that it is likely that HarfBuzz could not be located for Visual Studio builds unless one handcrafts pkg-config files for it, which is both tedious and error-prone. Instead, use the existing mechanism for looking for the HarfBuzz headers and libraries on Visual Studio first when it could not be found via dependency(), and then use the fallback if it still could not be found.
* Merge branch 'wip/ebassi/align-test' into 'master'Matthias Clasen2019-03-291-116/+0
|\ | | | | | | | | Remove aligned allocation checks See merge request GNOME/gtk!596
| * Remove aligned allocation checksEmmanuele Bassi2019-03-041-116/+0
| | | | | | | | | | | | | | | | The tests were added when we thought we had to align memory allocations for structures including a Graphene type in their members. Graphene added alignment annotations for its types, and we never really used the symbols we set after testing for allocations being aligned out of the box with malloc(), and for aligned allocators.
* | Revert "Bump meson req to 0.50"Benjamin Otte2019-03-291-1/+1
| | | | | | | | | | | | This reverts commit f0845d98a21a7a5c5817d50f2076dd2615e3979b. The commit breaks CI. CI has more power than meson telling things.
* | meson.build: Pull in fallback for PangoFT2 only when neededChun-wei Fan2019-03-291-2/+5
| | | | | | | | | | On some systems PangoFT2 is optional, so we only use the fallback when it is being required.
* | Bump meson req to 0.50Matthias Clasen2019-03-281-1/+1
| | | | | | | | meson told me to.
* | testsuite: Add a transforms testBenjamin Otte2019-03-041-1/+1
|/ | | | | | | In particular, check that to_matrix() and to_2d(), to_affine() and to_translate() return the same values. This also requires a recent Graphene version or the tests will fail.
* Merge branch 'wip/fanc999/meson.msvc' into 'master'Chun-wei Fan2019-02-231-1/+1
|\ | | | | | | | | GTK+ 4: Improve Windows/Visual Studio build experience See merge request GNOME/gtk!185
| * build: Make post-install script a Python scriptChun-wei Fan2018-12-061-1/+1
| | | | | | | | | | | | | | | | | | | | The existing post-install shell script will most likely not work on Visual Studio builds as there is normally no shell interpreter installed on the system where the build is done, but the build is normally done in a standard Windows cmd.exe console. Instead, use a Python script so that it will work on the platforms that Python supports.
* | Rename project filesEmmanuele Bassi2019-02-061-1/+1
| | | | | | | | Meson and DOAP are the last holdovers for the old "gtk+" name.
* | Merge branch 'drop-the-plus' into 'master'Matthias Clasen2019-02-051-6/+6
|\ \ | | | | | | | | | | | | Rename some references to GTK+ See merge request GNOME/gtk!553
| * | Rename some references to GTK+Matthias Clasen2019-02-041-6/+6
| | | | | | | | | | | | We are dropping the plus.
* | | Add an explicit fribidi depMatthias Clasen2019-02-041-0/+3
|/ / | | | | | | We will use fribidi api to determine text direction.
* | build: Reintroduce warning flags from autotoolsBenjamin Otte2019-01-221-2/+4
| | | | | | | | | | | | | | | | | | Some of the flags got lost in the meson transition or were demoted from error flags to warning flags. This commit reintroduces them. It also includes fixes for the code that had warnings with those flags. The big one being -Wshadow.
* | meson.build: Order warning flags alphabeticallyBenjamin Otte2019-01-221-21/+20
| | | | | | | | ... and remove the duplicate we already had.
* | build: Avoid a Meson deprecation warningEmmanuele Bassi2019-01-081-1/+1
|/ | | | | | Using an empty `configuration_data` object to copy a configuration file is deprecated since Meson 0.47 (released July 2018); the equivalent behaviour is available by using `copy: true`.
* meson: Always fetch pangoft2_dep from the pango subprojectNirbheek Chauhan2018-10-121-6/+2
| | | | | | | This ensures that we will use pangoft2 if it is available, and not if it is not available. See: https://gitlab.gnome.org/GNOME/pango/merge_requests/6
* meson: Use proxy-libintl subproject when needed and availableNirbheek Chauhan2018-10-121-2/+17
| | | | Such as on Windows with MSVC.
* meson: Add a fallback for the harfbuzz dependencyNirbheek Chauhan2018-10-121-1/+2
| | | | | | | | This meson port is not upstream yet, so a wrap file is not included. Upstream has expressed interest but the port hasn't been tested on all platforms yet. Will be added when it gets upstreamed. Link to WIP port: https://github.com/centricular/harfbuzz
* meson: Support graphene as a fallback dependencyNirbheek Chauhan2018-07-231-2/+9
| | | | | | Don't assume graphene_dep is always a pkg-config dependency. Closes https://gitlab.gnome.org/GNOME/gtk/issues/1197
* Bump version to 3.94.03.94.0Matthias Clasen2018-06-251-1/+1
|
* Add aligned allocator support to mesonРуслан Ижбулатов2018-06-091-0/+126
| | | | | | | | | | | | | | | * A bunch of new variables for config.h.meson * A check for aligned allocation being necessary at all (graphene must use GCC vector instructions or SSE2) * A check for C malloc() being aligned at 16-byte boundaries * A check for a few special aligned allocator functions being present and not being built-ins (posix_memalign is a builtin in GCC, even on platforms where there is no posix_memalign system function) * Added -mstackrealign flag on Windows, since otherwise stack variables may become unaligned when the stack briefly passes through OS code (such as in various callbacks and handlers)
* Merge branch 'wip/xdg-shell' into 'master'Matthias Clasen2018-05-041-1/+1
|\ | | | | | | | | xdg shell (stable) See merge request GNOME/gtk!35
| * wayland: Add support for xdg-shell stableJonas Ådahl2018-05-011-1/+1
| | | | | | | | | | | | | | | | | | | | This commit adds support the stable version of the xdg-shell protocol. Support for the last version of the unstable series is left intact, but will not receive new features. The stable version is prioritized above the older version. https://bugzilla.gnome.org/show_bug.cgi?id=791939
* | wayland: Use dev/evdev/input.h on FreeBSDTing-Wei Lan2018-05-011-0/+2
|/ | | | | | | | | | | The header linux/input.h used by GDK is specific to Linux. It is possible to get a few Linux headers on FreeBSD by installing v4l_compat, but it is usually better to use the one shipped with FreeBSD. We prefer dev/evdev/input.h to linux/input.h here, so it will always use dev/evdev/input.h on FreeBSD regardless of v4l_compat. https://svnweb.freebsd.org/changeset/ports/465644
* build: Use cc.links to check linker argumentsTing-Wei Lan2018-04-221-2/+6
| | | | | | Instead of hard-coding linker flags for a specific operating system and a specific compiler, we can should cc.links to test them, so they can be used on more operating systems and compilers.
* build: Make the default setting work on non-Linux Unix-like systemsTing-Wei Lan2018-04-221-15/+22
| | | | | | | | | | | | | | | | | | All of the four platform-dependent backends are enabled by default. It is usually a good default because it requires users to explicitly choose backends they want to use. Rules in meson.build also automatically disable unavailable backends for macOS, Windows, Linux, so users on these 3 major platforms don't have to manually disable things when running meson commands. However, meson.build doesn't do the same thing for other Unix-like systems, which is acceptable but not ideal. To make it easier to build GTK+ on these systems, the Linux case, which enables X11 and Wayland and disables Win32 and Quartz, is made the default for all operating systems that are not Windows or macOS. This commit also changes most 'host_machine.system()' calls to os_* variables, which are easier to read and less likely to be used wrongly.
* build: Fix copy/paste errorTimm Bäder2018-04-211-1/+1
|
* Spruce up config summaryMatthias Clasen2018-04-151-3/+8
| | | | Show all the options. Nothing to hide.