meson.build revision 1b5d61b8
11b5d61b8Smrgxorg_inc = include_directories(
21b5d61b8Smrg    'common',
31b5d61b8Smrg    'ddc',
41b5d61b8Smrg    'dri2',
51b5d61b8Smrg    'i2c',
61b5d61b8Smrg    'int10',
71b5d61b8Smrg    'loader',
81b5d61b8Smrg    'modes',
91b5d61b8Smrg    'os-support',
101b5d61b8Smrg    'os-support/bus',
111b5d61b8Smrg    'parser',
121b5d61b8Smrg    'ramdac',
131b5d61b8Smrg    'vbe',
141b5d61b8Smrg    'vgahw',
151b5d61b8Smrg)
161b5d61b8Smrg
171b5d61b8Smrgxorg_c_args = []
181b5d61b8Smrgxorg_c_args += '-DHAVE_XORG_CONFIG_H'
191b5d61b8Smrgxorg_c_args += '-DXORG_NO_SDKSYMS'
201b5d61b8Smrg
211b5d61b8Smrgpciaccess_dep = []
221b5d61b8Smrgif get_option('pciaccess')
231b5d61b8Smrg    pciaccess_dep = dependency('pciaccess', version: '>= 0.12.901')
241b5d61b8Smrgendif
251b5d61b8Smrg
261b5d61b8Smrg# subdirs for convenience libraries statically linked into Xorg
271b5d61b8Smrgsubdir('common')
281b5d61b8Smrgsubdir('ddc')
291b5d61b8Smrgif build_dri1
301b5d61b8Smrg    subdir('dri')
311b5d61b8Smrgendif
321b5d61b8Smrgif build_dri2
331b5d61b8Smrg    subdir('dri2')
341b5d61b8Smrgendif
351b5d61b8Smrgsubdir('i2c')
361b5d61b8Smrgsubdir('loader')
371b5d61b8Smrgsubdir('modes')
381b5d61b8Smrgsubdir('os-support')
391b5d61b8Smrgsubdir('parser')
401b5d61b8Smrgsubdir('ramdac')
411b5d61b8Smrgsubdir('xkb')
421b5d61b8Smrg
431b5d61b8Smrgsrcs_xorg = [
441b5d61b8Smrg    '../../mi/miinitext.c'
451b5d61b8Smrg]
461b5d61b8Smrg
471b5d61b8Smrg# Extract all the objects so that all symbols get brought into the
481b5d61b8Smrg# server.  This prevents us from needing a global table of all symbols
491b5d61b8Smrg# that should be exported to Xorg modules, at the expense of all
501b5d61b8Smrg# symbols being included and public
511b5d61b8Smrg
521b5d61b8Smrgxorg_link = [
531b5d61b8Smrg    libxserver,
541b5d61b8Smrg    libglxvnd,
551b5d61b8Smrg    xorg_common,
561b5d61b8Smrg    xorg_loader,
571b5d61b8Smrg    xorg_ddc,
581b5d61b8Smrg    xorg_xkb,
591b5d61b8Smrg    xorg_i2c,
601b5d61b8Smrg    xorg_modes,
611b5d61b8Smrg    xorg_os_support,
621b5d61b8Smrg    xorg_parser,
631b5d61b8Smrg    xorg_ramdac,
641b5d61b8Smrg    libxserver_xext_vidmode,
651b5d61b8Smrg    libxserver_main,
661b5d61b8Smrg    libxserver_config,
671b5d61b8Smrg]
681b5d61b8Smrgif build_dri1
691b5d61b8Smrg    xorg_link += xorg_dri
701b5d61b8Smrgendif
711b5d61b8Smrgif build_dri2
721b5d61b8Smrg    xorg_link += xorg_dri2
731b5d61b8Smrgendif
741b5d61b8Smrg
751b5d61b8Smrgif host_machine.system() == 'cygwin' or host_machine.system() == 'windows'
761b5d61b8Smrg    linker_export_flags = '-Wl,--export-all-symbols'
771b5d61b8Smrgelse
781b5d61b8Smrg    linker_export_flags = '-Wl,--export-dynamic'
791b5d61b8Smrgendif
801b5d61b8Smrg
811b5d61b8Smrgxorg_deps = [
821b5d61b8Smrg    pixman_dep,
831b5d61b8Smrg    m_dep,
841b5d61b8Smrg    dl_dep,
851b5d61b8Smrg    pciaccess_dep,
861b5d61b8Smrg    sha1_dep,
871b5d61b8Smrg    dependency('xau'),
881b5d61b8Smrg    xdmcp_dep,
891b5d61b8Smrg    xfont2_dep,
901b5d61b8Smrg    xshmfence_dep,
911b5d61b8Smrg    config_dep,
921b5d61b8Smrg    libdrm_dep,
931b5d61b8Smrg]
941b5d61b8Smrg
951b5d61b8Smrgif get_option('suid_wrapper')
961b5d61b8Smrg    xorg_install_dir = get_option('libexecdir')
971b5d61b8Smrgelse
981b5d61b8Smrg    xorg_install_dir = get_option('bindir')
991b5d61b8Smrgendif
1001b5d61b8Smrg
1011b5d61b8Smrge = executable(
1021b5d61b8Smrg    'Xorg',
1031b5d61b8Smrg    srcs_xorg,
1041b5d61b8Smrg    include_directories: [inc, xorg_inc],
1051b5d61b8Smrg    link_whole: xorg_link,
1061b5d61b8Smrg    dependencies: xorg_deps,
1071b5d61b8Smrg    link_args: linker_export_flags,
1081b5d61b8Smrg    c_args: xorg_c_args,
1091b5d61b8Smrg    install: true,
1101b5d61b8Smrg    install_dir: xorg_install_dir,
1111b5d61b8Smrg    implib: true,
1121b5d61b8Smrg)
1131b5d61b8Smrg
1141b5d61b8Smrg# subdirs for modules loadable by Xorg
1151b5d61b8Smrgsubdir('dixmods')
1161b5d61b8Smrgsubdir('exa')
1171b5d61b8Smrgsubdir('fbdevhw')
1181b5d61b8Smrgif gbm_dep.found()
1191b5d61b8Smrg    subdir('glamor_egl')
1201b5d61b8Smrgendif
1211b5d61b8Smrgif int10 != 'false'
1221b5d61b8Smrg    if int10 == 'x86emu'
1231b5d61b8Smrg        subdir('x86emu')
1241b5d61b8Smrg    endif
1251b5d61b8Smrg    subdir('int10')
1261b5d61b8Smrgendif
1271b5d61b8Smrgsubdir('shadowfb')
1281b5d61b8Smrgif build_vbe
1291b5d61b8Smrg    subdir('vbe')
1301b5d61b8Smrgendif
1311b5d61b8Smrgif build_vgahw
1321b5d61b8Smrg    subdir('vgahw')
1331b5d61b8Smrgendif
1341b5d61b8Smrgif build_modesetting
1351b5d61b8Smrg   subdir('drivers/modesetting')
1361b5d61b8Smrgendif
1371b5d61b8Smrg
1381b5d61b8Smrgif get_option('suid_wrapper')
1391b5d61b8Smrg    executable('Xorg.wrap',
1401b5d61b8Smrg        'xorg-wrapper.c',
1411b5d61b8Smrg        include_directories: [inc, xorg_inc],
1421b5d61b8Smrg        dependencies: xorg_deps,
1431b5d61b8Smrg        c_args: xorg_c_args,
1441b5d61b8Smrg        install: true,
1451b5d61b8Smrg        install_dir: get_option('libexecdir'),
1461b5d61b8Smrg        # install_mode: ['r-sr-xr-x', 0, 0],
1471b5d61b8Smrg    )
1481b5d61b8Smrg    configure_file(
1491b5d61b8Smrg        input: 'Xorg.sh.in',
1501b5d61b8Smrg        output: 'Xorg',
1511b5d61b8Smrg        configuration: conf_data,
1521b5d61b8Smrg        install_dir: join_paths(get_option('prefix'), get_option('bindir')),
1531b5d61b8Smrg    )
1541b5d61b8Smrgendif
1551b5d61b8Smrg
1561b5d61b8Smrgexecutable('cvt',
1571b5d61b8Smrg    ['utils/cvt/cvt.c', 'modes/xf86cvt.c'],
1581b5d61b8Smrg    include_directories: [inc, xorg_inc],
1591b5d61b8Smrg    dependencies: xorg_deps,
1601b5d61b8Smrg    link_with: libxserver_os,
1611b5d61b8Smrg    c_args: xorg_c_args,
1621b5d61b8Smrg    install: true,
1631b5d61b8Smrg)
1641b5d61b8Smrg
1651b5d61b8Smrgexecutable('gtf',
1661b5d61b8Smrg    'utils/gtf/gtf.c',
1671b5d61b8Smrg    include_directories: [inc, xorg_inc],
1681b5d61b8Smrg    dependencies: xorg_deps,
1691b5d61b8Smrg    c_args: xorg_c_args,
1701b5d61b8Smrg    install: true,
1711b5d61b8Smrg)
1721b5d61b8Smrg
1731b5d61b8Smrg# For symbol presence testing only
1741b5d61b8Smrgxorgserver_lib = shared_library(
1751b5d61b8Smrg    'xorgserver',
1761b5d61b8Smrg    srcs_xorg,
1771b5d61b8Smrg    include_directories: [inc, xorg_inc],
1781b5d61b8Smrg    link_whole: xorg_link,
1791b5d61b8Smrg    dependencies: xorg_deps,
1801b5d61b8Smrg    link_args: linker_export_flags,
1811b5d61b8Smrg    c_args: xorg_c_args,
1821b5d61b8Smrg    install: false,
1831b5d61b8Smrg)
1841b5d61b8Smrg
1851b5d61b8Smrgxorgserver_dep = declare_dependency(link_with: xorgserver_lib)
1861b5d61b8Smrg
1871b5d61b8Smrginstall_man(configure_file(
1881b5d61b8Smrg    input: 'man/Xorg.man',
1891b5d61b8Smrg    output: 'Xorg.1',
1901b5d61b8Smrg    configuration: manpage_config,
1911b5d61b8Smrg))
1921b5d61b8Smrg
1931b5d61b8Smrgif get_option('suid_wrapper')
1941b5d61b8Smrg    install_man(configure_file(
1951b5d61b8Smrg        input: 'man/Xorg.wrap.man',
1961b5d61b8Smrg        output: 'Xorg.wrap.1',
1971b5d61b8Smrg        configuration: manpage_config,
1981b5d61b8Smrg    ))
1991b5d61b8Smrg
2001b5d61b8Smrg    install_man(configure_file(
2011b5d61b8Smrg        input: 'man/Xwrapper.config.man',
2021b5d61b8Smrg        output: 'Xwrapper.config.5',
2031b5d61b8Smrg        configuration: manpage_config,
2041b5d61b8Smrg    ))
2051b5d61b8Smrgendif
2061b5d61b8Smrg
2071b5d61b8Smrginstall_man(configure_file(
2081b5d61b8Smrg    input: 'man/xorg.conf.man',
2091b5d61b8Smrg    output: 'xorg.conf.5',
2101b5d61b8Smrg    configuration: manpage_config,
2111b5d61b8Smrg))
2121b5d61b8Smrg
2131b5d61b8Smrginstall_man(configure_file(
2141b5d61b8Smrg    input: 'man/xorg.conf.d.man',
2151b5d61b8Smrg    output: 'xorg.conf.d.5',
2161b5d61b8Smrg    configuration: manpage_config,
2171b5d61b8Smrg))
2181b5d61b8Smrg
2191b5d61b8Smrginstall_man(configure_file(
2201b5d61b8Smrg    input: 'utils/man/cvt.man',
2211b5d61b8Smrg    output: 'cvt.1',
2221b5d61b8Smrg    configuration: manpage_config,
2231b5d61b8Smrg))
2241b5d61b8Smrg
2251b5d61b8Smrginstall_man(configure_file(
2261b5d61b8Smrg    input: 'utils/man/gtf.man',
2271b5d61b8Smrg    output: 'gtf.1',
2281b5d61b8Smrg    configuration: manpage_config,
2291b5d61b8Smrg))
230