Add a Meson build system alongside autotools.

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>
This commit is contained in:
Eric Anholt 2017-03-11 10:24:04 -08:00
parent c7be7a688a
commit 1549e30372
61 changed files with 2859 additions and 0 deletions

61
Xext/meson.build Normal file
View File

@ -0,0 +1,61 @@
srcs_xext = [
'bigreq.c',
'geext.c',
'shape.c',
'sleepuntil.c',
'sync.c',
'xcmisc.c',
'xtest.c',
]
if build_dpms
srcs_xext += 'dpms.c'
endif
if build_mitshm
srcs_xext += 'shm.c'
endif
if build_res
srcs_xext += ['hashtable.c', 'xres.c']
endif
if build_screensaver
srcs_xext += 'saver.c'
endif
if build_xace
srcs_xext += 'xace.c'
endif
if build_xf86bigfont
srcs_xext += 'xf86bigfont.c'
endif
if build_xinerama
srcs_xext += ['panoramiX.c', 'panoramiXprocs.c', 'panoramiXSwap.c']
endif
if build_xsecurity
srcs_xext += ['security.c']
endif
if build_xselinux
srcs_xext += ['xselinux_ext.c', 'xselinux_hooks.c', 'xselinux_label.c']
endif
if build_xv
srcs_xext += ['xvmain.c', 'xvdisp.c', 'xvmc.c']
endif
libxserver_xext = static_library('libxserver_xext',
srcs_xext,
include_directories: inc,
dependencies: common_dep,
)
libxserver_xext_vidmode = static_library('libxserver_xext_vidmode',
'vidmode.c',
include_directories: inc,
dependencies: common_dep,
)

67
Xi/meson.build Normal file
View File

@ -0,0 +1,67 @@
srcs_xi = [
'allowev.c',
'chgdctl.c',
'chgfctl.c',
'chgkbd.c',
'chgkmap.c',
'chgprop.c',
'chgptr.c',
'closedev.c',
'devbell.c',
'exevents.c',
'extinit.c',
'getbmap.c',
'getdctl.c',
'getfctl.c',
'getfocus.c',
'getkmap.c',
'getmmap.c',
'getprop.c',
'getselev.c',
'getvers.c',
'grabdev.c',
'grabdevb.c',
'grabdevk.c',
'gtmotion.c',
'listdev.c',
'opendev.c',
'queryst.c',
'selectev.c',
'sendexev.c',
'setbmap.c',
'setdval.c',
'setfocus.c',
'setmmap.c',
'setmode.c',
'ungrdev.c',
'ungrdevb.c',
'ungrdevk.c',
'xiallowev.c',
'xibarriers.c',
'xichangecursor.c',
'xichangehierarchy.c',
'xigetclientpointer.c',
'xigrabdev.c',
'xipassivegrab.c',
'xiproperty.c',
'xiquerydevice.c',
'xiquerypointer.c',
'xiqueryversion.c',
'xiselectev.c',
'xisetclientpointer.c',
'xisetdevfocus.c',
'xiwarppointer.c',
]
libxserver_xi = static_library('libxserver_xi',
srcs_xi,
include_directories: inc,
dependencies: common_dep,
)
srcs_xi_stubs = ['stubs.c']
libxserver_xi_stubs = static_library('libxserver_xi_stubs',
srcs_xi_stubs,
include_directories: inc,
dependencies: common_dep,
)

13
composite/meson.build Normal file
View File

@ -0,0 +1,13 @@
srcs_composite = [
'compalloc.c',
'compext.c',
'compinit.c',
'compoverlay.c',
'compwindow.c',
]
libxserver_composite = static_library('libxserver_composite',
srcs_composite,
include_directories: inc,
dependencies: common_dep,
)

35
config/meson.build Normal file
View File

@ -0,0 +1,35 @@
srcs_config = [
'config.c',
]
config_dep = [common_dep]
if build_dbus
srcs_config += 'dbus-core.c'
config_dep += dbus_dep
endif
if build_hal
srcs_config += 'hal.c'
config_dep += hal_dep
endif
if build_udev
srcs_config += 'udev.c'
config_dep += udev_dep
endif
if host_machine.system() == 'openbsd'
srcs_config += 'wscons.c'
endif
if build_xorg
install_data('10-quirks.conf',
install_dir: join_paths(get_option('datadir'), 'xorg.conf.d'))
endif
libxserver_config = static_library('libxserver_config',
srcs_config,
include_directories: inc,
dependencies: config_dep,
)

9
damageext/meson.build Normal file
View File

@ -0,0 +1,9 @@
srcs_damageext = [
'damageext.c',
]
libxserver_damageext = static_library('libxserver_damageext',
srcs_damageext,
include_directories: inc,
dependencies: common_dep,
)

10
dbe/meson.build Normal file
View File

@ -0,0 +1,10 @@
srcs_dbe = [
'dbe.c',
'midbe.c',
]
libxserver_dbe = static_library('libxserver_dbe',
srcs_dbe,
include_directories: inc,
dependencies: common_dep,
)

47
dix/meson.build Normal file
View File

@ -0,0 +1,47 @@
srcs_dix = [
'atom.c',
'colormap.c',
'cursor.c',
'devices.c',
'dispatch.c',
'dixfonts.c',
'main.c',
'dixutils.c',
'enterleave.c',
'events.c',
'eventconvert.c',
'extension.c',
'ffs.c',
'gc.c',
'getevents.c',
'globals.c',
'glyphcurs.c',
'grabs.c',
'initatoms.c',
'inpututils.c',
'pixmap.c',
'privates.c',
'property.c',
'ptrveloc.c',
'region.c',
'registry.c',
'resource.c',
'selection.c',
'swaprep.c',
'swapreq.c',
'tables.c',
'touch.c',
'window.c',
]
libxserver_dix = static_library('libxserver_dix',
srcs_dix,
include_directories: inc,
dependencies: common_dep,
)
libxserver_main = static_library('libxserver_main',
'stubmain.c',
include_directories: inc,
dependencies: common_dep,
)

12
dri3/meson.build Normal file
View File

@ -0,0 +1,12 @@
srcs_dri3 = [
'dri3.c',
'dri3_request.c',
'dri3_screen.c',
]
libxserver_dri3 = static_library('libxserver_dri3',
srcs_dri3,
include_directories: inc,
dependencies: common_dep,
c_args: '-DHAVE_XORG_CONFIG_H'
)

24
exa/meson.build Normal file
View File

@ -0,0 +1,24 @@
srcs_exa = [
'exa.c',
'exa_classic.c',
'exa_migration_classic.c',
'exa_driver.c',
'exa_mixed.c',
'exa_migration_mixed.c',
'exa_accel.c',
'exa_glyphs.c',
'exa_offscreen.c',
'exa_render.c',
'exa_unaccel.c',
]
libxserver_exa = static_library('libxserver_exa',
srcs_exa,
include_directories: inc,
dependencies: common_dep,
c_args: '-DHAVE_XORG_CONFIG_H'
)
if build_xorg
install_data('exa.h', install_dir: xorgsdkdir)
endif

36
fb/meson.build Normal file
View File

@ -0,0 +1,36 @@
srcs_fb = [
'fballpriv.c',
'fbarc.c',
'fbbits.c',
'fbblt.c',
'fbbltone.c',
'fbcmap_mi.c',
'fbcopy.c',
'fbfill.c',
'fbfillrect.c',
'fbfillsp.c',
'fbgc.c',
'fbgetsp.c',
'fbglyph.c',
'fbimage.c',
'fbline.c',
'fboverlay.c',
'fbpict.c',
'fbpixmap.c',
'fbpoint.c',
'fbpush.c',
'fbscreen.c',
'fbseg.c',
'fbsetsp.c',
'fbsolid.c',
'fbtrap.c',
'fbutil.c',
'fbwindow.c',
]
libxserver_fb = static_library('libxserver_fb',
srcs_fb,
include_directories: inc,
dependencies: common_dep,
pic: true,
)

58
glamor/meson.build Normal file
View File

@ -0,0 +1,58 @@
srcs_glamor = [
'glamor.c',
'glamor_copy.c',
'glamor_core.c',
'glamor_dash.c',
'glamor_font.c',
'glamor_glx.c',
'glamor_composite_glyphs.c',
'glamor_image.c',
'glamor_lines.c',
'glamor_segs.c',
'glamor_render.c',
'glamor_gradient.c',
'glamor_prepare.c',
'glamor_program.c',
'glamor_rects.c',
'glamor_spans.c',
'glamor_text.c',
'glamor_transfer.c',
'glamor_transform.c',
'glamor_trapezoid.c',
'glamor_triangles.c',
'glamor_addtraps.c',
'glamor_glyphblt.c',
'glamor_points.c',
'glamor_pixmap.c',
'glamor_largepixmap.c',
'glamor_picture.c',
'glamor_vbo.c',
'glamor_window.c',
'glamor_fbo.c',
'glamor_compositerects.c',
'glamor_utils.c',
'glamor_sync.c',
]
if build_xv
srcs_glamor += 'glamor_xv.c'
endif
glamor = static_library('glamor',
srcs_glamor,
include_directories: inc,
dependencies: [
common_dep,
dependency('epoxy'),
],
)
glamor_egl_stubs = static_library('glamor_egl_stubs',
'glamor_egl_stubs.c',
include_directories: inc,
dependencies: common_dep,
)
if build_xorg
install_data('glamor.h', install_dir: xorgsdkdir)
endif

50
glx/meson.build Normal file
View File

@ -0,0 +1,50 @@
srcs_glx = [
'indirect_dispatch.c',
'indirect_dispatch_swap.c',
'indirect_reqsize.c',
'indirect_size_get.c',
'indirect_table.c',
'clientinfo.c',
'createcontext.c',
'extension_string.c',
'indirect_util.c',
'indirect_program.c',
'indirect_texture_compression.c',
'glxcmds.c',
'glxcmdsswap.c',
'glxext.c',
'glxdriswrast.c',
'glxdricommon.c',
'glxscreens.c',
'render2.c',
'render2swap.c',
'renderpix.c',
'renderpixswap.c',
'rensize.c',
'single2.c',
'single2swap.c',
'singlepix.c',
'singlepixswap.c',
'singlesize.c',
'swap_interval.c',
'xfont.c',
]
libxserver_glx = ''
if build_glx
libxserver_glx = static_library('libxserver_glx',
srcs_glx,
include_directories: inc,
dependencies: [
common_dep,
dl_dep,
dependency('glproto', version: '>= 1.4.17'),
dependency('gl', version: '>= 9.2.0'),
],
c_args: [
glx_align64,
# XXX: generated code includes an unused function
'-Wno-unused-function',
]
)
endif

81
hw/dmx/config/meson.build Normal file
View File

@ -0,0 +1,81 @@
flex = find_program('flex')
bison = find_program('bison')
lgen = generator(
flex,
output : '@PLAINNAME@.yy.c',
arguments : ['-o', '@OUTPUT@', '@INPUT@']
)
lfiles = lgen.process('scanner.l')
pgen = generator(
bison,
output : ['@BASENAME@.c', '@BASENAME@.h'],
arguments : ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@']
)
pfiles = pgen.process('parser.y')
srcs_dmx_config = [
'dmxparse.c',
'dmxprint.c',
'dmxcompat.c',
'dmxconfig.c',
pfiles,
lfiles,
]
dmx_inc = [
inc,
include_directories('../')
]
dmx_c_args = [
'-DHAVE_DMX_CONFIG_H',
'-DDMX_LOG_STANDALONE',
]
dmx_config = static_library('dmx_config',
srcs_dmx_config,
include_directories: dmx_inc,
dependencies: common_dep,
c_args: dmx_c_args,
)
executable('xdmxconfig',
[
'xdmxconfig.c',
'../dmxlog.c',
'Canvas.c',
],
include_directories: [
inc,
include_directories('../')
],
dependencies: [
common_dep,
dependency('xaw7'),
dependency('xmu'),
dependency('xt'),
dependency('xpm'),
dependency('x11'),
],
link_with: dmx_config,
c_args: dmx_c_args,
install: true,
)
executable('vdltodmx',
'vdltodmx.c',
include_directories: dmx_inc,
link_with: dmx_config,
c_args: dmx_c_args,
install: true,
)
executable('dmxtodmx',
'dmxtodmx.c',
include_directories: dmx_inc,
link_with: dmx_config,
c_args: dmx_c_args,
install: true,
)

View File

@ -0,0 +1,33 @@
dmxexamples_dep = [
dependency('xext'),
dependency('x11'),
]
dmx_dep = dependency('dmx', version: '>= 1.0.99.1')
dmx_examples = [
['dmxinfo', [dmx_dep]],
['dmxwininfo', [dmx_dep, dependency('xmu')]],
['dmxreconfig', [dmx_dep]],
['dmxresize', [dmx_dep]],
['dmxaddscreen', [dmx_dep]],
['dmxrmscreen', [dmx_dep]],
['dmxaddinput', [dmx_dep]],
['xinput', [dmx_dep, dependency('xi')]],
['xtest', [dependency('xtst')]],
['evi', []],
['xled', []],
['xbell', []],
['res', [dependency('xres')]],
]
foreach ex: dmx_examples
bin = ex[0]
extra_dep = ex[1]
executable(bin, bin + '.c', dependencies: [dmxexamples_dep, extra_dep])
endforeach
if cc.has_header('linux/input.h')
executable('ev', 'ev.c')
endif

View File

@ -0,0 +1,27 @@
srcs_dmx_glx = [
'compsize.c',
'g_disptab.c',
'global.c',
'glxcmds.c',
'glxcmdsswap.c',
'glxext.c',
'glxfbconfig.c',
'glxscreens.c',
'glxsingle.c',
'glxswap.c',
'glxvendor.c',
'glxvisuals.c',
'g_renderswap.c',
'render2swap.c',
'renderpixswap.c',
]
dmx_glx = static_library('dmx_glx',
srcs_dmx_glx,
include_directories: [
inc,
include_directories('../')
],
dependencies: common_dep,
c_args: ['-DHAVE_DMX_CONFIG_H', glx_align64],
)

32
hw/dmx/input/meson.build Normal file
View File

@ -0,0 +1,32 @@
srcs_dmx_input = [
'dmxdummy.c',
'dmxbackend.c',
'dmxconsole.c',
'dmxcommon.c',
'dmxinputinit.c',
'dmxarg.c',
'dmxevents.c',
'dmxxinput.c',
'dmxmotion.c',
'dmxmap.c',
'ChkNotMaskEv.c',
]
if cc.has_header('linux/input.h')
srcs_dmx_input += [
'usb-keyboard.c',
'usb-mouse.c',
'usb-other.c',
'usb-common.c',
]
endif
dmx_input = static_library('dmx_input',
srcs_dmx_input,
include_directories: [
inc,
include_directories('../')
],
dependencies: common_dep,
c_args: '-DHAVE_DMX_CONFIG_H',
)

68
hw/dmx/meson.build Normal file
View File

@ -0,0 +1,68 @@
srcs = [
'dmx.c',
'dmxcb.c',
'dmxcmap.c',
'dmxcursor.c',
'dmxdpms.c',
'dmxextension.c',
'dmxfont.c',
'dmxgc.c',
'dmxgcops.c',
'dmxinit.c',
'dmxinput.c',
'dmxlog.c',
'dmxpict.c',
'dmxpixmap.c',
'dmxprop.c',
'dmxscrinit.c',
'dmxstat.c',
'dmxsync.c',
'dmxvisual.c',
'dmxwindow.c',
'../../mi/miinitext.c',
'../../Xext/panoramiX.c',
]
subdir('config')
subdir('input')
subdir('examples')
# XXX: subdir('doc')
# XXX: subdir('doxygen')
# XXX: subdir('man')
dmx_dep = [
common_dep,
dependency('dmxproto', version: '>= 2.2.99.1'),
dependency('xext', version: '>= 1.0.99.4'),
dependency('xau'),
dependency('xmuu'),
dependency('xfixes'),
dependency('xrender'),
dependency('xi', version: '>= 1.2.99.1'),
xdmcp_dep,
dl_dep,
]
dmx_glx = ''
if build_glx
srcs += 'dmx_glxvisuals.c'
subdir('glxProxy')
endif
executable(
'Xdmx',
srcs,
include_directories: inc,
dependencies: dmx_dep,
link_with: [
libxserver_main,
libxserver_fb,
libxserver,
libxserver_xkb_stubs,
dmx_input,
dmx_config,
dmx_glx,
],
c_args: '-DHAVE_DMX_CONFIG_H',
install: true,
)

View File

@ -0,0 +1,62 @@
srcs = [
'ephyr.c',
'ephyrinit.c',
'ephyrcursor.c',
'ephyr_draw.c',
'hostx.c',
'os.c',
]
xephyr_dep = [
common_dep,
dependency('xcb'),
dependency('xcb-shape'),
dependency('xcb-render'),
dependency('xcb-renderutil'),
dependency('xcb-aux'),
dependency('xcb-image'),
dependency('xcb-icccm'),
dependency('xcb-shm'),
dependency('xcb-keysyms'),
dependency('xcb-randr'),
dependency('xcb-xkb'),
]
xephyr_glamor = []
if build_glamor
srcs += 'ephyr_glamor_glx.c'
if build_xv
srcs += 'ephyr_glamor_xv.c'
endif
xephyr_glamor += glamor
xephyr_glamor += glamor_egl_stubs
xephyr_dep += dependency('x11-xcb')
endif
if build_xv
srcs += 'ephyrvideo.c'
xephyr_dep += dependency('xcb-xv')
endif
executable(
'Xephyr',
srcs,
include_directories: [
inc,
include_directories('../src')
],
dependencies: xephyr_dep,
link_with: [
libxserver_main,
libxserver_exa,
xephyr_glamor,
kdrive,
libxserver_fb,
libxserver,
libxserver_config,
libxserver_xkb_stubs,
libxserver_xi_stubs,
libxserver_glx,
],
install: true,
)

2
hw/kdrive/meson.build Normal file
View File

@ -0,0 +1,2 @@
subdir('src')
subdir('ephyr')

22
hw/kdrive/src/meson.build Normal file
View File

@ -0,0 +1,22 @@
srcs_kdrive = [
'kcmap.c',
'kdrive.c',
'kinfo.c',
'kinput.c',
'kmode.c',
'kshadow.c',
'../../../mi/miinitext.c',
]
if build_xv
srcs_kdrive += 'kxv.c'
endif
#XXX: libconfig
kdrive = static_library('kdrive',
srcs_kdrive,
include_directories: inc,
dependencies: common_dep,
link_with: libxserver_miext_shadow,
)

25
hw/meson.build Normal file
View File

@ -0,0 +1,25 @@
if get_option('xephyr')
subdir('kdrive')
endif
if get_option('dmx')
subdir('dmx')
endif
subdir('vfb')
if build_xnest
subdir('xnest')
endif
if build_xorg
subdir('xfree86')
endif
if build_xquartz
subdir('xquartz')
endif
if build_xwayland
subdir('xwayland')
endif

21
hw/vfb/meson.build Normal file
View File

@ -0,0 +1,21 @@
srcs = [
'InitInput.c',
'InitOutput.c',
'../../mi/miinitext.c',
]
executable(
'Xvfb',
srcs,
include_directories: inc,
dependencies: common_dep,
link_with: [
libxserver_main,
libxserver_fb,
libxserver,
libxserver_xkb_stubs,
libxserver_xi_stubs,
libxserver_glx
],
install: true,
)

View File

@ -0,0 +1,93 @@
srcs_xorg_common = [
'xf86fbBus.c',
'xf86noBus.c',
'xf86Configure.c',
'xf86Bus.c',
'xf86Config.c',
'xf86Cursor.c',
'xf86DPMS.c',
'xf86Events.c',
'xf86Globals.c',
'xf86AutoConfig.c',
'xf86Option.c',
'xf86Init.c',
'xf86VidMode.c',
'xf86fbman.c',
'xf86cmap.c',
'xf86Helper.c',
'xf86PM.c',
'xf86RandR.c',
'xf86Xinput.c',
'xisb.c',
'xf86Mode.c',
'xorgHelper.c',
'xf86Extensions.c',
]
xorg_sdk_headers = [
'compiler.h',
'fourcc.h',
'xf86.h',
'xf86Module.h',
'xf86Opt.h',
'xf86PciInfo.h',
'xf86Priv.h',
'xf86Privstr.h',
'xf86cmap.h',
'xf86fbman.h',
'xf86str.h',
'xf86Xinput.h',
'xisb.h',
'xorgVersion.h',
'xf86sbusBus.h',
'xf86VGAarbiter.h',
'xf86Optionstr.h',
'xf86platformBus.h',
'xaarop.h',
]
if build_dga
srcs_xorg_common += 'xf86DGA.c'
xorg_sdk_headers += 'dgaproc.h'
endif
if build_xv
srcs_xorg_common += ['xf86xv.c', 'xf86xvmc.c']
xorg_sdk_headers += ['xf86xv.h', 'xf86xvmc.h', 'xf86xvpriv.h']
endif
if build_udev
srcs_xorg_common += 'xf86platformBus.c'
endif
if get_option('pciaccess')
srcs_xorg_common += ['xf86pciBus.c', 'xf86VGAarbiter.c']
endif
srcs_xorg_common += custom_target(
'xf86Build.h',
output: 'xf86Build.h',
command: [join_paths(meson.current_source_dir(), 'xf86Build.sh'), '@OUTPUT@'],
build_always: true,
)
srcs_xorg_common += custom_target(
'xf86DefModeSet.c',
output: 'xf86DefModeSet.c',
input: ['modeline2c.awk', 'vesamodes', 'extramodes'],
command: [find_program('awk'), '-f', '@INPUT0@', '@INPUT1@', '@INPUT2@'],
capture: true,
)
xorg_common = static_library('xorg_common',
srcs_xorg_common,
include_directories: [inc, xorg_inc],
dependencies: [
common_dep,
dbus_dep,
pciaccess_dep,
],
c_args: xorg_c_args,
)
install_data(xorg_sdk_headers, install_dir: xorgsdkdir)

6
hw/xfree86/common/xf86Build.sh Executable file
View File

@ -0,0 +1,6 @@
BUILD_DATE=`date +'%Y%m%d'`
BUILD_TIME=`date +'1%H%M%S'`
output=$1
echo "#define BUILD_DATE $BUILD_DATE" > $output
echo "#define BUILD_TIME $BUILD_TIME" > $output

View File

@ -0,0 +1,15 @@
srcs_xorg_ddc = [
'ddc.c',
'interpret_edid.c',
'print_edid.c',
'ddcProperty.c',
]
xorg_ddc = static_library('xorg_ddc',
srcs_xorg_ddc,
include_directories: [inc, xorg_inc],
dependencies: common_dep,
c_args: xorg_c_args,
)
install_data(['edid.h', 'xf86DDC.h'], install_dir: xorgsdkdir)

View File

@ -0,0 +1,38 @@
srcs_xorg_dixmods = [
'xkbVT.c',
'xkbPrivate.c',
'xkbKillSrv.c',
]
xorg_dixmods = static_library('xorg_dixmods',
srcs_xorg_dixmods,
include_directories: [inc, xorg_inc],
dependencies: common_dep,
c_args: xorg_c_args,
)
shared_module(
'fb',
'fbmodule.c',
include_directories: [inc, xorg_inc],
c_args: xorg_c_args,
dependencies: common_dep,
objects: libxserver_fb.extract_all_objects(),
install: true,
install_dir: module_dir,
)
shared_module(
'shadow',
'shmodule.c',
include_directories: [inc, xorg_inc],
c_args: xorg_c_args,
dependencies: common_dep,
objects: libxserver_miext_shadow.extract_all_objects(),
install: true,
install_dir: module_dir,
)

View File

@ -0,0 +1,23 @@
srcs_xorg_dri = [
'dri.c',
'xf86dri.c',
]
xorg_dri = static_library('xorg_dri',
srcs_xorg_dri,
include_directories: [inc, xorg_inc],
dependencies: [
common_dep,
dependency('libdrm'),
],
c_args: xorg_c_args,
)
install_data(
[
'dri.h',
'sarea.h',
'dristruct.h',
],
install_dir: xorgsdkdir,
)

View File

@ -0,0 +1,16 @@
srcs_xorg_dri2 = [
'dri2.c',
'dri2ext.c',
]
xorg_dri2 = static_library('xorg_dri2',
srcs_xorg_dri2,
include_directories: [inc, xorg_inc],
dependencies: [
common_dep,
dependency('libdrm'),
],
c_args: xorg_c_args,
)
install_data('dri2.h', install_dir: xorgsdkdir)

View File

@ -0,0 +1,42 @@
modesetting_srcs = [
'dri2.c',
'driver.c',
'drmmode_display.c',
'dumb_bo.c',
'pageflip.c',
'present.c',
'vblank.c',
]
shared_module(
'modesetting_drv',
modesetting_srcs,
name_prefix: '',
include_directories: [inc, xorg_inc],
c_args: xorg_c_args,
dependencies: [
common_dep,
udev_dep,
dependency('libdrm', version: '>= 2.4.46'),
],
install: true,
install_dir: join_paths(module_dir, 'drivers'),
)
# Test that we don't have any unresolved symbols from our module to Xorg.
xorg_build_root = join_paths(meson.build_root(), 'hw', 'xfree86')
symbol_test_args = []
symbol_test_args += join_paths(xorg_build_root, 'Xorg')
symbol_test_args += join_paths(xorg_build_root, 'dixmods', 'libfb.so')
symbol_test_args += join_paths(xorg_build_root, 'dixmods', 'libshadow.so')
if build_glamor
symbol_test_args += join_paths(xorg_build_root, 'glamor_egl', 'libglamoregl.so')
endif
symbol_test_args += join_paths(xorg_build_root, 'drivers', 'modesetting', 'modesetting_drv.so')
test('modesetting symbol test',
xorg_symbol_test,
args: symbol_test_args,
)

View File

@ -0,0 +1,9 @@
xorg_exa = shared_module('exa',
'examodule.c',
include_directories: [inc, xorg_inc],
dependencies: common_dep,
link_with: libxserver_exa,
c_args: xorg_c_args,
install: true,
install_dir: module_dir,
)

View File

@ -0,0 +1,22 @@
glamoregl_src = [
'../../../glamor/glamor_egl.c',
'../../../glamor/glamor_eglmodule.c',
'glamor_xf86_xv.c',
]
shared_module(
'glamoregl',
glamoregl_src,
include_directories: [inc, xorg_inc],
c_args: xorg_c_args,
dependencies: [
common_dep,
dependency('libdrm', version: '>= 2.4.46'),
gbm_dep,
],
link_with: glamor,
install: true,
install_dir: module_dir,
)

View File

@ -0,0 +1,12 @@
srcs_xorg_i2c = [
'xf86i2c.c'
]
xorg_i2c = static_library('xorg_i2c',
srcs_xorg_i2c,
include_directories: [inc, xorg_inc],
dependencies: common_dep,
c_args: xorg_c_args,
)
install_data(['xf86i2c.h', 'i2c_def.h'], install_dir: xorgsdkdir)

View File

@ -0,0 +1,54 @@
srcs_xorg_int10 = [
'helper_exec.c',
'helper_mem.c',
'xf86int10.c',
'xf86int10module.c',
]
int10_c_args = [xorg_c_args]
int10_link = []
if host_machine.cpu() == 'i386' or host_machine.cpu() == 'x86_64'
int10_c_args += '-D_PC'
endif
if int10 == 'stub'
srcs_xorg_int10 += 'stub.c'
int10_c_args += '-D_VM86_LINUX'
endif
if int10 == 'x86emu'
srcs_xorg_int10 += [
'generic.c',
'xf86x86emu.c',
'x86emu.c',
]
int10_c_args += '-D_X86EMU'
int10_c_args += '-DNO_SYS_HEADERS'
int10_link += xorg_x86emu
endif
if int10 == 'vm86'
srcs_xorg_int10 += [
'vm86/linux_vm86.c',
'linux.c',
]
int10_c_args += '-D_VM86_LINUX'
endif
xorg_int10 = shared_module('int10',
srcs_xorg_int10,
include_directories: [
inc,
xorg_inc,
include_directories('../x86emu')
],
dependencies: common_dep,
link_with: int10_link,
c_args: int10_c_args,
install: true,
install_dir: module_dir,
)
install_data('xf86int10.h', install_dir: xorgsdkdir)

View File

@ -64,12 +64,16 @@
#error i have no dynamic linker and i must scream
#endif
#ifndef XORG_NO_SDKSYMS
extern void *xorg_symbols[];
#endif
void
LoaderInit(void)
{
#ifndef XORG_NO_SDKSYMS
LogMessageVerb(X_INFO, 2, "Loader magic: %p\n", (void *) xorg_symbols);
#endif
LogMessageVerb(X_INFO, 2, "Module ABI versions:\n");
LogWrite(2, "\t%s: %d.%d\n", ABI_CLASS_ANSIC,
GET_ABI_MAJOR(LoaderVersionInfo.ansicVersion),

View File

@ -0,0 +1,16 @@
srcs_xorg_loader = [
'loader.c',
'loadmod.c',
]
xorg_loader = static_library('xorg_loader',
srcs_xorg_loader,
include_directories: [inc, xorg_inc],
dependencies: [common_dep, dl_dep],
c_args: xorg_c_args,
)
xorg_symbol_test = executable('xorg_symbol_test',
'symbol-test.c',
dependencies: dl_dep,
)

View File

@ -0,0 +1,53 @@
/*
* Copyright © 2017 Broadcom
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/* Small test program to see if we can successfully resolve all
* symbols of a set of X.Org modules when they're loaded in order.
*/
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
int main (int argc, char**argv)
{
void *ret;
if (argc < 2) {
fprintf(stderr,
"Must pass path of Xorg executable and any "
"modules to be loaded.\n");
exit(1);
}
for (int i = 1; i < argc; i++) {
fprintf(stderr, "opening %s\n", argv[i]);
ret = dlopen(argv[i], RTLD_GLOBAL | RTLD_NOW);
if (!ret) {
fprintf(stderr, "dlopen error: %s\n", dlerror());
exit(1);
}
}
return 0;
}

106
hw/xfree86/meson.build Normal file
View File

@ -0,0 +1,106 @@
xorg_inc = include_directories(
'common',
'ddc',
'dri2',
'i2c',
'int10',
'loader',
'modes',
'os-support',
'os-support/bus',
'parser',
'ramdac',
'vbe',
'vgahw',
)
xorg_c_args = []
xorg_c_args += '-DHAVE_XORG_CONFIG_H'
xorg_c_args += '-DXORG_NO_SDKSYMS'
pciaccess_dep = []
if get_option('pciaccess')
pciaccess_dep = dependency('pciaccess', version: '>= 0.12.901')
endif
subdir('common')
subdir('ddc')
subdir('dixmods')
subdir('exa')
if gbm_dep.found()
subdir('glamor_egl')
endif
subdir('i2c')
if build_dri1
subdir('dri')
endif
if build_dri2
subdir('dri2')
endif
if int10 != 'disabled'
if int10 == 'x86emu'
subdir('x86emu')
endif
subdir('int10')
endif
subdir('loader')
subdir('modes')
subdir('os-support')
subdir('parser')
subdir('ramdac')
subdir('drivers/modesetting')
srcs_xorg = [
'../../mi/miinitext.c'
]
# Extract all the objects so that all symbols get brought into the
# server. This prevents us from needing a global table of all symbols
# that should be exported to Xorg modules, at the expense of all
# symbols being included and public
xorg_link = [
libxserver,
xorg_common,
xorg_loader,
xorg_ddc,
xorg_dixmods,
xorg_i2c,
xorg_modes,
xorg_os_support,
xorg_parser,
xorg_ramdac,
libxserver_xext_vidmode,
libxserver_main,
libxserver_config,
]
if build_dri1
xorg_link += xorg_dri
endif
if build_dri2
xorg_link += xorg_dri2
endif
executable(
'Xorg',
srcs_xorg,
include_directories: [inc, xorg_inc],
link_whole: xorg_link,
dependencies: [
pixman_dep,
m_dep,
dl_dep,
pciaccess_dep,
sha1_dep,
dependency('xau'),
xdmcp_dep,
xfont2_dep,
xshmfence_dep,
config_dep,
dependency('libdrm'),
],
link_args: '-Wl,--export-dynamic',
c_args: xorg_c_args,
install: true,
)

View File

@ -0,0 +1,30 @@
srcs_xorg_modes = [
'xf86Crtc.c',
'xf86Cursors.c',
'xf86cvt.c',
'xf86gtf.c',
'xf86EdidModes.c',
'xf86Modes.c',
'xf86RandR12.c',
'xf86Rotate.c',
]
if build_dga
srcs_xorg_modes += 'xf86DiDGA.c'
endif
xorg_modes = static_library('xorg_modes',
srcs_xorg_modes,
include_directories: [inc, xorg_inc],
dependencies: common_dep,
c_args: xorg_c_args,
)
install_data(
[
'xf86Crtc.h',
'xf86Modes.h',
'xf86RandR12.h',
],
install_dir: xorgsdkdir,
)

View File

@ -0,0 +1,125 @@
srcs_xorg_os_support = [
'bus/nobus.c',
'shared/posix_tty.c',
'shared/sigio.c',
'shared/vidmem.c',
]
os_support_flags = ['-DUSESTDRES']
if get_option('pciaccess')
srcs_xorg_os_support += 'bus/Pci.c'
if host_machine.system() != 'linux' and host_machine.system() != 'solaris'
srcs_xorg_os_support += 'bus/bsd_pci.c'
endif
if host_machine.cpu() == 'sparc'
srcs_xorg_os_support += 'bus/Sbus.c'
install_data('bus/xf86Sbus.h', install_dir: xorgsdkdir)
endif
endif
if host_machine.system() == 'linux'
srcs_xorg_os_support += [
'linux/lnx_agp.c',
'linux/lnx_bell.c',
'linux/lnx_init.c',
'linux/lnx_kmod.c',
'linux/lnx_platform.c',
'linux/lnx_video.c',
'misc/SlowBcopy.c',
'shared/VTsw_usl.c',
]
if build_systemd_logind
srcs_xorg_os_support += 'linux/systemd-logind.c'
endif
# this is ugly because the code is also
if build_apm or build_acpi
srcs_xorg_os_support += 'linux/lnx_apm.c'
if build_acpi
srcs_xorg_os_support += 'linux/lnx_acpi.c'
endif
endif
os_support_flags += '-DHAVE_SYSV_IPC'
elif host_machine.system() == 'solaris'
srcs_xorg_os_support += [
'solaris/sun_apm.c',
'solaris/sun_bell.c',
'solaris/sun_init.c',
'solaris/sun_vid.c',
'shared/kmod_noop.c',
]
if cc.has_header('sys/vt.h')
srcs_xorg_os_support += 'solaris/sun_VTsw.c'
else
srcs_xorg_os_support += 'shared/VTsw_noop.c'
endif
if cc.has_header('sys/agpio.h') or cc.has_header('sys/agpgart.h')
srcs_xorg_os_support += 'solaris/sun_agp.c'
else
srcs_xorg_os_support += 'shared/agp_noop.c'
endif
if host_machine.cpu_family() == 'sparc'
srcs_xorg_os_support += 'solaris/solaris-sparcv8plus.S'
elif host_machine.cpu_family() == 'x86_64'
srcs_xorg_os_support += 'solaris/solaris-amd64.S'
elif host_machine.cpu_family() == 'x86'
srcs_xorg_os_support += 'solaris/solaris-ia32.S'
else
error('Unknown CPU family for Solaris build')
endif
os_support_flags += '-DHAVE_SYSV_IPC'
else
srcs_xorg_os_support += [
'bsd/bsd_VTsw.c',
'bsd/bsd_bell.c',
'bsd/bsd_init.c',
]
# XXX: APM
if host_machine.cpu_family() == 'x86_64'
srcs_xorg_os_support += 'bsd/i386_video.c'
elif host_machine.cpu_family() == 'x86'
srcs_xorg_os_support += 'bsd/i386_video.c'
elif host_machine.cpu_family() == 'arm'
srcs_xorg_os_support += 'bsd/arm_video.c'
elif host_machine.cpu_family() == 'powerpc'
srcs_xorg_os_support += 'bsd/ppc_video.c'
elif host_machine.cpu_family() == 'sparc64'
srcs_xorg_os_support += 'bsd/sparc64_video.c'
srcs_xorg_os_support += 'shared/ioperm_noop.c'
elif host_machine.cpu_family() == 'alpha'
srcs_xorg_os_support += 'bsd/alpha_video.c'
srcs_xorg_os_support += 'bsd/bsd_ev56.c'
endif
if host_machine.system() == 'freebsd'
srcs_xorg_os_support += 'bsd/bsd_kmod.c'
else
srcs_xorg_os_support += 'shared/kmod_noop.c'
endif
if cc.has_header('sys/agpio.h') or cc.has_header('sys/agpgart.h')
srcs_xorg_os_support += 'linux/lnx_agp.c'
else
srcs_xorg_os_support += 'shared/agp_noop.c'
endif
endif
xorg_os_support = static_library('xorg_os_support',
srcs_xorg_os_support,
include_directories: [inc, xorg_inc],
dependencies: [
common_dep,
dbus_dep,
dependency('libdrm'),
],
c_args: xorg_c_args,
)
install_data('bus/xf86Pci.h', install_dir: xorgsdkdir)

View File

@ -0,0 +1,32 @@
srcs_xorg_parser = [
'Device.c',
'Files.c',
'Flags.c',
'Input.c',
'InputClass.c',
'OutputClass.c',
'Layout.c',
'Module.c',
'Video.c',
'Monitor.c',
'Pointer.c',
'Screen.c',
'Vendor.c',
'read.c',
'scan.c',
'write.c',
'DRI.c',
'Extensions.c',
]
xorg_parser = static_library('xorg_parser',
srcs_xorg_parser,
include_directories: [inc, xorg_inc],
dependencies: common_dep,
c_args: [
xorg_c_args,
'-DDATADIR="' + join_paths(get_option('prefix'), get_option('datadir')) + '"',
],
)
install_data(['xf86Parser.h', 'xf86Optrec.h'], install_dir: xorgsdkdir)

View File

@ -0,0 +1,27 @@
srcs_xorg_ramdac = [
'xf86RamDac.c',
'xf86RamDacCmap.c',
'xf86CursorRD.c',
'xf86HWCurs.c',
'IBM.c',
'BT.c',
'TI.c',
]
xorg_ramdac = static_library('xorg_ramdac',
srcs_xorg_ramdac,
include_directories: [inc, xorg_inc],
dependencies: common_dep,
c_args: xorg_c_args,
)
install_data(
[
'BT.h',
'IBM.h',
'TI.h',
'xf86Cursor.h',
'xf86RamDac.h',
],
install_dir: xorgsdkdir,
)

View File

@ -0,0 +1,15 @@
srcs_xorg_x86emu = [
'debug.c',
'decode.c',
'fpu.c',
'ops2.c',
'ops.c',
'prim_ops.c',
'sys.c',
]
xorg_x86emu = static_library('x86emu',
srcs_xorg_x86emu,
include_directories: [inc, xorg_inc],
dependencies: common_dep,
)

37
hw/xnest/meson.build Normal file
View File

@ -0,0 +1,37 @@
srcs = [
'Args.c',
'Color.c',
'Cursor.c',
'Display.c',
'Events.c',
'Font.c',
'GC.c',
'GCOps.c',
'Handlers.c',
'Init.c',
'Keyboard.c',
'Pixmap.c',
'Pointer.c',
'Screen.c',
'Visual.c',
'Window.c',
'../../mi/miinitext.c',
]
executable(
'Xnest',
srcs,
include_directories: inc,
dependencies: [
common_dep,
xnest_dep,
],
link_with: [
libxserver_main,
libxserver,
libxserver_xi_stubs,
libxserver_xkb_stubs,
],
c_args: '-DHAVE_XNEST_CONFIG_H',
install: true,
)

40
hw/xquartz/meson.build Normal file
View File

@ -0,0 +1,40 @@
add_languages('objc')
srcs = [
'X11Application.m',
'X11Controller.m',
'applewm.c',
'darwin.c',
'darwinEvents.c',
'darwinXinput.c',
'keysym2ucs.c',
'quartz.c',
'quartzCocoa.m',
'quartzKeyboard.c',
'quartzStartup.c',
'quartzRandR.c',
'console_redirect.c',
'../../mi/miinitext.c',
]
executable(
'Xquartz',
srcs,
include_directories: inc,
link_with: [
libxserver_main,
libxserver,
libxserver_xkb_stubs,
libxserver_xi_stubs,
libxserver_glx,
libxserver_pseudoramix,
],
c_args: [
'-DXFree86Server',
# XXXX: BUILD_DATE
'-DXSERVER_VERSION="' + meson_project.version() + '"',
'-DINXQUARTZ',
'-DUSE_NEW_CLUT',
],
install: true,
)

66
hw/xwayland/meson.build Normal file
View File

@ -0,0 +1,66 @@
srcs = [
'xwayland.c',
'xwayland-input.c',
'xwayland-cursor.c',
'xwayland-shm.c',
'xwayland-output.c',
'xwayland-cvt.c',
'xwayland-vidmode.c',
'../../mi/miinitext.c',
]
scanner_dep = dependency('wayland-scanner', native: true)
scanner = find_program(scanner_dep.get_pkgconfig_variable('wayland_scanner'))
protocols_dep = dependency('wayland-protocols')
protodir = protocols_dep.get_pkgconfig_variable('pkgdatadir')
pointer_xml = join_paths(protodir, 'unstable', 'pointer-constraints', 'pointer-constraints-unstable-v1.xml')
relative_xml = join_paths(protodir, 'unstable', 'relative-pointer', 'relative-pointer-unstable-v1.xml')
client_header = generator(scanner,
output : '@BASENAME@-client-protocol.h',
arguments : ['client-header', '@INPUT@', '@OUTPUT@']
)
code = generator(scanner,
output : '@BASENAME@-protocol.c',
arguments : ['code', '@INPUT@', '@OUTPUT@']
)
srcs += client_header.process(relative_xml)
srcs += client_header.process(pointer_xml)
srcs += code.process(relative_xml)
srcs += code.process(pointer_xml)
xwayland_glamor = []
if gbm_dep.found()
srcs += 'xwayland-glamor.c'
if build_xv
srcs += 'xwayland-glamor-xv.c'
endif
srcs += client_header.process('drm.xml')
srcs += code.process('drm.xml')
xwayland_dep += gbm_dep
xwayland_glamor += glamor
endif
executable(
'Xwayland',
srcs,
include_directories: inc,
dependencies: [
common_dep,
xwayland_dep,
],
link_with: [
libxserver_main,
xwayland_glamor,
libxserver_fb,
libxserver,
libxserver_xext_vidmode,
libxserver_xkb_stubs,
libxserver_xi_stubs,
libxserver_glx,
],
install: true,
)

329
include/meson.build Normal file
View File

@ -0,0 +1,329 @@
dri_dep = dependency('dri', required: build_dri2 or build_dri3)
conf_data = configuration_data()
conf_data.set('_DIX_CONFIG_H_', '1')
conf_data.set('MONOTONIC_CLOCK', cc.compiles('''
#include <time.h>
#include <unistd.h>
#ifndef CLOCK_MONOTONIC
#error CLOCK_MONOTONIC not defined
#endif
''',
name: 'CLOCK_MONOTONIC'))
#conf_data.set('XSERVER_DTRACE', '1') # XXX
if host_machine.endian() == 'little'
conf_data.set('X_BYTE_ORDER', 'X_LITTLE_ENDIAN')
else
conf_data.set('X_BYTE_ORDER', 'X_BIG_ENDIAN')
endif
glx_align64 = ''
if cc.sizeof('unsigned long') == 8
conf_data.set('_XSERVER64', '1')
glx_align64 = '-D__GLX_ALIGN64'
endif
conf_data.set('_GNU_SOURCE', '1')
# XXX: NO_LOCAL_CLIENT_CRED
# autoconf checks for /dev/xf86 here, but the test should be based on
# the target, not the build system. Could we get rid of this and just
# ifdef for openbsd?
conf_data.set('HAS_APERTURE_DRV', host_machine.system() == 'openbsd')
# XXX: USE_ALPHA_PIO and other bsd bits
# XXX: FALLBACK_INPUT_DRIVER
# XXX: BUNDLE_ID_PREFIX
# XXX: HAVE_LIBDISPATCH
conf_data.set_quoted('OSNAME', 'Linux') # XXX
conf_data.set('HAVE_SYSV_IPC', '1') # XXX
conf_data.set('HAVE_INPUTTHREAD', '1') # XXX
conf_data.set('HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID', '1') # XXX
conf_data.set('HAVE_LIBBSD', libbsd_dep.found())
# XXX: HAVE_SYSTEMD_DAEMON
# XXX: HAVE_LIBUDEV
conf_data.set('CONFIG_UDEV', build_udev)
conf_data.set('CONFIG_UDEV_KMS', build_udev)
conf_data.set('HAVE_DBUS', build_dbus)
conf_data.set('CONFIG_HAL', build_hal)
conf_data.set('SYSTEMD_LOGIND', build_systemd_logind)
conf_data.set('NEED_DBUS', build_systemd_logind or build_hal)
conf_data.set('CONFIG_WSCONS', host_machine.system() == 'openbsd')
# XXX: SHMDIR is weird in autoconf, probing the build system for
# various tmp directories. Could we replace it with C code at runtime
# that just uses whatever directory works?
conf_data.set_quoted('SHMDIR', '/tmp')
conf_data.set('HAVE_SIGACTION', '1') # XXX
conf_data.set('BUSFAULT', '1') # XXX
conf_data.set('XSHMFENCE', '1') # XXX
conf_data.set('WITH_LIBDRM', '1') # XXX
conf_data.set('GLAMOR_HAS_DRM_NAME_FROM_FD_2',
dependency('libdrm', version: '>= 2.4.74', required: false).found())
conf_data.set('GLXEXT', build_glx)
conf_data.set('GLAMOR', build_glamor)
conf_data.set('GLAMOR_HAS_GBM', gbm_dep.found())
if gbm_dep.found() and dependency('gbm', version: '>= 10.6', required: false).found()
conf_data.set('GLAMOR_HAS_GBM_LINEAR', build_glamor)
endif
conf_data.set_quoted('SERVER_MISC_CONFIG_PATH', serverconfigdir)
conf_data.set_quoted('PROJECTROOT', get_option('prefix'))
conf_data.set_quoted('SYSCONFDIR', join_paths(get_option('prefix'), get_option('sysconfdir')))
# XXX: Stopped enumerating at COMPILEDEFAULTFONTPATH
conf_data.set('HASXDMAUTH', get_option('xdm-auth-1'))
conf_data.set('HAVE_DBM_H', cc.has_header('dbm.h'))
conf_data.set('HAVE_DLFCN_H', cc.has_header('dlfcn.h'))
conf_data.set('HAVE_EXECINFO_H', cc.has_header('execinfo.h'))
conf_data.set('HAVE_FCNTL_H', cc.has_header('fcntl.h'))
conf_data.set('HAVE_FNMATCH_H', cc.has_header('fnmatch.h'))
conf_data.set('HAVE_LINUX_AGPGART_H', cc.has_header('linux/agpgart.h'))
conf_data.set('HAVE_NDBM_H', cc.has_header('ndbm.h'))
conf_data.set('HAVE_RPCSVC_DBM_H', cc.has_header('rpcsvc/dbm.h'))
conf_data.set('HAVE_STDLIB_H', cc.has_header('stdlib.h'))
conf_data.set('HAVE_STRING_H', cc.has_header('string.h'))
conf_data.set('HAVE_STRINGS_H', cc.has_header('strings.h'))
conf_data.set('HAVE_STROPTS_H', cc.has_header('stropts.h'))
conf_data.set('HAVE_SYS_AGPGART_H', cc.has_header('sys/agpgart.h'))
conf_data.set('HAVE_SYS_AGPIO_H', cc.has_header('sys/agpio.h'))
conf_data.set('HAVE_SYS_UTSNAME_H', cc.has_header('sys/utsname.h'))
conf_data.set('HAVE_UNISTD_H', cc.has_header('unistd.h'))
conf_data.set('HAVE_BACKTRACE', cc.has_function('backtrace'))
conf_data.set('HAVE_CBRT', cc.has_function('cbrt'))
conf_data.set('HAVE_EPOLL_CREATE', cc.has_function('epoll_create'))
conf_data.set('HAVE_FFS', cc.has_function('ffs'))
conf_data.set('HAVE_GETUID', cc.has_function('getuid'))
conf_data.set('HAVE_GETEUID', cc.has_function('geteuid'))
conf_data.set('HAVE_ISSETUGID', cc.has_function('issetugid'))
conf_data.set('HAVE_GETIFADDRS', cc.has_function('getifaddrs'))
conf_data.set('HAVE_GETPEEREID', cc.has_function('getpeereid'))
conf_data.set('HAVE_GETPEERUCRED', cc.has_function('getpeerucred'))
conf_data.set('HAVE_GETPROGNAME', cc.has_function('getprogname'))
conf_data.set('HAVE_GETZONEID', cc.has_function('getzoneid'))
conf_data.set('HAVE_MMAP', cc.has_function('mmap'))
conf_data.set('HAVE_POLL', cc.has_function('poll'))
conf_data.set('HAVE_POSIX_FALLOCATE', cc.has_function('posix_fallocate'))
conf_data.set('HAVE_SETEUID', cc.has_function('seteuid'))
conf_data.set('HAVE_SETITIMER', cc.has_function('setitimer'))
conf_data.set('HAVE_SHMCTL64', cc.has_function('shmctl64'))
conf_data.set('HAVE_STRCASECMP', cc.has_function('strcasecmp'))
conf_data.set('HAVE_STRNCASECMP', cc.has_function('strncasecmp'))
conf_data.set('HAVE_STRNDUP', cc.has_function('strndup'))
conf_data.set('HAVE_VASPRINTF', cc.has_function('vasprintf'))
conf_data.set('HAVE_VSNPRINTF', cc.has_function('vsnprintf'))
conf_data.set('HAVE_WALKCONTEXT', cc.has_function('walkcontext'))
# Don't let X dependencies typedef 'pointer'
conf_data.set('_XTYPEDEF_POINTER', '1')
conf_data.set('_XITYPEDEF_POINTER', '1')
# XXX: Configurable?
conf_data.set('LISTEN_TCP', '1')
conf_data.set('LISTEN_UNIX', '1')
conf_data.set('LISTEN_LOCAL', '1')
conf_data.set('XTRANS_SEND_FDS', '1')
conf_data.set('TCPCONN', '1')
conf_data.set('UNIXCONN', '1')
conf_data.set('IPv6', build_ipv6)
conf_data.set('CLIENTIDS', '1') # XXX
conf_data.set('BIGREQS', '1')
conf_data.set('COMPOSITE', '1')
conf_data.set('DAMAGE', '1')
conf_data.set('DBE', '1')
conf_data.set('DPMSExtension', '1')
conf_data.set('DRI2', build_dri2)
conf_data.set('DRI3', build_dri3)
conf_data.set_quoted('DRI_DRIVER_PATH', dri_dep.get_pkgconfig_variable('dridriverdir'))
conf_data.set('HAS_SHM', '1')
conf_data.set('MITSHM', build_mitshm)
conf_data.set('PANORAMIX', '1')
conf_data.set('PRESENT', '1')
conf_data.set('RANDR', '1')
conf_data.set('RES', build_res)
conf_data.set('RENDER', '1')
conf_data.set('SCREENSAVER', build_screensaver)
conf_data.set('SHAPE', '1')
conf_data.set('XACE', build_xace)
conf_data.set('XCMISC', '1')
conf_data.set('XCSECURITY', build_xsecurity)
conf_data.set('XDMCP', get_option('xdmcp'))
conf_data.set('XF86BIGFONT', build_xf86bigfont)
conf_data.set('XF86DRI', build_dri1)
conf_data.set('XF86VIDMODE', '1')
conf_data.set('XFIXES ', '1')
conf_data.set('XINERAMA', build_xinerama)
conf_data.set('XINPUT', '1')
conf_data.set('XRECORD', '1')
conf_data.set('XSELINUX', build_xselinux)
conf_data.set('XSYNC', '1')
conf_data.set('XTEST', '1')
conf_data.set('XV', build_xv)
conf_data.set('XvExtension', build_xv)
conf_data.set('XvMCExtension', build_xv)
conf_data.set('HAVE_SHA1_IN_LIBNETTLE', '1') # XXX
conf_data.set_quoted('XVENDORNAME', get_option('vendor_name'))
conf_data.set_quoted('XVENDORNAMESHORT', get_option('vendor_name_short'))
conf_data.set_quoted('__VENDORDWEBSUPPORT__', get_option('vendor_web'))
conf_data.set_quoted('OSVENDOR', get_option('os_vendor'))
configure_file(output : 'dix-config.h',
configuration : conf_data)
version_split = meson.project_version().split('.')
major = version_split[0].to_int()
minor = version_split[1].to_int()
patch = version_split[2].to_int()
subpatch = version_split[3].to_int()
release = major * 10000000 + minor * 100000 + patch * 1000 + subpatch
version_data = configuration_data()
version_data.set('VENDOR_RELEASE', '@0@'.format(release))
version_data.set_quoted('VENDOR_NAME', get_option('vendor_name'))
version_data.set_quoted('VENDOR_NAME_SHORT', get_option('vendor_name_short'))
version_data.set_quoted('VENDOR_WEB', get_option('vendor_web'))
configure_file(output : 'version-config.h',
configuration : version_data)
xkb_data = configuration_data()
xkb_data.set_quoted('XKB_BIN_DIRECTORY', join_paths(get_option('prefix'), get_option('bindir')))
xkb_data.set_quoted('XKB_BASE_DIRECTORY', xkb_dir)
xkb_data.set_quoted('XKB_DFLT_RULES', get_option('xkb_default_rules'))
xkb_data.set_quoted('XKB_DFLT_MODEL', get_option('xkb_default_model'))
xkb_data.set_quoted('XKB_DFLT_LAYOUT', get_option('xkb_default_layout'))
xkb_data.set_quoted('XKB_DFLT_VARIANT', get_option('xkb_default_variant'))
xkb_data.set_quoted('XKB_DFLT_OPTIONS', get_option('xkb_default_options'))
xkb_data.set_quoted('XKM_OUTPUT_DIR', xkb_output_dir)
configure_file(output : 'xkb-config.h',
configuration : xkb_data)
xorg_data = configuration_data()
xorg_data.set_quoted('XORG_BIN_DIRECTORY', get_option('bindir'))
xorg_data.set('XORG_VERSION_CURRENT', release)
xorg_data.set_quoted('XF86CONFIGFILE', 'xorg.conf')
xorg_data.set_quoted('XCONFIGFILE', join_paths(get_option('sysconfdir'), 'xorg.conf'))
xorg_data.set_quoted('XCONFIGDIR', 'xorg.conf.d')
xorg_data.set_quoted('DEFAULT_XDG_DATA_HOME', '.local/share')
xorg_data.set_quoted('DEFAULT_XDG_DATA_HOME_LOGDIR', 'xorg')
xorg_data.set_quoted('DEFAULT_LOGDIR', log_dir)
xorg_data.set_quoted('DEFAULT_LOGPREFIX', 'Xorg.')
xorg_data.set_quoted('FALLBACK_INPUT_DRIVER', 'libinput')
xorg_data.set_quoted('DEFAULT_MODULE_PATH', join_paths(get_option('prefix'), module_dir))
xorg_data.set_quoted('DEFAULT_LIBRARY_PATH', get_option('libdir'))
xorg_data.set_quoted('__XSERVERNAME__', 'Xorg')
xorg_data.set('XSERVER_LIBPCIACCESS', get_option('pciaccess'))
xorg_data.set_quoted('PCI_TXT_IDS_PATH', '')
xorg_data.set('XSERVER_PLATFORM_BUS', build_udev)
xorg_data.set('WSCONS_SUPPORT', host_machine.system() == 'netbsd' or host_machine.system() == 'openbsd')
if host_machine.system() == 'freebsd' or host_machine.system() == 'dragonflybsd'
if host_machine.cpu_family() == 'x86' or host_machine.cpu_family() == 'x86_64'
xorg_data.set('USE_DEV_IO', true)
endif
# XXX: Add link to libio on alpha
elif host_machine.system() == 'netbsd'
# XXX: USE_ALPHA_PIO
# XXX: Add link to libi386
if host_machine.cpu_family() == 'x86' or host_machine.cpu_family() == 'x86_64'
xorg_data.set('USE_I386_IOPL', true)
endif
elif host_machine.system() == 'openbsd'
# XXX: Add link to libi386, libamd64
if host_machine.cpu_family() == 'x86'
xorg_data.set('USE_I386_IOPL', true)
endif
if host_machine.cpu_family() == 'x86_64'
xorg_data.set('USE_AMD64_IOPL', true)
endif
endif
configure_file(output : 'xorg-config.h',
input : 'xorg-config.h.meson.in',
configuration : xorg_data)
if build_xorg
install_data(
[
'XIstubs.h',
'Xprintf.h',
'callback.h',
'client.h',
'closestr.h',
'closure.h',
'colormap.h',
'colormapst.h',
'hotplug.h',
'cursor.h',
'cursorstr.h',
'dix.h',
'dixaccess.h',
'dixevents.h',
'dixfont.h',
'dixfontstr.h',
'dixgrabs.h',
'dixstruct.h',
'events.h',
'exevents.h',
'extension.h',
'extinit.h',
'extnsionst.h',
'gc.h',
'gcstruct.h',
'globals.h',
'glx_extinit.h',
'input.h',
'inputstr.h',
'list.h',
'misc.h',
'miscstruct.h',
'opaque.h',
'nonsdk_extinit.h',
'optionstr.h',
'os.h',
'pixmap.h',
'pixmapstr.h',
'privates.h',
'property.h',
'propertyst.h',
'ptrveloc.h',
'region.h',
'regionstr.h',
'registry.h',
'resource.h',
'rgb.h',
'screenint.h',
'scrnintstr.h',
'selection.h',
'servermd.h',
'site.h',
'validate.h',
'displaymode.h',
'window.h',
'windowstr.h',
'xkbfile.h',
'xkbsrv.h',
'xkbstr.h',
'xkbrules.h',
'xserver_poll.h',
'xserver-properties.h',
],
install_dir: xorgsdkdir,
)
endif

View File

@ -0,0 +1,151 @@
/* xorg-config.h.in: not at all generated. -*- c -*-
*
* This file differs from xorg-server.h.in in that -server is installed
* with the rest of the SDK for external drivers/modules to use, whereas
* -config is for internal use only (i.e. building the DDX).
*
*/
#ifndef _XORG_CONFIG_H_
#define _XORG_CONFIG_H_
#include <dix-config.h>
#include <xkb-config.h>
/* Building Xorg server. */
#mesondefine XORGSERVER
/* Current X.Org version. */
#mesondefine XORG_VERSION_CURRENT
/* Name of X server. */
#mesondefine __XSERVERNAME__
/* URL to go to for support. */
#mesondefine __VENDORDWEBSUPPORT__
/* Built-in output drivers. */
#mesondefine DRIVERS
/* Built-in input drivers. */
#mesondefine IDRIVERS
/* Path to configuration file. */
#mesondefine XF86CONFIGFILE
/* Path to configuration file. */
#mesondefine XCONFIGFILE
/* Name of configuration directory. */
#mesondefine XCONFIGDIR
/* Path to loadable modules. */
#mesondefine DEFAULT_MODULE_PATH
/* Path to installed libraries. */
#mesondefine DEFAULT_LIBRARY_PATH
/* Default log location */
#mesondefine DEFAULT_LOGDIR
/* Default logfile prefix */
#mesondefine DEFAULT_LOGPREFIX
/* Default XDG_DATA dir under HOME */
#mesondefine DEFAULT_XDG_DATA_HOME
/* Default log dir under XDG_DATA_HOME */
#mesondefine DEFAULT_XDG_DATA_HOME_LOGDIR
/* Building DRI-capable DDX. */
#mesondefine XF86DRI
/* Build DRI2 extension */
#mesondefine DRI2
/* Define to 1 if you have the <stropts.h> header file. */
#mesondefine HAVE_STROPTS_H
/* Define to 1 if you have the <sys/kd.h> header file. */
#mesondefine HAVE_SYS_KD_H
/* Define to 1 if you have the <sys/vt.h> header file. */
#mesondefine HAVE_SYS_VT_H
/* Define to 1 if you have the `walkcontext' function (used on Solaris for
xorg_backtrace in hw/xfree86/common/xf86Events.c */
#mesondefine HAVE_WALKCONTEXT
/* Building vgahw module */
#mesondefine WITH_VGAHW
/* NetBSD PIO alpha IO */
#mesondefine USE_ALPHA_PIO
/* BSD AMD64 iopl */
#mesondefine USE_AMD64_IOPL
/* BSD /dev/io */
#mesondefine USE_DEV_IO
/* BSD i386 iopl */
#mesondefine USE_I386_IOPL
/* System is BSD-like */
#mesondefine CSRG_BASED
/* System has PC console */
#mesondefine PCCONS_SUPPORT
/* System has PCVT console */
#mesondefine PCVT_SUPPORT
/* System has syscons console */
#mesondefine SYSCONS_SUPPORT
/* System has wscons console */
#mesondefine WSCONS_SUPPORT
/* System has /dev/xf86 aperture driver */
#mesondefine HAS_APERTURE_DRV
/* Has backtrace support */
#mesondefine HAVE_BACKTRACE
/* Name of the period field in struct kbd_repeat */
#mesondefine LNX_KBD_PERIOD_NAME
/* Have execinfo.h */
#mesondefine HAVE_EXECINFO_H
/* Define to 1 if you have the <sys/mkdev.h> header file. */
#mesondefine HAVE_SYS_MKDEV_H
/* Path to text files containing PCI IDs */
#mesondefine PCI_TXT_IDS_PATH
/* Build with libdrm support */
#mesondefine WITH_LIBDRM
/* Use libpciaccess */
#mesondefine XSERVER_LIBPCIACCESS
/* Have setugid */
#mesondefine HAVE_ISSETUGID
/* Have getresuid */
#mesondefine HAVE_GETRESUID
/* Have X server platform bus support */
#mesondefine XSERVER_PLATFORM_BUS
/* Define to 1 if you have the `seteuid' function. */
#mesondefine HAVE_SETEUID
/* Support APM/ACPI power management in the server */
#mesondefine XF86PM
/* Fallback input driver if the assigned driver fails */
#mesondefine FALLBACK_INPUT_DRIVER
#endif /* _XORG_CONFIG_H_ */

361
meson.build Normal file
View File

@ -0,0 +1,361 @@
project('xserver', 'c',
default_options: ['buildtype=debugoptimized'],
version: '1.19.99.1',
meson_version: '>= 0.40.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')
# Quiet some EXA warnings.
add_global_arguments('-Wno-discarded-qualifiers', language : 'c')
xproto_dep = dependency('xproto', version: '>= 7.0.31')
randrproto_dep = dependency('randrproto', version: '>= 1.5.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')
dri2proto_dep = dependency('dri2proto', version: '>= 2.8')
dri3proto_dep = dependency('dri3proto', version: '>= 1.0')
xineramaproto_dep = dependency('xineramaproto')
xf86bigfontproto_dep = dependency('xf86bigfontproto', version: '>= 1.2.0')
xf86dgaproto_dep = dependency('xf86dgaproto', version: '>= 2.0.99.1')
xf86vidmodeproto_dep = dependency('xf86vidmodeproto', version: '>= 2.2.99.1')
windowswmproto_dep = dependency('windowswmproto', required: false)
applewmproto_dep = dependency('applewmproto', version: '>= 1.4', required: false)
xshmfence_dep = dependency('xshmfence', version: '>= 1.1')
pixman_dep = dependency('pixman-1')
libbsd_dep = dependency('libbsd', required: false)
xkbfile_dep = dependency('xkbfile')
xfont2_dep = dependency('xfont2', version: '>= 2.0')
nettle_dep = dependency('nettle', required: false)
dbus_required = get_option('systemd_logind') == 'yes'
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 = join_paths(get_option('prefix'), 'share/X11/xkb')
endif
xkb_output_dir = get_option('xkb_output_dir')
if xkb_output_dir == ''
xkb_output_dir = join_paths(get_option('prefix'), 'share/X11/xkb/compiled')
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 = 'no'
endif
build_dbus = dbus_dep.found()
if get_option('systemd_logind') == 'auto'
build_systemd_logind = build_udev and build_dbus
else
build_systemd_logind = get_option('systemd_logind') == 'yes'
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') == 'yes'
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') != 'no'
xwayland_required = get_option('xwayland') == 'yes'
xwayland_dep = [
dependency('wayland-client', version: '>= 1.3.0', required: xwayland_required),
dependency('wayland-protocols', version: '>= 1.1.0', required: xwayland_required),
dependency('libdrm', version: '>= 2.3.1', 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') != 'no'
xnest_required = get_option('xnest') == 'yes'
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
# XXX: Finish these.
build_xquartz = false
build_xwin = false
if get_option('ipv6') == 'auto'
build_ipv6 = cc.has_function('getaddrinfo')
else
build_ipv6 = get_option('ipv6') == 'yes'
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 == 'yes'
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
udev_dep = []
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
bulid_wayland = false
if glamor_option == 'auto'
build_glamor = build_xorg or build_wayland
else
build_glamor = get_option('glamor') == 'yes'
endif
gbm_dep = []
if build_glamor
gbm_dep = dependency('gbm', version: '>= 10.2', required: false)
if gbm_dep.found()
gbm_linear_dep = dependency('gbm', version: '>= 10.6', required: false)
endif
endif
# XXX: Add more sha1 options, because Linux is about choice
sha1_dep = nettle_dep
xdmcp_dep = ''
if get_option('xdmcp')
xdmcp_dep = dependency('xdmcp')
endif
build_glx = get_option('glx')
# XXX: Allow configuration of these.
build_apm = false
build_acpi = false
build_dri1 = true
build_dri2 = true
build_dri3 = true
build_dpms = true
build_mitshm = true
build_res = true
build_screensaver = true
build_xace = true
build_xsecurity = true
build_xf86bigfont = true
build_xinerama = true
build_xselinux = false
build_xv = true
build_dga = false
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',
)
serverconfigdir = join_paths(get_option('libdir'), '/xorg')
# 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_dri3,
libxserver_randr,
libxserver_miext_damage,
libxserver_render,
libxserver_present,
libxserver_xext,
libxserver_miext_sync,
libxserver_xfixes,
libxserver_xi,
libxserver_xkb,
libxserver_record,
libxserver_os,
]
subdir('hw')

46
meson_options.txt Normal file
View File

@ -0,0 +1,46 @@
option('xorg', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto',
description: 'Enable Xorg X Server')
option('xephyr', type: 'boolean', value: false,
description: 'Enable Xephyr nexted X server')
option('xwayland', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto',
description: 'Enable XWayland X server')
option('glamor', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto',
description: 'Enable glamor (default yes for Xorg/Xwayland builds)')
option('xnest', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto',
description: 'Enable Xnest nested X server')
option('dmx', type: 'boolean', value: false,
description: 'Enable DMX nested X server')
option('log_dir', type: 'string')
option('module_dir', type: 'string',
description: 'X.Org modules directory')
option('glx', type: 'boolean', value: true)
option('xdmcp', type: 'boolean', value: true)
option('xdm-auth-1', type: 'boolean', value: true)
option('ipv6', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto')
option('xkb_dir', type: 'string')
option('xkb_output_dir', type: 'string')
option('xkb_default_rules', type: 'string', value: 'evdev')
option('xkb_default_model', type: 'string', value: 'pc105')
option('xkb_default_layout', type: 'string', value: 'us')
option('xkb_default_variant', type: 'string')
option('xkb_default_options', type: 'string')
option('vendor_name', type: 'string', value: 'The X.Org Foundation')
option('vendor_name_short', type: 'string', value: 'X.Org')
option('vendor_web', type: 'string', value: 'http://wiki.x.org')
option('os_vendor', type: 'string', value: '')
option('int10', type: 'combo', choices: ['stub', 'x86emu', 'vm86', 'auto', 'disabled'],
value: 'auto',
description: 'Xorg int10 backend (default: usually x86emu)')
option('pciaccess', type: 'boolean', value: 'true',
description: 'Xorg pciaccess support')
option('udev', type: 'boolean', value: 'true')
option('hal', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto',
description: 'Enable HAL integration')
option('systemd_logind', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto',
description: 'Enable systemd-logind integration')

39
mi/meson.build Normal file
View File

@ -0,0 +1,39 @@
srcs_mi = [
'miarc.c',
'mibitblt.c',
'micmap.c',
'micopy.c',
'midash.c',
'midispcur.c',
'mieq.c',
'miexpose.c',
'mifillarc.c',
'mifillrct.c',
'migc.c',
'miglblt.c',
'mioverlay.c',
'mipointer.c',
'mipoly.c',
'mipolypnt.c',
'mipolyrect.c',
'mipolyseg.c',
'mipolytext.c',
'mipushpxl.c',
'miscrinit.c',
'misprite.c',
'mivaltree.c',
'miwideline.c',
'miwindow.c',
'mizerarc.c',
'mizerclip.c',
'mizerline.c',
]
libxserver_mi = static_library('libxserver_mi',
srcs_mi,
include_directories: inc,
dependencies: [
common_dep,
m_dep,
],
)

9
miext/damage/meson.build Normal file
View File

@ -0,0 +1,9 @@
srcs_miext_damage = [
'damage.c',
]
libxserver_miext_damage = static_library('libxserver_miext_damage',
srcs_miext_damage,
include_directories: inc,
dependencies: common_dep,
)

32
miext/shadow/meson.build Normal file
View File

@ -0,0 +1,32 @@
srcs_miext_shadow = [
'shadow.c',
'sh3224.c',
'shafb4.c',
'shafb8.c',
'shiplan2p4.c',
'shiplan2p8.c',
'shpacked.c',
'shplanar8.c',
'shplanar.c',
'shrot16pack_180.c',
'shrot16pack_270.c',
'shrot16pack_270YX.c',
'shrot16pack_90.c',
'shrot16pack_90YX.c',
'shrot16pack.c',
'shrot32pack_180.c',
'shrot32pack_270.c',
'shrot32pack_90.c',
'shrot32pack.c',
'shrot8pack_180.c',
'shrot8pack_270.c',
'shrot8pack_90.c',
'shrot8pack.c',
'shrotate.c',
]
libxserver_miext_shadow = static_library('libxserver_miext_shadow',
srcs_miext_shadow,
include_directories: inc,
dependencies: common_dep,
)

17
miext/sync/meson.build Normal file
View File

@ -0,0 +1,17 @@
srcs_miext_sync = [
'misync.c',
'misyncfd.c',
]
if build_dri3
srcs_miext_sync += 'misyncshm.c'
endif
libxserver_miext_sync = static_library('libxserver_miext_sync',
srcs_miext_sync,
include_directories: inc,
dependencies: [
common_dep,
xshmfence_dep,
],
)

65
os/meson.build Normal file
View File

@ -0,0 +1,65 @@
srcs_os = [
'WaitFor.c',
'access.c',
'auth.c',
'backtrace.c',
'client.c',
'connection.c',
'inputthread.c',
'io.c',
'mitauth.c',
'oscolor.c',
'osinit.c',
'ospoll.c',
'utils.c',
'xdmauth.c',
'xsha1.c',
'xstrans.c',
'xprintf.c',
'log.c',
]
# Wrapper code for missing C library functions
if not cc.has_function('reallocarray')
srcs_os += 'reallocarray.c'
endif
if not cc.has_function('strcasecmp')
srcs_os += 'strcasecmp.c'
endif
if not cc.has_function('strcasestr')
srcs_os += 'strcasestr.c'
endif
if not cc.has_function('strlcat')
srcs_os += 'strlcat.c'
endif
if not cc.has_function('strlcpy')
srcs_os += 'strlcpy.c'
endif
if not cc.has_function('strndup')
srcs_os += 'strndup.c'
endif
if not cc.has_function('timingsafe_memcmp')
srcs_os += 'timingsafe_memcmp.c'
endif
if cc.has_function('poll')
srcs_os += 'xserver_poll.c'
endif
if cc.has_function('sigaction')
srcs_os += 'busfault.c'
endif
if get_option('xdmcp')
srcs_os += 'xdmcp.c'
endif
libxserver_os = static_library('libxserver_os',
srcs_os,
include_directories: inc,
dependencies: [
common_dep,
dl_dep,
sha1_dep,
dependency('xau')
],
)

19
present/meson.build Normal file
View File

@ -0,0 +1,19 @@
srcs_present = [
'present.c',
'present_event.c',
'present_fake.c',
'present_fence.c',
'present_notify.c',
'present_request.c',
'present_screen.c',
]
libxserver_present = static_library('libxserver_present',
srcs_present,
include_directories: inc,
dependencies: [
common_dep,
dependency('presentproto', version: '>= 1.0')
],
c_args: '-DHAVE_XORG_CONFIG_H'
)

5
pseudoramiX/meson.build Normal file
View File

@ -0,0 +1,5 @@
libxserver_pseudoramix = static_library('libxserver_pseudoramiX',
'pseudoramiX.c',
include_directories: inc,
dependencies: common_dep,
)

26
randr/meson.build Normal file
View File

@ -0,0 +1,26 @@
srcs_randr = [
'randr.c',
'rrcrtc.c',
'rrdispatch.c',
'rrinfo.c',
'rrmode.c',
'rrmonitor.c',
'rroutput.c',
'rrpointer.c',
'rrproperty.c',
'rrprovider.c',
'rrproviderproperty.c',
'rrscreen.c',
'rrsdispatch.c',
'rrtransform.c',
]
if build_xinerama
srcs_randr += 'rrxinerama.c'
endif
libxserver_randr = static_library('libxserver_randr',
srcs_randr,
include_directories: inc,
dependencies: common_dep,
)

10
record/meson.build Normal file
View File

@ -0,0 +1,10 @@
srcs_record = [
'record.c',
'set.c',
]
libxserver_record = static_library('libxserver_record',
srcs_record,
include_directories: inc,
dependencies: common_dep,
)

19
render/meson.build Normal file
View File

@ -0,0 +1,19 @@
srcs_render = [
'animcur.c',
'filter.c',
'glyph.c',
'matrix.c',
'miindex.c',
'mipict.c',
'mirect.c',
'mitrap.c',
'mitri.c',
'picture.c',
'render.c',
]
libxserver_render = static_library('libxserver_render',
srcs_render,
include_directories: inc,
dependencies: common_dep,
)

13
xfixes/meson.build Normal file
View File

@ -0,0 +1,13 @@
srcs_xfixes = [
'cursor.c',
'region.c',
'saveset.c',
'select.c',
'xfixes.c',
]
libxserver_xfixes = static_library('libxserver_xfixes',
srcs_xfixes,
include_directories: inc,
dependencies: common_dep,
)

42
xkb/meson.build Normal file
View File

@ -0,0 +1,42 @@
srcs_xkb = [
'ddxBeep.c',
'ddxCtrls.c',
'ddxLEDs.c',
'ddxLoad.c',
'maprules.c',
'xkmread.c',
'xkbtext.c',
'xkbfmisc.c',
'xkbout.c',
'xkb.c',
'xkbUtils.c',
'xkbEvents.c',
'xkbAccessX.c',
'xkbSwap.c',
'xkbLEDs.c',
'xkbInit.c',
'xkbActions.c',
'xkbPrKeyEv.c',
'XKBMisc.c',
'XKBAlloc.c',
'XKBGAlloc.c',
'XKBMAlloc.c',
]
libxserver_xkb = static_library('libxserver_xkb',
srcs_xkb,
include_directories: inc,
dependencies: common_dep,
)
srcs_xkb_stubs = [
'ddxKillSrv.c',
'ddxPrivate.c',
'ddxVT.c',
]
libxserver_xkb_stubs = static_library('libxserver_xkb_stubs',
srcs_xkb_stubs,
include_directories: inc,
dependencies: common_dep,
)