xref: /OK3568_Linux_fs/external/xserver/hw/xfree86/meson.build (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunxorg_inc = include_directories(
2*4882a593Smuzhiyun    'common',
3*4882a593Smuzhiyun    'ddc',
4*4882a593Smuzhiyun    'dri2',
5*4882a593Smuzhiyun    'i2c',
6*4882a593Smuzhiyun    'int10',
7*4882a593Smuzhiyun    'loader',
8*4882a593Smuzhiyun    'modes',
9*4882a593Smuzhiyun    'os-support',
10*4882a593Smuzhiyun    'os-support/bus',
11*4882a593Smuzhiyun    'parser',
12*4882a593Smuzhiyun    'ramdac',
13*4882a593Smuzhiyun    'vbe',
14*4882a593Smuzhiyun    'vgahw',
15*4882a593Smuzhiyun)
16*4882a593Smuzhiyun
17*4882a593Smuzhiyunxorg_c_args = []
18*4882a593Smuzhiyunxorg_c_args += '-DHAVE_XORG_CONFIG_H'
19*4882a593Smuzhiyunxorg_c_args += '-DXORG_NO_SDKSYMS'
20*4882a593Smuzhiyun
21*4882a593Smuzhiyunpciaccess_dep = []
22*4882a593Smuzhiyunif get_option('pciaccess')
23*4882a593Smuzhiyun    pciaccess_dep = dependency('pciaccess', version: '>= 0.12.901')
24*4882a593Smuzhiyunendif
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun# subdirs for convenience libraries statically linked into Xorg
27*4882a593Smuzhiyunsubdir('common')
28*4882a593Smuzhiyunsubdir('ddc')
29*4882a593Smuzhiyunif build_dri1
30*4882a593Smuzhiyun    subdir('dri')
31*4882a593Smuzhiyunendif
32*4882a593Smuzhiyunif build_dri2
33*4882a593Smuzhiyun    subdir('dri2')
34*4882a593Smuzhiyunendif
35*4882a593Smuzhiyunsubdir('i2c')
36*4882a593Smuzhiyunsubdir('loader')
37*4882a593Smuzhiyunsubdir('modes')
38*4882a593Smuzhiyunsubdir('os-support')
39*4882a593Smuzhiyunsubdir('parser')
40*4882a593Smuzhiyunsubdir('ramdac')
41*4882a593Smuzhiyunsubdir('xkb')
42*4882a593Smuzhiyun
43*4882a593Smuzhiyunsrcs_xorg = [
44*4882a593Smuzhiyun    '../../mi/miinitext.c'
45*4882a593Smuzhiyun]
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun# Extract all the objects so that all symbols get brought into the
48*4882a593Smuzhiyun# server.  This prevents us from needing a global table of all symbols
49*4882a593Smuzhiyun# that should be exported to Xorg modules, at the expense of all
50*4882a593Smuzhiyun# symbols being included and public
51*4882a593Smuzhiyun
52*4882a593Smuzhiyunxorg_link = [
53*4882a593Smuzhiyun    libxserver,
54*4882a593Smuzhiyun    libglxvnd,
55*4882a593Smuzhiyun    xorg_common,
56*4882a593Smuzhiyun    xorg_loader,
57*4882a593Smuzhiyun    xorg_ddc,
58*4882a593Smuzhiyun    xorg_xkb,
59*4882a593Smuzhiyun    xorg_i2c,
60*4882a593Smuzhiyun    xorg_modes,
61*4882a593Smuzhiyun    xorg_os_support,
62*4882a593Smuzhiyun    xorg_parser,
63*4882a593Smuzhiyun    xorg_ramdac,
64*4882a593Smuzhiyun    libxserver_xext_vidmode,
65*4882a593Smuzhiyun    libxserver_main,
66*4882a593Smuzhiyun    libxserver_config,
67*4882a593Smuzhiyun]
68*4882a593Smuzhiyunif build_dri1
69*4882a593Smuzhiyun    xorg_link += xorg_dri
70*4882a593Smuzhiyunendif
71*4882a593Smuzhiyunif build_dri2
72*4882a593Smuzhiyun    xorg_link += xorg_dri2
73*4882a593Smuzhiyunendif
74*4882a593Smuzhiyun
75*4882a593Smuzhiyunif host_machine.system() == 'cygwin' or host_machine.system() == 'windows'
76*4882a593Smuzhiyun    linker_export_flags = '-Wl,--export-all-symbols'
77*4882a593Smuzhiyunelse
78*4882a593Smuzhiyun    linker_export_flags = '-Wl,--export-dynamic'
79*4882a593Smuzhiyunendif
80*4882a593Smuzhiyun
81*4882a593Smuzhiyunxorg_deps = [
82*4882a593Smuzhiyun    pixman_dep,
83*4882a593Smuzhiyun    m_dep,
84*4882a593Smuzhiyun    dl_dep,
85*4882a593Smuzhiyun    pciaccess_dep,
86*4882a593Smuzhiyun    sha1_dep,
87*4882a593Smuzhiyun    dependency('xau'),
88*4882a593Smuzhiyun    xdmcp_dep,
89*4882a593Smuzhiyun    xfont2_dep,
90*4882a593Smuzhiyun    xshmfence_dep,
91*4882a593Smuzhiyun    config_dep,
92*4882a593Smuzhiyun    libdrm_dep,
93*4882a593Smuzhiyun]
94*4882a593Smuzhiyun
95*4882a593Smuzhiyunif get_option('suid_wrapper')
96*4882a593Smuzhiyun    xorg_install_dir = get_option('libexecdir')
97*4882a593Smuzhiyunelse
98*4882a593Smuzhiyun    xorg_install_dir = get_option('bindir')
99*4882a593Smuzhiyunendif
100*4882a593Smuzhiyun
101*4882a593Smuzhiyune = executable(
102*4882a593Smuzhiyun    'Xorg',
103*4882a593Smuzhiyun    srcs_xorg,
104*4882a593Smuzhiyun    include_directories: [inc, xorg_inc],
105*4882a593Smuzhiyun    link_whole: xorg_link,
106*4882a593Smuzhiyun    dependencies: xorg_deps,
107*4882a593Smuzhiyun    link_args: linker_export_flags,
108*4882a593Smuzhiyun    c_args: xorg_c_args,
109*4882a593Smuzhiyun    install: true,
110*4882a593Smuzhiyun    install_dir: xorg_install_dir,
111*4882a593Smuzhiyun    implib: true,
112*4882a593Smuzhiyun)
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun# subdirs for modules loadable by Xorg
115*4882a593Smuzhiyunsubdir('dixmods')
116*4882a593Smuzhiyunsubdir('exa')
117*4882a593Smuzhiyunsubdir('fbdevhw')
118*4882a593Smuzhiyunif gbm_dep.found()
119*4882a593Smuzhiyun    subdir('glamor_egl')
120*4882a593Smuzhiyunendif
121*4882a593Smuzhiyunif int10 != 'false'
122*4882a593Smuzhiyun    if int10 == 'x86emu'
123*4882a593Smuzhiyun        subdir('x86emu')
124*4882a593Smuzhiyun    endif
125*4882a593Smuzhiyun    subdir('int10')
126*4882a593Smuzhiyunendif
127*4882a593Smuzhiyunsubdir('shadowfb')
128*4882a593Smuzhiyunif build_vbe
129*4882a593Smuzhiyun    subdir('vbe')
130*4882a593Smuzhiyunendif
131*4882a593Smuzhiyunif build_vgahw
132*4882a593Smuzhiyun    subdir('vgahw')
133*4882a593Smuzhiyunendif
134*4882a593Smuzhiyunif build_modesetting
135*4882a593Smuzhiyun   subdir('drivers/modesetting')
136*4882a593Smuzhiyunendif
137*4882a593Smuzhiyun
138*4882a593Smuzhiyunif get_option('suid_wrapper')
139*4882a593Smuzhiyun    executable('Xorg.wrap',
140*4882a593Smuzhiyun        'xorg-wrapper.c',
141*4882a593Smuzhiyun        include_directories: [inc, xorg_inc],
142*4882a593Smuzhiyun        dependencies: xorg_deps,
143*4882a593Smuzhiyun        c_args: xorg_c_args,
144*4882a593Smuzhiyun        install: true,
145*4882a593Smuzhiyun        install_dir: get_option('libexecdir'),
146*4882a593Smuzhiyun        # install_mode: ['r-sr-xr-x', 0, 0],
147*4882a593Smuzhiyun    )
148*4882a593Smuzhiyun    configure_file(
149*4882a593Smuzhiyun        input: 'Xorg.sh.in',
150*4882a593Smuzhiyun        output: 'Xorg',
151*4882a593Smuzhiyun        configuration: conf_data,
152*4882a593Smuzhiyun        install_dir: join_paths(get_option('prefix'), get_option('bindir')),
153*4882a593Smuzhiyun    )
154*4882a593Smuzhiyunendif
155*4882a593Smuzhiyun
156*4882a593Smuzhiyunexecutable('cvt',
157*4882a593Smuzhiyun    ['utils/cvt/cvt.c', 'modes/xf86cvt.c'],
158*4882a593Smuzhiyun    include_directories: [inc, xorg_inc],
159*4882a593Smuzhiyun    dependencies: xorg_deps,
160*4882a593Smuzhiyun    link_with: libxserver_os,
161*4882a593Smuzhiyun    c_args: xorg_c_args,
162*4882a593Smuzhiyun    install: true,
163*4882a593Smuzhiyun)
164*4882a593Smuzhiyun
165*4882a593Smuzhiyunexecutable('gtf',
166*4882a593Smuzhiyun    'utils/gtf/gtf.c',
167*4882a593Smuzhiyun    include_directories: [inc, xorg_inc],
168*4882a593Smuzhiyun    dependencies: xorg_deps,
169*4882a593Smuzhiyun    c_args: xorg_c_args,
170*4882a593Smuzhiyun    install: true,
171*4882a593Smuzhiyun)
172*4882a593Smuzhiyun
173*4882a593Smuzhiyun# For symbol presence testing only
174*4882a593Smuzhiyunxorgserver_lib = shared_library(
175*4882a593Smuzhiyun    'xorgserver',
176*4882a593Smuzhiyun    srcs_xorg,
177*4882a593Smuzhiyun    include_directories: [inc, xorg_inc],
178*4882a593Smuzhiyun    link_whole: xorg_link,
179*4882a593Smuzhiyun    dependencies: xorg_deps,
180*4882a593Smuzhiyun    link_args: linker_export_flags,
181*4882a593Smuzhiyun    c_args: xorg_c_args,
182*4882a593Smuzhiyun    install: false,
183*4882a593Smuzhiyun)
184*4882a593Smuzhiyun
185*4882a593Smuzhiyunxorgserver_dep = declare_dependency(link_with: xorgserver_lib)
186*4882a593Smuzhiyun
187*4882a593Smuzhiyuninstall_man(configure_file(
188*4882a593Smuzhiyun    input: 'man/Xorg.man',
189*4882a593Smuzhiyun    output: 'Xorg.1',
190*4882a593Smuzhiyun    configuration: manpage_config,
191*4882a593Smuzhiyun))
192*4882a593Smuzhiyun
193*4882a593Smuzhiyunif get_option('suid_wrapper')
194*4882a593Smuzhiyun    install_man(configure_file(
195*4882a593Smuzhiyun        input: 'man/Xorg.wrap.man',
196*4882a593Smuzhiyun        output: 'Xorg.wrap.1',
197*4882a593Smuzhiyun        configuration: manpage_config,
198*4882a593Smuzhiyun    ))
199*4882a593Smuzhiyun
200*4882a593Smuzhiyun    install_man(configure_file(
201*4882a593Smuzhiyun        input: 'man/Xwrapper.config.man',
202*4882a593Smuzhiyun        output: 'Xwrapper.config.5',
203*4882a593Smuzhiyun        configuration: manpage_config,
204*4882a593Smuzhiyun    ))
205*4882a593Smuzhiyunendif
206*4882a593Smuzhiyun
207*4882a593Smuzhiyuninstall_man(configure_file(
208*4882a593Smuzhiyun    input: 'man/xorg.conf.man',
209*4882a593Smuzhiyun    output: 'xorg.conf.5',
210*4882a593Smuzhiyun    configuration: manpage_config,
211*4882a593Smuzhiyun))
212*4882a593Smuzhiyun
213*4882a593Smuzhiyuninstall_man(configure_file(
214*4882a593Smuzhiyun    input: 'man/xorg.conf.d.man',
215*4882a593Smuzhiyun    output: 'xorg.conf.d.5',
216*4882a593Smuzhiyun    configuration: manpage_config,
217*4882a593Smuzhiyun))
218*4882a593Smuzhiyun
219*4882a593Smuzhiyuninstall_man(configure_file(
220*4882a593Smuzhiyun    input: 'utils/man/cvt.man',
221*4882a593Smuzhiyun    output: 'cvt.1',
222*4882a593Smuzhiyun    configuration: manpage_config,
223*4882a593Smuzhiyun))
224*4882a593Smuzhiyun
225*4882a593Smuzhiyuninstall_man(configure_file(
226*4882a593Smuzhiyun    input: 'utils/man/gtf.man',
227*4882a593Smuzhiyun    output: 'gtf.1',
228*4882a593Smuzhiyun    configuration: manpage_config,
229*4882a593Smuzhiyun))
230