summaryrefslogtreecommitdiff
path: root/meson_options.txt
AgeCommit message (Collapse)AuthorFilesLines
2018-08-09meson: Make FALLBACK_INPUT_DRIVER configurable in meson.Eric Anholt1-0/+2
This makes us match the featureset of autotools, and also fixes the non-Linux default value to match. Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-06-28meson: Add configuration of listening on tcp, unix and localLaurent Carlier1-0/+7
bugzilla: https://bugs.kde.org/show_bug.cgi?id=395419 bugzilla: https://bugs.archlinux.org/task/59025 Signed-off-by: Laurent Carlier <lordheavym@gmail.com> Reviewed-by: Aaron Plattner <aplattner@nvidia.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-09meson: Fix module_dir configuration (v2)Aaron Plattner1-1/+1
meson.build has code to set the module_dir variable to ${libdir}/xorg/modules if the module_dir option string is empty. However, this has several problems: 1. The variable is only used for an unused @moduledir@ substitution in the man page. The rule for xorg-server.pc uses option('module_dir') directly instead. 2. The 'module_dir' option has a default value of 'xorg/modules' so the above rule doesn't do anything by default. 3. The xorg-server.pc rule uses ${exec_prefix}/option('module_dir'), so the effect of #2 is that the default moduledir is different between autoconf and meson. E.g. if ${prefix} is /X, then you get autoconf: moduledir=/X/lib/xorg/modules meson: moduledir=/X/xorg/modules Fix this by using the module_dir variable when generating xorg-server.pc, and by using join_paths() to assign module_dir unconditionally. v2: Keep the 'xorg/modules' default path, but use join_paths() unconditionally (Thierry Reding) Signed-off-by: Aaron Plattner <aplattner@nvidia.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-04-24xwayland: Add glamor egl_backend for EGLStreamsLyude Paul1-0/+2
This adds initial support for displaying Xwayland applications through the use of EGLStreams and nvidia's custom wayland protocol by adding another egl_backend driver. This also adds some additional egl_backend hooks that are required to make things work properly. EGLStreams work a lot differently then the traditional way of handling buffers with wayland. Unfortunately, there are also a LOT of various pitfalls baked into it's design that need to be explained. This has a very large and unfortunate implication: direct rendering is, for the time being at least, impossible to do through EGLStreams. The main reason being that the EGLStream spec mandates that we lose the entire color buffer contents with each eglSwapBuffers(), which goes against X's requirement of not losing data with pixmaps. no way to use an allocated EGLSurface as the storage for glamor rendering like we do with GBM, we have to rely on blitting each pixmap to it's respective EGLSurface producer each frame. In order to pull this off, we add two different additional egl_backend hooks that GBM opts out of implementing: - egl_backend.allow_commits for holding off displaying any EGLStream backed pixmaps until the point where it's stream is completely initialized and ready for use - egl_backend.post_damage for blitting the content of the EGLStream surface producer before Xwayland actually damages and commits the wl_surface to the screen. The other big pitfall here is that using nvidia's wayland-eglstreams helper library is also not possible for the most part. All of it's API for creating and destroying streams rely on being able to perform a roundtrip in order to bring each stream to completion since the wayland compositor must perform it's job of connecting a consumer to each EGLstream. Because Xwayland has to potentially handle both responding to the wayland compositor and it's own X clients, the situation of the wayland compositor being one of our X clients must be considered. If we perform a roundtrip with the Wayland compositor, it's possible that the wayland compositor might currently be connected to us as an X client and thus hang while both Xwayland and the wayland compositor await responses from eachother. To avoid this, we work directly with the wayland protocol and use wl_display_sync() events along with release() events to set up and destroy EGLStreams asynchronously alongside handling X clients. Additionally, since setting up EGLStreams is not an atomic operation we have to take into consideration the fact that an EGLStream can potentially be created in response to a window resize, then immediately deleted due to another pending window resize in the same X client's pending reqests before Xwayland hits the part of it's event loop where we read from the wayland compositor. To make this even more painful, we also have to take into consideration that since EGLStreams are not atomic that it's possible we could delete wayland resources for an EGLStream before the compositor even finishes using them and thus run into errors. So, we use quite a bit of tracking logic to keep EGLStream objects alive until we know the compositor isn't using them (even if this means the stream outlives the pixmap it backed). While the default backend for glamor remains GBM, this patch exists for users who have had to deal with the reprecussion of their GPU manufacturers ignoring the advice of upstream and the standardization of GBM across most major GPU manufacturers. It is not intended to be a final solution to the GBM debate, but merely a baindaid so our users don't have to suffer from the consequences of companies avoiding working upstream. New drivers are strongly encouraged not to use this as a backend, and use GBM like everyone else. We even spit this out as an error from Xwayland when using the eglstream backend. Signed-off-by: Lyude Paul <lyude@redhat.com> Acked-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
2018-03-28meson: Fix generation of xorg-server.pcThierry Reding1-1/+1
Meson stores relative paths for includedir, libdir and friends. These have to be concatenated with the ${prefix} or ${exec_prefix} variables to create a working pkg-config file. While at it, set a default value for the module_dir option so that it points to the same location as used in the autotools-based build. Signed-off-by: Thierry Reding <treding@nvidia.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
2018-03-27meson: Add option to set default font path (v2)Adam Jackson1-0/+1
The autotools build gets this from some macros in fontutil, but they're just wrappers around pkgconfig. v2: Use same default as autotools (Keith Packard) Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com>
2018-03-27meson: Build Xorg suid wrapperAdam Jackson1-1/+2
Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com>
2018-03-02meson: Make SHM extension optionalLaurent Carlier1-0/+2
v2: check for header 'sys/shm.h' Signed-off-by: Laurent Carlier <lordheavym@gmail.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
2018-03-02meson: Make ACPI support optionalLaurent Carlier1-0/+2
v2: Define HAVE_ACPI in dix-config.h Signed-off-by: Laurent Carlier <lordheavym@gmail.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
2018-03-02meson: Make APM support optionalLaurent Carlier1-0/+2
v2: Define HAVE_APM in dix-config.h Signed-off-by: Laurent Carlier <lordheavym@gmail.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
2018-02-19meson: Make DGA extension optionalLaurent Carlier1-0/+2
Signed-off-by: Laurent Carlier <lordheavym@gmail.com>
2018-02-19meson: Make Xv and XvMC extensions optionalLaurent Carlier1-0/+4
Just mimic autoconf file, XvMC can't be enabled without Xv Signed-off-by: Laurent Carlier <lordheavym@gmail.com>
2018-02-14meson: Make Security extension optionalLaurent Carlier1-0/+2
Just mimic autoconf file, Security extension needs X-ACE extension Signed-off-by: Laurent Carlier <lordheavym@gmail.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
2018-02-14meson: Make more extensions optionalLaurent Carlier1-0/+10
Just mimic autoconf file for xf86bigfont, screensaver, xres, xace and xinerama extensions Signed-off-by: Laurent Carlier <lordheavym@gmail.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
2018-02-14meson: Make DPMS extension optionalLaurent Carlier1-0/+2
Just mimic autoconf file, DPMS is disabled with Xquartz Signed-off-by: Laurent Carlier <lordheavym@gmail.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
2018-01-16meson: Enable SUN-DES-1 auth codeAdam Jackson1-0/+1
Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2017-10-25meson: Use [ true, false, auto ] for tristate valuesAdam Jackson1-14/+14
For symmetry with the boolean options. I really do not want to care whether an option is a tristate if I'm trying to set it explicitly. Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-10-12meson: Add xkb_bin_dir optionLyude Paul1-0/+1
Now that we can actually configure all of the directories xkb uses for finding things, we can (finally, but only with meson) finally make it so that with the correct meson configuration the Xserver will "just work" without any additional changes to the installation prefix after building. For the people like me who have since scripted this part out of their build process and forgotten about it, building and installing the X server into a non-standard prefix has always required the following (or something else that makes sure that X has a valid xkbcomp configuration) commands be run right after doing the installation: # start in root of prefix you installed X to mkdir -pv share/X11/xkb/rules ln -s /usr/share/X11/xkb/rules/evdev share/X11/xkb/rules/ rm -f bin/xkbcomp ln -s /usr/bin/xkbcomp bin/ The one last piece of getting rid of this post-install junk is making sure that we can control the directory that X uses for finding the xkbcomp binary from meson so we can point it at the system provided xkbcomp (/usr/bin/xkbcomp or similar). So, this patch adds a configuration option for controlling this called xkb_bin_dir. Signed-off-by: Lyude Paul <lyude@redhat.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniels@collabora.com>
2017-09-20meson: Move Xvfb build under an option.Eric Anholt1-0/+2
Autotools also had it as an option. Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Adam Jackson <ajax@redhat.com>
2017-06-20meson: Make VBE and VGAHW modules optionalJon Turney1-0/+4
Don't build them on platforms where they aren't meaningful. Note that autoconf defines WITH_VGAHW when building the VGAHW module, but that doesn't seem to be used anywhere, so we just drop that. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk> Reviewed-by: Eric Anholt <eric@anholt.net>
2017-06-02Add meson.build for XWin server (v2)Jon Turney1-0/+5
This needs a meson with PRs #1784, #1792 and #1794 Future work: remove conditionals which are always on, and simplify redundant CYGDEBUG conditionals Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk> Reviewed-by: Eric Anholt <eric@anholt.net>
2017-05-10meson: Make driprotos and libdrm optionalJon TURNEY1-0/+4
Add options for DRI{1,2,3} shmfence is required for DRI3 libdrm is required for any DRI{1,2,3} Consolidate calls to dependency('libdrm') Set WITH_LIBDRM when building with libdrm v2: Initialize libxserver_dri3 to [] Manually flatten libxserver, since meson doesn't (currently) Use version_compare rather than circumloctions with dependency() Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk> Reviewed-by: Eric Anholt <eric@anholt.net>
2017-05-04meson: Fix typo in xephyr option descriptionJon TURNEY1-1/+1
Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
2017-04-26Add a Meson build system alongside autotools.Eric Anholt1-0/+46
This is a work in progress that builds Xvfb, Xephyr, Xwayland, Xnest, and Xdmx so far. The outline of Xquartz/Xwin support is in tree, but hasn't been built yet. The unit tests are also not done. The intent is to build this as a complete replacement for the autotools system, then eventually replace autotools. meson is faster to generate the build, faster to run the bulid, shorter to write the build files in, and less error-prone than autotools. v2: Fix indentation nits, move version declaration to project(), use existing meson_options for version-config.h's vendor name/web. Signed-off-by: Eric Anholt <eric@anholt.net> Acked-by: Keith Packard <keithp@keithp.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>