235 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Meson
		
	
	
	
			
		
		
	
	
			235 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Meson
		
	
	
	
xorg_inc = include_directories(
 | 
						|
    'common',
 | 
						|
    'ddc',
 | 
						|
    'dri2',
 | 
						|
    'i2c',
 | 
						|
    'int10',
 | 
						|
    'loader',
 | 
						|
    'modes',
 | 
						|
    'os-support',
 | 
						|
    'os-support/bus',
 | 
						|
    'parser',
 | 
						|
    'ramdac',
 | 
						|
    '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
 | 
						|
 | 
						|
# subdirs for convenience libraries statically linked into Xorg
 | 
						|
subdir('common')
 | 
						|
subdir('ddc')
 | 
						|
if build_dri1
 | 
						|
    subdir('dri')
 | 
						|
endif
 | 
						|
if build_dri2
 | 
						|
    subdir('dri2')
 | 
						|
endif
 | 
						|
subdir('i2c')
 | 
						|
subdir('loader')
 | 
						|
subdir('modes')
 | 
						|
subdir('os-support')
 | 
						|
subdir('parser')
 | 
						|
subdir('ramdac')
 | 
						|
subdir('xkb')
 | 
						|
 | 
						|
srcs_xorg = [
 | 
						|
    '../../mi/miinitext.c',
 | 
						|
    '../../mi/miinitext.h',
 | 
						|
]
 | 
						|
 | 
						|
# 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,
 | 
						|
    libglxvnd,
 | 
						|
    xorg_common,
 | 
						|
    xorg_loader,
 | 
						|
    xorg_ddc,
 | 
						|
    xorg_xkb,
 | 
						|
    xorg_i2c,
 | 
						|
    xorg_modes,
 | 
						|
    xorg_os_support,
 | 
						|
    xorg_parser,
 | 
						|
    xorg_ramdac,
 | 
						|
    libxserver_fb,
 | 
						|
    libxserver_xext_vidmode,
 | 
						|
    libxserver_main,
 | 
						|
    libxserver_config,
 | 
						|
]
 | 
						|
if build_dri1
 | 
						|
    xorg_link += xorg_dri
 | 
						|
endif
 | 
						|
if build_dri2
 | 
						|
    xorg_link += xorg_dri2
 | 
						|
endif
 | 
						|
 | 
						|
if host_machine.system() == 'windows'
 | 
						|
    linker_export_flags = '-Wl,--export-all-symbols'
 | 
						|
elif host_machine.system() == 'sunos' or host_machine.system() == 'darwin'
 | 
						|
    linker_export_flags = []
 | 
						|
else
 | 
						|
    linker_export_flags = '-Wl,--export-dynamic'
 | 
						|
endif
 | 
						|
 | 
						|
xorg_deps = [
 | 
						|
    pixman_dep,
 | 
						|
    m_dep,
 | 
						|
    dl_dep,
 | 
						|
    pciaccess_dep,
 | 
						|
    sha1_dep,
 | 
						|
    dependency('xau'),
 | 
						|
    xdmcp_dep,
 | 
						|
    xfont2_dep,
 | 
						|
    xshmfence_dep,
 | 
						|
    config_dep,
 | 
						|
    libdrm_dep,
 | 
						|
]
 | 
						|
 | 
						|
if get_option('suid_wrapper')
 | 
						|
    xorg_install_dir = get_option('libexecdir')
 | 
						|
else
 | 
						|
    xorg_install_dir = get_option('bindir')
 | 
						|
endif
 | 
						|
 | 
						|
e = executable(
 | 
						|
    'Xorg',
 | 
						|
    srcs_xorg,
 | 
						|
    include_directories: [inc, xorg_inc],
 | 
						|
    link_whole: xorg_link,
 | 
						|
    dependencies: xorg_deps,
 | 
						|
    link_args: linker_export_flags,
 | 
						|
    c_args: xorg_c_args,
 | 
						|
    install: true,
 | 
						|
    install_dir: xorg_install_dir,
 | 
						|
    implib: true,
 | 
						|
)
 | 
						|
 | 
						|
# subdirs for modules loadable by Xorg
 | 
						|
subdir('dixmods')
 | 
						|
subdir('exa')
 | 
						|
subdir('fbdevhw')
 | 
						|
if gbm_dep.found()
 | 
						|
    subdir('glamor_egl')
 | 
						|
endif
 | 
						|
if int10 != 'false'
 | 
						|
    if int10 == 'x86emu'
 | 
						|
        subdir('x86emu')
 | 
						|
    endif
 | 
						|
    subdir('int10')
 | 
						|
endif
 | 
						|
subdir('shadowfb')
 | 
						|
if build_vgahw
 | 
						|
    subdir('vgahw')
 | 
						|
endif
 | 
						|
if build_modesetting
 | 
						|
   subdir('drivers/modesetting')
 | 
						|
endif
 | 
						|
if get_option('xf86-input-inputtest')
 | 
						|
    subdir('drivers/inputtest')
 | 
						|
endif
 | 
						|
 | 
						|
meson.add_install_script(
 | 
						|
    'sh', '-c',
 | 
						|
    'ln -fs Xorg @0@@1@'.format(
 | 
						|
        '${DESTDIR}',
 | 
						|
        join_paths(get_option('prefix'), get_option('bindir'), 'X')))
 | 
						|
 | 
						|
if get_option('suid_wrapper')
 | 
						|
    executable('Xorg.wrap',
 | 
						|
        'xorg-wrapper.c',
 | 
						|
        include_directories: [inc, xorg_inc],
 | 
						|
        dependencies: xorg_deps,
 | 
						|
        c_args: xorg_c_args,
 | 
						|
        install: true,
 | 
						|
        install_dir: get_option('libexecdir'),
 | 
						|
        install_mode: ['r-sr-xr-x', 0, 0],
 | 
						|
    )
 | 
						|
 | 
						|
    # meson gets confused when there are two targets of the same name
 | 
						|
    # within the same directory, so we use a different intermediate name.
 | 
						|
    xorg_sh = configure_file(
 | 
						|
        input: 'Xorg.sh.in',
 | 
						|
        output: 'Xorg.sh',
 | 
						|
        configuration: conf_data,
 | 
						|
    )
 | 
						|
 | 
						|
    install_data(
 | 
						|
        xorg_sh,
 | 
						|
        install_mode: 'rwxr-xr-x',
 | 
						|
        install_dir: join_paths(get_option('prefix'), get_option('bindir')),
 | 
						|
        rename: ['Xorg']
 | 
						|
    )
 | 
						|
endif
 | 
						|
 | 
						|
executable('gtf',
 | 
						|
    'utils/gtf/gtf.c',
 | 
						|
    include_directories: [inc, xorg_inc],
 | 
						|
    dependencies: xorg_deps,
 | 
						|
    c_args: xorg_c_args,
 | 
						|
    install: true,
 | 
						|
)
 | 
						|
 | 
						|
# For symbol presence testing only
 | 
						|
xorgserver_lib = shared_library(
 | 
						|
    'xorgserver',
 | 
						|
    srcs_xorg,
 | 
						|
    include_directories: [inc, xorg_inc],
 | 
						|
    link_whole: xorg_link,
 | 
						|
    dependencies: xorg_deps,
 | 
						|
    link_args: linker_export_flags,
 | 
						|
    c_args: xorg_c_args,
 | 
						|
    install: false,
 | 
						|
)
 | 
						|
 | 
						|
xorgserver_dep = declare_dependency(link_with: xorgserver_lib)
 | 
						|
 | 
						|
install_man(configure_file(
 | 
						|
    input: 'man/Xorg.man',
 | 
						|
    output: 'Xorg.1',
 | 
						|
    configuration: manpage_config,
 | 
						|
))
 | 
						|
 | 
						|
if get_option('suid_wrapper')
 | 
						|
    install_man(configure_file(
 | 
						|
        input: 'man/Xorg.wrap.man',
 | 
						|
        output: 'Xorg.wrap.1',
 | 
						|
        configuration: manpage_config,
 | 
						|
    ))
 | 
						|
 | 
						|
    install_man(configure_file(
 | 
						|
        input: 'man/Xwrapper.config.man',
 | 
						|
        output: 'Xwrapper.config.5',
 | 
						|
        configuration: manpage_config,
 | 
						|
    ))
 | 
						|
endif
 | 
						|
 | 
						|
install_man(configure_file(
 | 
						|
    input: 'man/xorg.conf.man',
 | 
						|
    output: 'xorg.conf.5',
 | 
						|
    configuration: manpage_config,
 | 
						|
))
 | 
						|
 | 
						|
install_man(configure_file(
 | 
						|
    input: 'man/xorg.conf.d.man',
 | 
						|
    output: 'xorg.conf.d.5',
 | 
						|
    configuration: manpage_config,
 | 
						|
))
 | 
						|
 | 
						|
install_man(configure_file(
 | 
						|
    input: 'utils/man/gtf.man',
 | 
						|
    output: 'gtf.1',
 | 
						|
    configuration: manpage_config,
 | 
						|
))
 | 
						|
 | 
						|
subdir('doc')
 |