Commit Graph

228 Commits

Author SHA1 Message Date
Scott Anderson
062583ed58 Bump meson version to 0.51.2
There was an issue in 0.51.1 and earlier, where lists of dependencies
and disablers weren't acting like they should. Instead of disabling a
build, it would error out instead.

Changing this logic to work around it is annoying, so just bump the
version instead.
2020-01-14 12:48:41 +01:00
Drew DeVault
ebdbe177d6 Drop RDP backend
Users interested in remote access to wlroots compositors should use
wayvnc:

https://github.com/any1/wayvnc
2020-01-10 19:38:39 +01:00
Drew DeVault
a2cbb4e417 Update version to 0.9.1 2020-01-06 09:01:10 -05:00
Drew DeVault
1c5ca793c0 Update version to 0.9.0 2019-12-31 10:11:54 -05:00
Scott Anderson
acb171804e meson: Remove tag generation
This is insanely fruststating. Since it works off of currently committed
git files, if you ever remove anything, your build will fail until you
commit it.

It doesn't even belong in the build system anyway, as it's only part of
an individual's specific workflow. Use for own scripts for your own
workflow. Go use some git hooks to generate this or something.
2019-12-23 07:48:29 -05:00
Scott Anderson
cff1c2f740 meson: Various improvements
Bumps minimum version to 0.51.0

- Remove all intermediate static libraries.
  They serve no purpose and are just add a bunch of boilerplate for
  managing dependencies and options. It's now managed as a list of
  files which are compiled into libwlroots directly.

- Use install_subdir instead of installing headers individually.
  I've changed my mind since I did that. Listing them out is annoying as
  hell, and it's easy to forget to do it.

- Add not_found_message for all of our optional dependencies that have a
  meson option. It gives some hints about what option to pass and what
  the optional dependency is for.

- Move all backend subdirectories into their own meson.build. This
keeps some of the backend-specific build logic (especially rdp and
session) more neatly separated off.

- Don't overlink example clients with code they're not using.
  This was done by merging the protocol dictionaries and setting some
  variables containing the code and client header file.
  Example clients now explicitly mention what extension protocols they
  want to link to.

- Split compositor example logic from client example logic.

- Minor formatting changes
2019-12-23 07:48:29 -05:00
Simon Ser
16e5e9541b Add -Wmissing-prototypes
This requires functions without a prototype definition to be static.
This allows to detect dead code, export less symbols and put shared
functions in headers.
2019-11-20 02:05:03 +00:00
Scott Moreau
fe72400bad build: Pass library as first argument to pkgconfig.generate()
Eliminates this warning when building wlroots as a subproject:

subprojects/wlroots/meson.build:216: DEPRECATION: Library wlroots
was passed to the libraries keyword argument of a previous call
to generate() method instead of first positional argument. Adding
wlroots to Requires field, but this is a deprecated behaviour
that will change in a future version of Meson. Please report the
issue if this warning cannot be avoided in your case.
2019-11-19 02:40:07 +01:00
Simon Ser
21b75e5d12 build: simplify by using disabler deps 2019-10-16 09:01:27 -04:00
Drew DeVault
b051bb68c2 Update version to 0.8.1 2019-10-07 15:28:20 -04:00
Drew DeVault
a20bb38763 Update version to 0.7.0 2019-08-27 12:32:24 +09:00
Drew DeVault
94f65e354d Add libinput-1.14 support
This libinput version adds a new tablet tool type.
2019-08-11 19:39:47 +09:00
Drew DeVault
58b2584863 Remove rootston 2019-08-09 08:34:59 +09:00
Simon Ser
ca45f4490c Remove all wayland-server.h includes
The documentation for wayland-server.h says:

> Use of this header file is discouraged. Prefer including
> wayland-server-core.h instead, which does not include the server protocol
> header and as such only defines the library PI, excluding the deprecated API
> below.

Replacing wayland-server.h with wayland-server-core.h allows us to drop the
WL_HIDE_DEPRECATED declaration.
2019-07-27 15:49:32 -04:00
Manuel Stoeckl
bb05617414 Use -fmacro-prefix-map to strip build path
This commit matches sway's 2dc4978d8af326c310057ca8fd22a4c7f5d09335.

To help ensure a reproducible build (when debug info is disabled),
the meson build script now uses the -fmacro-prefix-map command line
argument supported by GCC to strip the build-path dependent bytes
of each __FILE__ string used by wlr_log and related functions.

A rather ugly algorithm is used to compute the relative path between
the build and source folders, because meson has no specific function
for this.

When the compiler does not support -fmacro-prefix-map, fall back
to shifting the start of each __FILE__ string by the length of the
relative path to the source directory.
2019-07-17 21:00:09 -04:00
Drew DeVault
c0305f4f86 Update version to 0.6.0 2019-05-03 11:55:46 -04:00
Drew DeVault
fd0d7d0907 Add FreeRDP backend for remote desktop support 2019-04-08 08:09:07 -06:00
Ilia Bozhinov
4281c8c566 meson.build: require libinput >= 1.9.0
We use LIBINPUT_SWITCH_TABLET_MODE, which is introduced in 1.9.0
2019-03-22 17:14:04 +02:00
emersion
408eca7dfa meson: remove -Wredundant-decls
This is causing issues with wayland-scanner generated files. The client and
server headers are declaring the same structs. We include both in the Wayland
backend.

See https://gitlab.freedesktop.org/wayland/wayland/issues/82
2019-03-12 08:16:07 -06:00
Drew DeVault
c9137cba69 Update version to 0.5.0 2019-03-11 10:40:18 -04:00
emersion
5445d8aad0 meson: enable more compiler warnings 2019-03-01 09:20:23 +01:00
Drew DeVault
b46e097fe2 Update version to 0.4.1 2019-02-27 10:56:05 -05:00
emersion
0b33643175
Bump version to 0.4 2019-02-25 23:23:21 +01:00
emersion
8163f7e1e2
primary-selection-v1: copy from gtk-primary-selection 2019-02-13 19:28:25 +01:00
emersion
59d1b6790d
Bump project version to 0.3 2019-02-03 15:46:02 +01:00
emersion
77c25c1526 meson: remove b_lundef=false on FreeBSD 2019-01-29 21:12:31 +01:00
emersion
75371d2c88
Require libdrm >= 2.4.95 2019-01-29 19:33:38 +01:00
emersion
af3de7ea68
text-input-v3: use protocol from wayland-protocols 2019-01-24 12:08:26 +01:00
Simon Barth
92e39b586c build: bump versino to 0.2.0 2018-12-01 11:17:32 +01:00
Scott Anderson
70ae76304e backend/x11: Remove old input functions
This also allows us to remove xcb-xkb, since Xinput will now give us the
appropriate XKB modifiers with each event.
2018-11-13 10:55:03 +13:00
emersion
51bfdd620e
Use #if instead of #ifdef for wlroots config data
This prevents some annoying issues when e.g. not including wlr/config.h or
making a typo in the guard name.
2018-11-12 10:12:46 +01:00
sghctoma
753540335b Remove WLR_HAS_POSIX_FALLOCATE from build system 2018-11-09 18:48:10 +01:00
emersion
346ec21c4c
util: use shm_open for in-memory files
shm_open is a POSIX function creating an in-memory file. Using it simplifies
the code and removes the dependency on XDG_RUNTIME_DIR. The only downside is
that we need to generate a random name for the shm file.
2018-10-28 22:39:54 +01:00
emersion
be6210cf82
Update version to 0.1 2018-10-21 00:17:22 +02:00
Drew DeVault
66e8908e9a
Merge pull request #1203 from dcz-purism/input
Support input method and text input
2018-10-12 13:44:46 +02:00
Dorota Czaplejewicz
174e8a48aa build: bump wayland-scanner version
wayland-scanner >= 1.15.0 accepts foreign struct references, necessary in protocols like zwp-input-method-v2
2018-10-09 09:56:46 +00:00
n3rdopolis
cf7323a831
meson.build: require logind v237
Commit 7b52388424 uses a function added in logind v237
2018-10-07 18:26:35 -04:00
sghctoma
65359718c4 Use == to check system instead of a prefix match 2018-09-28 15:35:33 +02:00
sghctoma
1d017c1cc1 Set minimum Meson version to 0.48.0
This commit sets the required Meson version to >=0.48.0, and removes the
comment about building on FreeBSD requires an extra flag.
2018-09-28 14:40:15 +02:00
sghctoma
57ce896688 Add b_lundef=false Meson option on FreeBSD
The Meson option "b_lundef" need to be set to false on FreeBSD, because
the symbol "environ" is in crt1.o, which is not linked with shared
libraries. With Meson >=0.48.0 it is possible to set this option only
for FreeBSD. This patch changes meson.build to do that.
2018-09-26 18:13:28 +02:00
Drew DeVault
6025fcaa09 Update required meson version to 0.47.1 2018-08-24 09:20:25 -04:00
Scott Anderson
fd3fa760d3 Revert "Revert "Merge pull request #1194 from ascent12/meson_feature""
This reverts commit 9c886f20b9.
2018-08-24 19:35:02 +12:00
Drew DeVault
9c886f20b9 Revert "Merge pull request #1194 from ascent12/meson_feature"
This breaks wlroots when used as a meson subproject.

This reverts commit dea311992e, reversing
changes made to 6db9c4b746.
2018-08-23 21:00:58 -04:00
Scott Anderson
653ea512c2 Use current_source_dir instead of source_root
This is so that log messages are printed properly when wlroots is build
as a subproject.
2018-08-23 14:19:59 +12:00
Scott Anderson
51892e0d74 Install headers explicitly 2018-08-22 21:16:16 +12:00
Scott Anderson
a2bbf2c1f7 Make style more consistent 2018-08-22 21:16:16 +12:00
Scott Anderson
869dca1bce Remove unnecessary project arguments
Meson handles rpath properly, and we don't need to use -I ourselves by
using include_directories with '.'.
2018-08-22 21:16:16 +12:00
Scott Anderson
1358d80ab9 Add link dependency on symbols file
So the library is rebuilt properly when it's updated.
2018-08-22 21:16:16 +12:00
Scott Anderson
584a3f8b6e Update examples to use new option
We use a dictionary to remove some code duplication.
2018-08-22 21:15:34 +12:00
Scott Anderson
560e96aa57 Update rootston to use new option 2018-08-22 20:41:25 +12:00
Scott Anderson
784c20c82f Use new options for X11 backend and Xwayland 2018-08-22 20:27:37 +12:00
Scott Anderson
94ed2fc7bb Use feature options for libcap/logind
We now use a combo choice between systemd/elogind as they are mutually
exclusive anyway.
2018-08-22 19:53:00 +12:00
Scott Anderson
3fa3dca6d5 Add new feature options
Bump minimum meson version to 0.47 for the feature.
2018-08-22 19:41:53 +12:00
Guido Günther
570970db64 ctags: use -f instead of -o
The later does not exist on FreeBSD

See #725
2018-08-16 12:01:06 +02:00
Drew DeVault
5642c5cc8f
Merge pull request #1053 from emersion/xdg-decoration
Add xdg-decoration-unstable-v1 support
2018-08-02 09:33:10 -04:00
Drew DeVault
211ae764fd Initial pass on API stability guarantees
This introduces -DWLR_USE_UNSTABLE and adds information regarding the
stability status to all headers. I started with a conservative set of
headers to mark as stable:

- types/wlr_matrix.h
- util/edges.h
- util/log.h
- util/region.h
- xcursor.h
2018-07-29 19:20:34 -04:00
emersion
555721f714 Add xdg-decoration-unstable-v1 support 2018-07-28 22:48:07 +01:00
Drew DeVault
4b096fc114 Revert "Merge pull request #1153 from emersion/include-config"
This reverts commit ef0a6ea4d2, reversing
changes made to 8d03bc9178.
2018-07-21 09:44:20 -04:00
emersion
e02c486b60 Use posix_fallocate when available 2018-07-21 13:30:49 +01:00
emersion
41094a7df5 Always include config.h 2018-07-21 13:08:23 +01:00
Scott Anderson
86942d8a6a Check for libavutil/hwcontext_drm.h
This is an optional feature of libavutil, so this will cause a build
failure if it's not present (e.g. on Debian/Ubuntu).
2018-06-26 17:25:29 +12:00
emersion
f9ad63c5cb
rootston: use wl_display_destroy_clients 2018-05-29 22:50:26 +01:00
emersion
63fd2203fe
Add support for version 2 of the xdg-output protocol 2018-05-17 08:42:59 +01:00
florian.weigelt
d68a27fd79 Add option to disable examples build
Compiling the examples is useful for testing and development, but less
useful for actual users of wlroots.
This commit adds the option --enable-examples to set weather to include
the examples at compilation or not. The default value is True, so the
current behaviour remains unchanged.
2018-05-05 09:50:10 +02:00
florian.weigelt
34be87a3f6 Add option to disable rootston build
Compiling the rootston example compositor is useful for testing and
development, but less useful for actual users of wlroots, who might
prefer sway or other compositors.
This commit adds the option --enable-rootston to set weather to include
rootston at compilation or not. The default value is True, so the
current compilation behaviour remains unchanged.
2018-05-05 09:40:02 +02:00
Danilo Spinella
f83ad3f3ef Install include directory into includedir
Follow includedir parameter when installing include directory.
2018-04-03 16:56:32 +02:00
Danilo Spinella
046d909e7a Change meson option names to use hypen
Replace underscore with hypen in meson option names, following style
recommendations.

http://mesonbuild.com/Style-guide.html#naming-options
2018-04-02 23:35:03 +02:00
emersion
f033f717a2
backend/x11: make xcb-xkb optional, remove global state 2018-03-28 00:26:15 -04:00
emersion
8d1b5c7600
backend/x11: correctly update keyboard modifiers 2018-03-28 00:04:32 -04:00
Drew DeVault
b1c4f01bad
Merge pull request #713 from ManDay/master
Make X11 fully optional
2018-03-26 23:20:46 -04:00
Cedric Sodhi
51141dd11e Minor corrections 2018-03-23 10:28:36 +01:00
emersion
375e1bdf2b
meson: use current_source_dir instead of source_root
Use source_root breaks the build when used as a subproject.
2018-03-12 12:15:26 +01:00
Cedric Sodhi
ebdabc2030 Make X11 fully optional
Make X11 Backend (in addition to XWayland) optional and small bug fix on XWayland includes.
2018-03-09 15:17:15 +01:00
Dominique Martinet
7d1870c6f1 move xwm.h out of include/wlr
xwm.h was meant to be private, so move it to include/xwayland/xwm.h
We had an ifdef WLR_HAS_XCB_ICCCM in xwayland.h which was easy to move
to xwm, it is not safe to use the WLR_HAS_* in the public headers.

I checked a few of our current users and none rely on xwm.h being
public as expected (rootston, sway, hsroots)
2018-03-03 17:03:21 +01:00
Dominique Martinet
f8428d1063 xcb errors: optional dependency with improved messages
Now message can look like:
[xwayland/xwm.c:991] xcb error: op ChangeProperty (no minor), code Window (no extension), value 6291465

instead of this one when the lib is not available:
[xwayland/xwm.c:999] xcb error: op 18:0, code 3, sequence 103, value 6291465

The value in case of Window is the window id, so we can tell what
function applied on which window which is a good start.
The sequence ought to be able to tell us more precisely which
invocation it was, but we never log it when calling functions
so is useless in practice and no longer logged.
2018-03-03 11:46:04 +01:00
Guido Günther
6ba1128a72 Add symbols file
to only export symbols matching wlr_* from the wlroots library
2018-02-23 09:51:23 +01:00
Drew DeVault
1d9be89e2d
Revert "ELF Visibility" 2018-02-19 18:01:27 -05:00
Scott Anderson
86269052eb Explicitly export EFL symbols 2018-02-19 14:26:40 +13:00
Dominique Martinet
db9c2c11f6 meson: require wayland-protocols >=1.12 for xdg-shell stable 2018-02-14 19:02:45 +01:00
emersion
c2e1474010
Reformat all #include directives 2018-02-12 21:29:23 +01:00
Dominique Martinet
435aec0033 meson build: only link with deps when required by options 2018-02-10 11:30:47 +01:00
Dominique Martinet
161ae2fcb4 meson build: make enable options work as auto/true/false
This makes meson fail if -Denable_systemd=true was set but not found
The default is now auto which is the old behaviour
2018-02-10 10:46:27 +01:00
Dominique Martinet
19d7edb430 meson.build status: print actual build options in message
We were printing the option intent (true by default for all), but
some are disabled when a component is not found and this was not
reflected.
2018-02-10 10:44:42 +01:00
Guido Günther
c5aac77692 Fix some typos
Prefer initialize over initialise since used more often in the sources.
2018-01-30 16:10:07 +01:00
Guido Günther
e5dacbae5d meson: add ctags and etags targets
to create tag files. Idea taken from systemd.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2018-01-26 17:00:43 +01:00
Guido Günther
66ab1a98a0 meson: print enabled options
This makes it simpler to figure out what was enabled.
2018-01-24 18:24:13 +01:00
Dominique Martinet
85b9368c48 meson: fix include path in generated .pc
The generated .pc still contained -I${prefix}/wlroots, this is no longer
needed at all as the prefix is now 'wlr' and all includes are 'wlr/foo'
2018-01-04 23:41:44 +01:00
Drew DeVault
c23bd2ab7a Further fixes to header install dir 2017-12-28 14:38:52 -05:00
Drew DeVault
45a21ca232 Install headers to /usr/include/wlr
Rather than wlroots. I should have caught this.
2017-12-28 14:18:37 -05:00
Björn Esser
8c0fc4ffe5
meson: Fix exclude_headers 2017-12-27 18:29:27 +01:00
Björn Esser
71e42dae90
libwlroots: Add shared library versioning 2017-12-27 18:00:13 +01:00
Björn Esser
892f7a5db0
include: Install headers in an isolated include-dir 2017-12-27 17:13:58 +01:00
Björn Esser
ff13849624
config: Avoid clash with other config-headers 2017-12-27 17:13:58 +01:00
Björn Esser
57a09c8ca4
config: Put all defines into config.h 2017-12-26 18:51:27 +01:00
Tony Crisci
ea4b871e16 xwm: user custom event handler 2017-12-13 17:54:19 -05:00
Scott Anderson
87258c718c Add minimum meson version 2017-11-22 12:05:44 +13:00
Drew DeVault
c3e0fbdb8f Remove meson hack 2017-11-20 08:21:02 -05:00
emersion
ddd7b7711c
Load xwm cursor from theme 2017-11-02 15:52:02 +01:00
emersion
bdaf66a292
Set xwayland root cursor 2017-11-02 00:03:55 +01:00
Tony Crisci
1dbe314937 Merge branch 'master' into feature/data-device-selection 2017-10-24 07:57:36 -04:00
Dominique Martinet
a2f5e60dea meson: fail build if libinput < 1.7.0
We need libinput >= 1.7.0 for LIBINPUT_DEVICE_CAP_SWITCH
2017-10-24 02:05:41 +09:00
Dominique Martinet
98207fda81 meson: fail build if gbm/mesa < 17.1.0
We need mesa 17.1.0 for gbm_bo_get_offset and gbm_bo_get_stride_for_plane
We need mesa 17.0.0 for EGL_TEXTURE_EXTERNAL_WL
2017-10-24 02:05:41 +09:00
Tony Crisci
fb25adae36 xwayland: use xfixes extension 2017-10-15 14:50:21 -04:00
Greg V
a5fe9aa736 Add FreeBSD compatibility 2017-10-11 00:07:21 +03:00
Drew DeVault
d0d6413772 Merge pull request #220 from versusvoid/optional-xwayland
Make Xwayland optional
2017-10-09 08:09:03 -04:00
Scott Anderson
c0e5feea37 Add GL/EGL extension loader generator 2017-10-08 13:23:41 +13:00
Versus Void
9cab66f0f9 Make xwayland compile-time optional 2017-10-06 21:50:25 +00:00
emersion
ed9796ec68
xwayland: parse normal hints 2017-10-05 19:10:23 +02:00
Scott Anderson
7ad2a57feb Open X11 Window 2017-09-29 16:12:13 +13:00
Drew DeVault
f4387b437f Merge branch 'master' into rootston 2017-09-25 08:29:51 -04:00
Scott Anderson
7288d3b2c3 Install library, headers, and pkg-config 2017-09-24 14:51:23 +13:00
Drew DeVault
550748681d Establish rootston headers & main 2017-09-22 23:30:40 -04:00
dudemanguy
175f89f4ff Add elogind support
Resolves SirCmpwn/wlroots#146
2017-09-22 12:02:55 -05:00
Tony Crisci
368f74e4df Refactor meson build files
Use tabs for indentation and break up function calls over 80 col.
2017-08-30 14:30:47 -04:00
Dominique Martinet
fa0e1015c6 xwm: fix minimal init, this gets us some events on window creations 2017-08-23 22:03:49 +02:00
Dominique Martinet
b2bab1af5c xwayland: split xwm structure out, initial xwm.c 2017-08-23 22:03:49 +02:00
Dominique Martinet
49a823d4c6 Xwayland: first draft, just start server for now 2017-08-23 22:03:49 +02:00
Scott Anderson
75978636d9 Change meson to be more configurable
We move the warning options into the project's default_options, meaning
a user can configure them with `meson configure` and not need to edit
the file.

We also make it possible to disable logind/libcap even if they're
present.
2017-08-20 22:19:47 +12:00
Drew DeVault
d4b4bfb8bc Fix #64 2017-08-13 08:26:32 -04:00
Drew DeVault
e6a7817e45 Fix build on systems without systemd 2017-08-13 08:21:57 -04:00
Drew DeVault
62d8b252c0 Refactor meson and move xdg-shell into wlroots 2017-08-11 09:37:09 -04:00
nyorain
1bea754521 Implement wlr_region using pixman 2017-08-09 17:05:55 +02:00
Drew DeVault
7486263f7e Add xcursor sublibrary 2017-08-07 21:13:04 -04:00
Scott Anderson
3373ec5fc8 Update build files 2017-08-06 13:30:18 +12:00
nyorain
fdab81e1c9 Use meson build system 2017-08-05 22:34:24 +02:00
Drew DeVault
b08aa9fd35 Revert "Merge pull request #27 from ascent12/meson"
This reverts commit 85805da021, reversing
changes made to 8189c64d7f.
2017-07-11 22:16:56 -04:00
Scott Anderson
a2ba226ba3 Use subdir 2017-07-11 09:56:54 +12:00
Scott Anderson
924bf0f669 Changed build system to meson 2017-07-11 00:28:56 +12:00