mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2026-02-25 01:41:11 -05:00
This commit addresses several compatibility issues that prevented Wayland from building and passing its test suite on macOS Core and Compatibility changes: - Emulate Linux behavior by explicitly setting O_NONBLOCK on connections (fixes blocking sendmsg issues on macOS). - Fix compilation on platforms missing SOCK_CLOEXEC and MSG_CMSG_CLOEXEC. - Implement wl_os_socket_peercred() using LOCAL_PEERPID for macOS. - Ensure availability of struct itimerspec (required for POSIX Timers API). Test suite fixes: - Add socketpair_cloexec() wrapper to handle platforms without atomic SOCK_CLOEXEC support. - Add implementation of memrchr() for platforms that do not provide it. - Implement is_debugger_attached() for macOS to handle test timeouts. - Fix tests to handle Mach-O binary format (instead of ELF). - Update egl-symbols-check to support macOS *.dylib Mach-O libraries. Build system: - Add meson option 'xml_catalog' to allow specifying custom catalog paths. Signed-off-by: Martin Lopatář <lopin@dataplex.cz>
49 lines
1.4 KiB
Meson
49 lines
1.4 KiB
Meson
if not get_option('libraries')
|
|
error('-Ddocumentation=true requires -Dlibraries=true')
|
|
endif
|
|
|
|
dot = find_program('dot')
|
|
doxygen = find_program('doxygen')
|
|
xsltproc = find_program('xsltproc')
|
|
xmlto = find_program('xmlto')
|
|
|
|
cmd = run_command(doxygen, '--version', check: true)
|
|
message('doxygen: ' + cmd.stdout().strip())
|
|
vers = cmd.stdout().strip()
|
|
if vers.version_compare('< 1.6.0')
|
|
error('Doxygen 1.6 or later is required for building documentation, found @0@.'.format(vers))
|
|
endif
|
|
|
|
cmd = run_command(dot, '-V', check: true)
|
|
message('dot: ' + cmd.stderr().strip())
|
|
vers = cmd.stderr().split('version')[1].strip().split(' ')[0]
|
|
if vers.version_compare('< 2.26.0')
|
|
error('Dot (Graphviz) 2.26 or later is required for building documentation, found @0@.'.format(vers))
|
|
endif
|
|
|
|
run_env = environment()
|
|
if catalog_path != ''
|
|
if not catalog_path.startswith('/')
|
|
catalog_path = meson.project_source_root() / catalog_path
|
|
endif
|
|
run_env.set('XML_CATALOG_FILES', catalog_path)
|
|
endif
|
|
|
|
manpage_xsl = 'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl'
|
|
cmd = run_command(xsltproc, '--nonet', manpage_xsl, env: run_env, check: false)
|
|
if cmd.returncode() != 0
|
|
error('The style sheet for man pages providing "@0@" was not found.'.format(manpage_xsl))
|
|
endif
|
|
|
|
publican_install_prefix = join_paths(
|
|
get_option('prefix'),
|
|
get_option('datadir'),
|
|
'doc',
|
|
meson.project_name(),
|
|
'Wayland', 'en-US'
|
|
)
|
|
|
|
publican_html_dir = 'html'
|
|
|
|
subdir('doxygen')
|
|
subdir('publican')
|