mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2025-12-24 23:00:05 +01:00
Querying a pkg-config variable using the --variable option produces the value of the given variable as stored in the pkg-config file and should not be used to add directories to the include search path. The reason for this is that it breaks cross-compilation, because header files are installed relative to the host sysroot. pkg-config supports a PKG_CONFIG_SYSROOT_DIR environment variable that points to this sysroot and will prepend that to the path of directories in -I or -L options in pkg-config's Cflags, Libs or Libs.private keywords. However, because no context can be inferred from variable names, as opposed to the keywords with fixed meaning, the sysroot path will not be prepended to them. The build system is responsible for doing so if necessary since it is aware of the context in which the variable is used. Adding the include directory returned by pkg-config to the include path leaks build system information into the cross-build and break with very confusing errors such as this: In file included from include/misc.h:82:0, from dix/atom.c:55: /usr/include/pthread.h:682:6: warning: '__regparm__' attribute directive ignored [-Wattributes] __cleanup_fct_attribute; ^~~~~~~~~~~~~~~~~~~~~~~ or this: In file included from include/misc.h:139:0, from dix/atom.c:55: /usr/include/stdlib.h:133:8: error: '_Float128' is not supported on this target extern _Float128 strtof128 (const char *__restrict __nptr, ^~~~~~~~~ Fix this by replacing the include directory with the appropriate xproto dependency required to add the correct include directory to the compile command for subdirectories that are missing the dependency. As detailed above, this gives pkg-config the opportunity to prepend the sysroot for all paths in -I compiler options. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
644 lines
18 KiB
Meson
644 lines
18 KiB
Meson
project('xserver', 'c',
|
|
default_options: [
|
|
'buildtype=debugoptimized',
|
|
'c_std=gnu99',
|
|
],
|
|
version: '1.19.99.902',
|
|
meson_version: '>= 0.42.0',
|
|
)
|
|
add_project_arguments('-DHAVE_DIX_CONFIG_H', language: 'c')
|
|
cc = meson.get_compiler('c')
|
|
|
|
add_global_arguments('-fno-strict-aliasing', language : 'c')
|
|
add_global_arguments('-fvisibility=hidden', language : 'c')
|
|
|
|
add_global_link_arguments('-fvisibility=hidden', language : 'c')
|
|
|
|
if cc.get_id() == 'gcc' or cc.get_id() == 'clang'
|
|
test_wflags = [
|
|
'-Wall',
|
|
'-Wpointer-arith',
|
|
'-Wmissing-declarations',
|
|
'-Wformat=2',
|
|
'-Wstrict-prototypes',
|
|
'-Wmissing-prototypes',
|
|
'-Wnested-externs',
|
|
'-Wbad-function-cast',
|
|
'-Wold-style-definition',
|
|
'-Wunused',
|
|
'-Wuninitialized',
|
|
'-Wshadow',
|
|
'-Wmissing-noreturn',
|
|
'-Wmissing-format-attribute',
|
|
'-Wredundant-decls',
|
|
'-Werror=implicit',
|
|
'-Werror=nonnull',
|
|
'-Werror=init-self',
|
|
'-Werror=main',
|
|
'-Werror=missing-braces',
|
|
'-Werror=sequence-point',
|
|
'-Werror=return-type',
|
|
'-Werror=trigraphs',
|
|
'-Werror=array-bounds',
|
|
'-Werror=write-strings',
|
|
'-Werror=address',
|
|
'-Werror=int-to-pointer-cast',
|
|
'-Werror=pointer-to-int-cast',
|
|
]
|
|
else
|
|
test_wflags = []
|
|
endif
|
|
|
|
common_wflags = []
|
|
foreach wflag: test_wflags
|
|
if cc.has_argument(wflag)
|
|
common_wflags += [ wflag ]
|
|
endif
|
|
endforeach
|
|
|
|
add_global_arguments(common_wflags, language : 'c')
|
|
|
|
xproto_dep = dependency('xproto', version: '>= 7.0.31')
|
|
randrproto_dep = dependency('randrproto', version: '>= 1.6.0')
|
|
renderproto_dep = dependency('renderproto', version: '>= 0.11')
|
|
xextproto_dep = dependency('xextproto', version: '>= 7.2.99.901')
|
|
inputproto_dep = dependency('inputproto', version: '>= 2.3')
|
|
kbproto_dep = dependency('kbproto', version: '>= 1.0.3')
|
|
fontsproto_dep = dependency('fontsproto', version: '>= 2.1.3')
|
|
fixesproto_dep = dependency('fixesproto', version: '>= 5.0')
|
|
damageproto_dep = dependency('damageproto', version: '>= 1.1')
|
|
xcmiscproto_dep = dependency('xcmiscproto', version: '>= 1.2.0')
|
|
bigreqsproto_dep = dependency('bigreqsproto', version: '>= 1.1.0')
|
|
xtrans_dep = dependency('xtrans', version: '>= 1.3.5')
|
|
|
|
videoproto_dep = dependency('videoproto')
|
|
compositeproto_dep = dependency('compositeproto', version: '>= 0.4')
|
|
recordproto_dep = dependency('recordproto', version: '>= 1.13.99.1')
|
|
scrnsaverproto_dep = dependency('scrnsaverproto', version: '>= 1.1')
|
|
resourceproto_dep = dependency('resourceproto', version: '>= 1.2.0')
|
|
xf86driproto_dep = dependency('xf86driproto', version: '>= 2.1.0', required: get_option('dri1') == 'true')
|
|
dri2proto_dep = dependency('dri2proto', version: '>= 2.8', required: get_option('dri2') == 'true')
|
|
dri3proto_dep = dependency('dri3proto', version: '>= 1.2', required: get_option('dri3') == 'true')
|
|
xineramaproto_dep = dependency('xineramaproto')
|
|
xf86bigfontproto_dep = dependency('xf86bigfontproto', version: '>= 1.2.0')
|
|
xf86vidmodeproto_dep = dependency('xf86vidmodeproto', version: '>= 2.2.99.1', required: false)
|
|
windowswmproto_dep = dependency('windowswmproto', required: false)
|
|
applewmproto_dep = dependency('applewmproto', version: '>= 1.4', required: false)
|
|
xshmfence_dep = dependency('xshmfence', version: '>= 1.1', required: false)
|
|
|
|
pixman_dep = dependency('pixman-1')
|
|
libbsd_dep = dependency('libbsd', required: false)
|
|
xkbcomp_dep = dependency('xkbcomp', required: false)
|
|
xkbfile_dep = dependency('xkbfile')
|
|
xfont2_dep = dependency('xfont2', version: '>= 2.0')
|
|
nettle_dep = dependency('nettle')
|
|
|
|
dbus_required = get_option('systemd_logind') == 'true'
|
|
dbus_dep = dependency('dbus-1', version: '>= 1.0', required: dbus_required)
|
|
|
|
# Resolve default values of some options
|
|
xkb_dir = get_option('xkb_dir')
|
|
if xkb_dir == ''
|
|
xkb_dir = xkbcomp_dep.get_pkgconfig_variable('xkbconfigdir')
|
|
if xkb_dir == ''
|
|
xkb_dir = join_paths(get_option('prefix'), 'share/X11/xkb')
|
|
endif
|
|
endif
|
|
|
|
xkb_output_dir = get_option('xkb_output_dir')
|
|
if xkb_output_dir == ''
|
|
xkb_output_dir = join_paths(xkb_dir, 'compiled')
|
|
endif
|
|
|
|
xkb_bin_dir = get_option('xkb_bin_dir')
|
|
if xkb_bin_dir == ''
|
|
xkb_bin_dir = xkbcomp_dep.get_pkgconfig_variable('bindir')
|
|
if xkb_bin_dir == ''
|
|
xkb_bin_dir = join_paths(get_option('prefix'), get_option('bindir'))
|
|
endif
|
|
endif
|
|
|
|
dfp = get_option('default_font_path')
|
|
if dfp == ''
|
|
fontutil_dep = dependency('fontutil')
|
|
fontrootdir = fontutil_dep.get_pkgconfig_variable('fontrootdir')
|
|
default_font_path = ','.join([
|
|
join_paths(fontrootdir, 'misc'),
|
|
join_paths(fontrootdir, 'TTF'),
|
|
join_paths(fontrootdir, 'OTF'),
|
|
join_paths(fontrootdir, 'Type1'),
|
|
join_paths(fontrootdir, '100dpi'),
|
|
join_paths(fontrootdir, '75dpi'),
|
|
])
|
|
else
|
|
default_font_path = dfp
|
|
endif
|
|
|
|
hal_option = get_option('hal')
|
|
glamor_option = get_option('glamor')
|
|
|
|
build_udev = get_option('udev')
|
|
if host_machine.system() == 'windows'
|
|
build_udev = false
|
|
hal_option = 'false'
|
|
endif
|
|
|
|
if get_option('systemd_logind') == 'auto'
|
|
build_systemd_logind = build_udev and dbus_dep.found()
|
|
else
|
|
build_systemd_logind = get_option('systemd_logind') == 'true'
|
|
endif
|
|
|
|
build_xorg = false
|
|
if (host_machine.system() != 'darwin' and
|
|
host_machine.system() != 'windows')
|
|
if get_option('xorg') == 'auto'
|
|
build_xorg = (host_machine.system() != 'darwin' and
|
|
host_machine.system() != 'windows')
|
|
else
|
|
build_xorg = get_option('xorg') == 'true'
|
|
endif
|
|
endif
|
|
xorgsdkdir = join_paths(get_option('prefix'), get_option('includedir'), 'xorg')
|
|
|
|
build_xwayland = false
|
|
if (host_machine.system() != 'darwin' and
|
|
host_machine.system() != 'windows')
|
|
if get_option('xwayland') != 'false'
|
|
xwayland_required = get_option('xwayland') == 'true'
|
|
|
|
xwayland_dep = [
|
|
dependency('wayland-client', version: '>= 1.3.0', required: xwayland_required),
|
|
dependency('wayland-protocols', version: '>= 1.10', required: xwayland_required),
|
|
dependency('libdrm', version: '>= 2.4.89', required: xwayland_required),
|
|
dependency('epoxy', required: xwayland_required),
|
|
]
|
|
|
|
build_xwayland = true
|
|
# check for all the deps being found, to handle 'auto' mode.
|
|
foreach d: xwayland_dep
|
|
if not d.found()
|
|
build_xwayland = false
|
|
endif
|
|
endforeach
|
|
endif
|
|
endif
|
|
|
|
build_xnest = false
|
|
if (host_machine.system() != 'darwin' and
|
|
host_machine.system() != 'windows')
|
|
if get_option('xnest') != 'false'
|
|
xnest_required = get_option('xnest') == 'true'
|
|
|
|
xnest_dep = [
|
|
dependency('xext', version: '>= 1.0.99.4', required: xnest_required),
|
|
dependency('x11', required: xnest_required),
|
|
dependency('xau', required: xnest_required),
|
|
]
|
|
|
|
build_xnest = true
|
|
# check for all the deps being found, to handle 'auto' mode.
|
|
foreach d: xnest_dep
|
|
if not d.found()
|
|
build_xnest = false
|
|
endif
|
|
endforeach
|
|
endif
|
|
endif
|
|
|
|
build_xwin = false
|
|
if get_option('xwin') == 'auto'
|
|
if (host_machine.system() == 'cygwin' or
|
|
host_machine.system() == 'windows')
|
|
build_xwin = true
|
|
endif
|
|
else
|
|
build_xwin = get_option('xwin') == 'true'
|
|
endif
|
|
|
|
# XXX: Finish these.
|
|
build_xquartz = false
|
|
|
|
if get_option('ipv6') == 'auto'
|
|
build_ipv6 = cc.has_function('getaddrinfo')
|
|
else
|
|
build_ipv6 = get_option('ipv6') == 'true'
|
|
endif
|
|
|
|
int10 = get_option('int10')
|
|
if int10 == 'auto'
|
|
int10 = 'x86emu'
|
|
if host_machine.cpu() == 'powerpc' and host_machine.system() == 'freebsd'
|
|
int10 = 'stub'
|
|
endif
|
|
if host_machine.cpu() == 'arm'
|
|
int10 = 'stub'
|
|
endif
|
|
endif
|
|
|
|
hal_dep = []
|
|
if hal_option == 'auto'
|
|
if not build_udev
|
|
hal_dep = dependency('hal', required: false)
|
|
build_hal = hal_dep.found()
|
|
else
|
|
build_hal = false
|
|
endif
|
|
else
|
|
build_hal = hal_option == 'true'
|
|
if build_hal
|
|
hal_dep = dependency('hal')
|
|
endif
|
|
endif
|
|
|
|
if build_udev and build_hal
|
|
error('Hotplugging through both libudev and hal not allowed')
|
|
endif
|
|
|
|
build_dbus = build_hal or build_systemd_logind
|
|
|
|
udev_dep = dependency('', required:false)
|
|
if build_udev
|
|
udev_dep = dependency('libudev', version: '>= 143')
|
|
endif
|
|
|
|
log_dir = get_option('log_dir')
|
|
if log_dir == ''
|
|
log_dir = join_paths(get_option('prefix'), get_option('localstatedir'), 'log')
|
|
endif
|
|
|
|
module_dir = get_option('module_dir')
|
|
if module_dir == ''
|
|
module_dir = join_paths(get_option('libdir'), 'xorg/modules')
|
|
endif
|
|
|
|
if glamor_option == 'auto'
|
|
build_glamor = build_xorg or build_xwayland
|
|
else
|
|
build_glamor = get_option('glamor') == 'true'
|
|
endif
|
|
|
|
gbm_dep = dependency('', required: false)
|
|
epoxy_dep = dependency('', required: false)
|
|
if build_glamor
|
|
gbm_dep = dependency('gbm', version: '>= 10.2', required: false)
|
|
epoxy_dep = dependency('epoxy', required: false)
|
|
endif
|
|
|
|
# XXX: Add more sha1 options, because Linux is about choice
|
|
sha1_dep = nettle_dep
|
|
|
|
xdmcp_dep = dependency('', required : false)
|
|
if get_option('xdmcp')
|
|
xdmcp_dep = dependency('xdmcp')
|
|
endif
|
|
|
|
has_xdm_auth = get_option('xdm-auth-1')
|
|
|
|
if not xdmcp_dep.found()
|
|
has_xdm_auth = false
|
|
endif
|
|
|
|
build_glx = get_option('glx')
|
|
|
|
libdrm_dep = dependency('libdrm', version: '>= 2.4.89', required: false)
|
|
|
|
if get_option('dri1') == 'auto'
|
|
build_dri1 = xf86driproto_dep.found() and libdrm_dep.found()
|
|
else
|
|
build_dri1 = get_option('dri1') == 'true'
|
|
endif
|
|
|
|
if get_option('dri2') == 'auto'
|
|
build_dri2 = dri2proto_dep.found() and libdrm_dep.found()
|
|
else
|
|
build_dri2 = get_option('dri2') == 'true'
|
|
endif
|
|
|
|
if get_option('dri3') == 'auto'
|
|
build_dri3 = dri3proto_dep.found() and xshmfence_dep.found() and libdrm_dep.found()
|
|
else
|
|
build_dri3 = get_option('dri3') == 'true'
|
|
if build_dri3
|
|
if not xshmfence_dep.found()
|
|
error('DRI3 requested, but xshmfence not found')
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
libdrm_required = build_dri1 or build_dri2 or build_dri3
|
|
if not libdrm_dep.found() and libdrm_required
|
|
error('DRI requested, but LIBDRM not found')
|
|
endif
|
|
|
|
build_modesetting = libdrm_dep.found()
|
|
|
|
build_vbe = false
|
|
if get_option('vbe') == 'auto'
|
|
if (host_machine.system() != 'darwin' and
|
|
host_machine.system() != 'windows' and
|
|
host_machine.system() != 'cygwin')
|
|
build_vbe = true
|
|
endif
|
|
else
|
|
build_vbe = get_option('vbe') == 'true'
|
|
endif
|
|
|
|
build_vgahw = false
|
|
if get_option('vgahw') == 'auto'
|
|
if (host_machine.system() != 'darwin' and
|
|
host_machine.system() != 'windows' and
|
|
host_machine.system() != 'cygwin')
|
|
build_vgahw = true
|
|
endif
|
|
else
|
|
build_vgahw = get_option('vgahw') == 'true'
|
|
endif
|
|
|
|
build_dpms = get_option('dpms')
|
|
if build_xquartz
|
|
build_dpms = false
|
|
endif
|
|
|
|
build_xf86bigfont = get_option('xf86bigfont')
|
|
build_screensaver = get_option('screensaver')
|
|
build_res = get_option('xres')
|
|
build_xace = get_option('xace')
|
|
build_xinerama = get_option('xinerama')
|
|
|
|
build_xsecurity = get_option('xcsecurity')
|
|
if build_xsecurity
|
|
if not build_xace
|
|
error('cannot build Security extension without X-ACE')
|
|
endif
|
|
endif
|
|
|
|
build_xv = get_option('xv')
|
|
build_xvmc = get_option('xvmc')
|
|
if not build_xv
|
|
build_xvmc = false
|
|
endif
|
|
|
|
build_dga = false
|
|
if get_option('dga') == 'auto'
|
|
xf86dgaproto_dep = dependency('xf86dgaproto', version: '>= 2.0.99.1', required: false)
|
|
if xf86dgaproto_dep.found()
|
|
build_dga = true
|
|
endif
|
|
elif get_option('dga') == 'true'
|
|
xf86dgaproto_dep = dependency('xf86dgaproto', version: '>= 2.0.99.1', required: true)
|
|
build_dga = true
|
|
endif
|
|
|
|
build_apm = false
|
|
if (get_option('linux_apm') == true and
|
|
host_machine.system() == 'linux')
|
|
if cc.has_header('linux/apm_bios.h')
|
|
build_apm = true
|
|
endif
|
|
endif
|
|
|
|
build_acpi = false
|
|
if (get_option('linux_acpi') == true and
|
|
host_machine.system() == 'linux')
|
|
if (host_machine.cpu() == 'x86' or
|
|
host_machine.cpu() == 'x86_64' or
|
|
host_machine.cpu() == 'ia64')
|
|
build_acpi = true
|
|
endif
|
|
endif
|
|
|
|
build_mitshm = false
|
|
if get_option('mitshm') == 'auto'
|
|
build_mitshm = cc.has_header('sys/shm.h')
|
|
elif get_option('mitshm') == 'true'
|
|
build_mitshm = true
|
|
endif
|
|
|
|
# XXX: Allow configuration of these.
|
|
build_xselinux = false
|
|
build_xf86vidmode = xf86vidmodeproto_dep.found()
|
|
|
|
m_dep = cc.find_library('m', required : false)
|
|
dl_dep = cc.find_library('dl', required : false)
|
|
|
|
common_dep = [
|
|
xproto_dep,
|
|
randrproto_dep,
|
|
renderproto_dep,
|
|
xextproto_dep,
|
|
inputproto_dep,
|
|
kbproto_dep,
|
|
fontsproto_dep,
|
|
fixesproto_dep,
|
|
damageproto_dep,
|
|
xcmiscproto_dep,
|
|
bigreqsproto_dep,
|
|
xtrans_dep,
|
|
|
|
videoproto_dep,
|
|
compositeproto_dep,
|
|
recordproto_dep,
|
|
scrnsaverproto_dep,
|
|
resourceproto_dep,
|
|
xf86driproto_dep,
|
|
dri2proto_dep,
|
|
dri3proto_dep,
|
|
xineramaproto_dep,
|
|
xf86bigfontproto_dep,
|
|
xf86dgaproto_dep,
|
|
xf86vidmodeproto_dep,
|
|
windowswmproto_dep,
|
|
applewmproto_dep,
|
|
|
|
pixman_dep,
|
|
libbsd_dep,
|
|
xkbfile_dep,
|
|
xfont2_dep,
|
|
xdmcp_dep,
|
|
]
|
|
|
|
inc = include_directories(
|
|
'Xext',
|
|
'Xi',
|
|
'composite',
|
|
'damageext',
|
|
'exa',
|
|
'fb',
|
|
'glamor',
|
|
'mi',
|
|
'miext/damage',
|
|
'miext/shadow',
|
|
'miext/sync',
|
|
'dbe',
|
|
'dri3',
|
|
'include',
|
|
'present',
|
|
'randr',
|
|
'render',
|
|
'xfixes',
|
|
)
|
|
|
|
glx_inc = include_directories('glx')
|
|
|
|
top_srcdir_inc = include_directories('.')
|
|
|
|
serverconfigdir = join_paths(get_option('libdir'), 'xorg')
|
|
|
|
manpage_config = configuration_data()
|
|
manpage_config.set('vendorversion', 'PACKAGE_STRING XORG_MAN_PAGE')
|
|
manpage_config.set('xorgversion', 'PACKAGE_STRING XORG_MAN_PAGE')
|
|
manpage_config.set('xservername', 'Xorg')
|
|
manpage_config.set('xconfigfile', 'xorg.conf')
|
|
manpage_config.set('projectroot', get_option('prefix'))
|
|
manpage_config.set('apploaddir', '$(appdefaultdir)')
|
|
manpage_config.set('appmansuffix', '1')
|
|
manpage_config.set('drivermansuffix', '4')
|
|
manpage_config.set('adminmansuffix', '8')
|
|
manpage_config.set('libmansuffix', '3')
|
|
manpage_config.set('miscmansuffix', '7')
|
|
manpage_config.set('filemansuffix', '5')
|
|
manpage_config.set('logdir', log_dir)
|
|
manpage_config.set('datadir', get_option('datadir'))
|
|
manpage_config.set('mandir', get_option('mandir'))
|
|
manpage_config.set('sysconfdir', get_option('sysconfdir'))
|
|
manpage_config.set('xconfigdir', 'xorg.conf.d')
|
|
manpage_config.set('xkbdir', xkb_dir)
|
|
manpage_config.set('XKB_DFLT_RULES', get_option('xkb_default_rules'))
|
|
manpage_config.set('XKB_DFLT_MODEL', get_option('xkb_default_model'))
|
|
manpage_config.set('XKB_DFLT_LAYOUT', get_option('xkb_default_layout'))
|
|
manpage_config.set('XKB_DFLT_VARIANT', get_option('xkb_default_variant'))
|
|
manpage_config.set('XKB_DFLT_OPTIONS', get_option('xkb_default_options'))
|
|
manpage_config.set('bundle_id_prefix', '...')
|
|
manpage_config.set('modulepath', join_paths(get_option('prefix'), module_dir))
|
|
# wtf doesn't this work
|
|
# manpage_config.set('suid_wrapper_dir', join_paths(get_option('prefix'), libexecdir))
|
|
manpage_config.set('suid_wrapper_dir', join_paths(get_option('prefix'), 'libexec'))
|
|
manpage_config.set('default_font_path', default_font_path)
|
|
|
|
# Include must come first, as it sets up dix-config.h
|
|
subdir('include')
|
|
|
|
# X server core
|
|
subdir('config')
|
|
subdir('dix')
|
|
subdir('dri3')
|
|
subdir('glx')
|
|
subdir('fb')
|
|
subdir('mi')
|
|
subdir('os')
|
|
# X extensions
|
|
subdir('composite')
|
|
subdir('damageext')
|
|
subdir('dbe')
|
|
subdir('miext/damage')
|
|
subdir('miext/shadow')
|
|
subdir('miext/sync')
|
|
subdir('present')
|
|
if build_xwin or build_xquartz
|
|
subdir('pseudoramiX')
|
|
endif
|
|
subdir('randr')
|
|
subdir('record')
|
|
subdir('render')
|
|
subdir('xfixes')
|
|
subdir('xkb')
|
|
subdir('Xext')
|
|
subdir('Xi')
|
|
# other
|
|
if build_glamor
|
|
subdir('glamor')
|
|
endif
|
|
if build_xorg or get_option('xephyr')
|
|
subdir('exa')
|
|
endif
|
|
|
|
# Common static libraries of all X servers
|
|
libxserver = [
|
|
libxserver_mi,
|
|
libxserver_dix,
|
|
|
|
libxserver_composite,
|
|
libxserver_damageext,
|
|
libxserver_dbe,
|
|
libxserver_randr,
|
|
libxserver_miext_damage,
|
|
libxserver_render,
|
|
libxserver_present,
|
|
libxserver_xext,
|
|
libxserver_miext_sync,
|
|
libxserver_xfixes,
|
|
libxserver_xi,
|
|
libxserver_xkb,
|
|
libxserver_record,
|
|
|
|
libxserver_os,
|
|
]
|
|
|
|
libxserver += libxserver_dri3
|
|
|
|
subdir('hw')
|
|
subdir('test')
|
|
|
|
install_man(configure_file(
|
|
input: 'man/Xserver.man',
|
|
output: 'Xserver.1',
|
|
configuration: manpage_config,
|
|
))
|
|
|
|
if build_xorg
|
|
sdkconfig = configuration_data()
|
|
awk = find_program('awk')
|
|
|
|
sdkconfig.set('prefix', get_option('prefix'))
|
|
sdkconfig.set('exec_prefix', '${prefix}')
|
|
sdkconfig.set('libdir', join_paths('${exec_prefix}', get_option('libdir')))
|
|
sdkconfig.set('includedir', join_paths('${prefix}', get_option('includedir')))
|
|
sdkconfig.set('datarootdir', join_paths('${prefix}', get_option('datadir')))
|
|
sdkconfig.set('moduledir', join_paths('${exec_prefix}', get_option('module_dir')))
|
|
sdkconfig.set('sdkdir', join_paths('${prefix}', get_option('includedir'), 'xorg'))
|
|
sdkconfig.set('sysconfigdir', join_paths('${datarootdir}', 'X11/xorg.conf.d'))
|
|
|
|
sdkconfig.set('abi_ansic',
|
|
run_command(awk, '-F', '[(,)]',
|
|
'/^#define ABI_ANSIC.*SET/ { printf "%d.%d", $2, $3 }',
|
|
files('hw/xfree86/common/xf86Module.h')
|
|
).stdout()
|
|
)
|
|
sdkconfig.set('abi_videodrv',
|
|
run_command(awk, '-F', '[(,)]',
|
|
'/^#define ABI_VIDEODRV.*SET/ { printf "%d.%d", $2, $3 }',
|
|
files('hw/xfree86/common/xf86Module.h')
|
|
).stdout()
|
|
)
|
|
sdkconfig.set('abi_xinput',
|
|
run_command(awk, '-F', '[(,)]',
|
|
'/^#define ABI_XINPUT.*SET/ { printf "%d.%d", $2, $3 }',
|
|
files('hw/xfree86/common/xf86Module.h')
|
|
).stdout()
|
|
)
|
|
sdkconfig.set('abi_extension',
|
|
run_command(awk, '-F', '[(,)]',
|
|
'/^#define ABI_EXTENSION.*SET/ { printf "%d.%d", $2, $3 }',
|
|
files('hw/xfree86/common/xf86Module.h')
|
|
).stdout()
|
|
)
|
|
|
|
# XXX this isn't trying very hard, but hard enough.
|
|
sdkconfig.set('PACKAGE_VERSION', meson.project_version())
|
|
sdkconfig.set('SDK_REQUIRED_MODULES', '')
|
|
sdkconfig.set('symbol_visibility', '-fvisibility=hidden')
|
|
sdkconfig.set('XORG_DRIVER_LIBS', '')
|
|
|
|
configure_file(
|
|
input: 'xorg-server.pc.in',
|
|
output: 'xorg-server.pc',
|
|
configuration: sdkconfig,
|
|
install_dir: join_paths(get_option('prefix'),
|
|
get_option('libdir'),
|
|
'pkgconfig'),
|
|
)
|
|
endif
|
|
|
|
install_data('xorg-server.m4',
|
|
install_dir: join_paths(get_option('datadir'), 'aclocal'))
|