Commit Graph

43 Commits

Author SHA1 Message Date
Simon Ser
cdd890a6f8 build: re-open main branch for regular development 2023-04-04 13:38:18 +02:00
Simon Ser
b2649cb3ee build: bump to version 1.22.0 for the official release 2023-04-04 09:58:31 +02:00
Simon Ser
cd036bb7b8 build: bump to version 1.21.93 for the RC1 release 2023-03-28 20:03:14 +02:00
Simon Ser
002e1f1d3a build: bump version to 1.21.92 for the beta release 2023-03-16 01:08:44 +01:00
Simon Ser
344d31f871 build: bump version to 1.21.91 for the alpha release 2023-02-28 17:15:31 +01:00
Simon Ser
4f6c6e7c0f build: re-open main branch for regular development 2022-07-01 00:11:50 +02:00
Simon Ser
8135e856eb build: bump to version 1.21.0 for the official release 2022-06-30 23:59:11 +02:00
Simon Ser
8e322a5a99 build: bump to version 1.20.93 for the RC1 release 2022-06-23 21:59:18 +02:00
Simon Ser
07c8f41576 build: bump to version 1.20.92 for the beta release
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-06-09 20:52:32 +02:00
Simon Ser
73d4d2410e build: bump to version 1.20.91 for the alpha release
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-05-26 20:15:35 +02:00
Simon Ser
9402afc353 build: sanity check options
Fail when tests/documentation is enabled without libraries. Fail
when neither scanner nor libraries is enabled, because we don't
build anything in that case.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-05-10 14:02:51 +00:00
Simon Ser
c78807520f meson: build requirement to 0.56.0
meson.project_build_root() is only available with 0.56.0.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-02-05 15:39:21 +01:00
Simon Ser
40c275f642 build: set c_std=c99
Set explicitly the C standard to use to make sure we don't use
features not available on our target platforms.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-01-10 15:08:46 +01:00
Simon Ser
0d314c4a04 build: don't rely on implicit GNU extensions
Currently libwayland assumes GNU extensions will be available, but
doesn't define the C standard to use. Instead, let's unconditionally
enable POSIX extensions, and enable GNU extensions on a case-by-case
basis as needed.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-01-10 15:08:46 +01:00
Simon Ser
31b17e3d85 build: re-open main branch for regular development 2022-01-10 11:13:16 +01:00
Simon Ser
75c1a93e20 build: bump to version 1.20.0 for the official release 2021-12-09 17:20:36 +01:00
Simon Ser
28c2d8321b build: bump to version 1.19.93 for the RC1 release 2021-12-02 20:51:39 +01:00
Simon Ser
dcd8a62b18 build: bump to version 1.19.92 for the beta release 2021-11-18 16:30:09 +01:00
Simon Ser
5420619f91 build: bump to version 1.19.91 for the alpha release 2021-11-04 20:39:22 +01:00
Simon McVittie
0cdd2a5c54 build: Include the Wayland minor version in libraries' ABI versions
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>
2021-10-28 12:46:06 +00:00
Alex Richardson
382f368a27 Detect FreeBSD versions with broken MSG_CMSG_CLOEXEC
If we are compiling against a version of FreeBSD where MSG_CMSG_CLOEXEC
does not work, use the fallback directly. This was only fixed recently
(in https://cgit.freebsd.org/src/commit/?id=6ceacebdf52211).

Signed-off-by: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
2021-09-10 11:35:54 +00:00
Alex Richardson
bb92828807 test-runner: Implement is_debugger_attached() for FreeBSD
FreeBSD provides a PROC_TRACE_STATUS procctl(2) to detect this directly.

Signed-off-by: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
2021-09-10 11:35:54 +00:00
Alex Richardson
5a981ee823 shm: Add mmap+memmove fallback if mremap() does not exist
Some operating systems (e.g. FreeBSD) do not implement mremap.
In that case we can grow the mapping by trying to map adjacent memory.
If that fails we can fall back to creating a new larger mapping and
moving the old memory contents there.

Co-authored-by: Koop Mast <kwm@rainbow-runner.nl>
Signed-off-by: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
2021-09-10 11:35:54 +00:00
Alex Richardson
54b237a612 Support reading ucred from the socket on FreeBSD
On FreeBSD we have to use getsockopt(fd, SOL_LOCAL, LOCAL_PEERCRED)
instead. This change is based on a downstream patch in FreeBSD ports.

Co-authored-by: Greg V <greg@unrelenting.technology>
Co-authored-by: Koop Mast <kwm@rainbow-runner.nl>
Signed-off-by: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
2021-09-10 11:35:54 +00:00
Alex Richardson
c65f852fc8 Use epoll-shim to emulate epoll(7) on FreeBSD
FreeBSD does not provide epoll(7) and instead requires an external library,
epoll-shim, that implements epoll() using kqueue(2)

Co-authored-by: Jan Beich <jbeich@FreeBSD.org>
Signed-off-by: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
2021-09-10 11:35:54 +00:00
James Hilliard
88f1605a82 build: add option to disable tests
When building for a product, tests are not needed.

Besides, one test requires a C++ compiler, which is not always
available.

So, add an option to configure to disable building tests altogether.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
2021-04-16 03:45:06 -06:00
James Hilliard
4c21053123 meson: only require cpp for tests
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
2021-04-16 03:04:56 -06:00
Michael Weiss
e4659ffbf5
meson: Only require expat when building wayland-scanner
This code is only required for building wayland-scanner so it should be
scoped accordingly. libxml-2.0 will only be required if both "scanner"
and "dtd_validation" are set to true.

Signed-off-by: Michael Weiss <dev.primeos@gmail.com>
2021-04-02 20:55:15 +02:00
Simon Ser
f1cc5d0c37 build: re-open master for regular development 2021-01-27 18:45:57 +01:00
Simon Ser
e60398b175 build: bump to version 1.19.0 for the official release 2021-01-27 17:48:01 +01:00
Simon Ser
0344e08ce0 build: bump to 1.18.93 for the RC1 release 2021-01-20 22:35:34 +01:00
Simon Ser
69b8eaf385
build: bump to version 1.18.92 for the beta release 2021-01-06 20:18:58 +01:00
Loïc Yhuel
74182eb605 meson: link with -lrt if needed for clock_gettime
This is already done in autotools, and fixes the build with glibc < 2.17.

Signed-off-by: Loïc Yhuel <loic.yhuel@softathome.com>
2020-12-23 15:37:58 +01:00
Simon Ser
ea09c2fde7
build: bump to version 1.18.91 for the alpha release 2020-12-21 11:16:05 +01:00
Matt Turner
9f9e971f56 meson: Raise requirement to meson >= 0.52.1
Many new and valuable features were added between Meson 0.49 and 0.52.1.
We would like to use some of them.

Signed-off-by: Matt Turner <mattst88@gmail.com>
2020-03-18 13:36:44 -07:00
Matt Turner
618663c791 meson: Add option to control building wayland-scanner
Wayland requires a binary, wayland-scanner, to be run during the build
process. For any configuration other than native builds (including
cross compiling and even 32-bit x86 builds on an x86-64 build machine)
Wayland's build process builds and uses its own wayland-scanner.

For any builds using a cross file, wayland-scanner is built for the host
machine and therefore cannot be executed during the build of the Wayland
libraries. Instead builds using a cross file must execute the build
machine's wayland-scanner (typically /usr/bin/wayland-scanner).

As such, to build Wayland's libraries for a non-native ABI a package
manager must build and install /usr/bin/wayland-scanner first. But then
the build for the native ABI then rebuilds wayland-scanner itself and
doesn't use the system's, and worse, wants to install its own, which
conflicts with the /usr/bin/wayland-scanner already installed!

So, add the -Dscanner=... option to control whether to install
wayland-scanner.

Signed-off-by: Matt Turner <mattst88@gmail.com>
2020-03-13 10:25:24 -07:00
Simon Ser
c57157e390
build: re-open master for regular development 2020-02-12 00:55:32 +01:00
Simon Ser
eb1339edd3
build: bump to version 1.18.0 for the official release 2020-02-12 00:45:15 +01:00
Simon Ser
57f17de0ec
build: bump to version 1.17.93 for the RC1 release 2020-02-05 00:32:03 +01:00
Simon Ser
367d2985f3
build: bump to version 1.17.92 for the beta release 2020-01-28 22:02:25 +01:00
Emmanuel Gil Peyrot
501cad1188 Remove unused HAVE_CONFIG_H define in meson
Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
2020-01-22 13:41:07 +01:00
Simon Ser
75e644c23d
build: bump to version 1.17.91 for the alpha release 2020-01-21 15:18:48 +01:00
Emmanuele Bassi
60acba6e0f
Add Meson build
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>
2020-01-10 23:44:38 +01:00