xref: /OK3568_Linux_fs/external/xserver/hw/xwin/meson.build (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunwindows = import('windows')
2*4882a593Smuzhiyun
3*4882a593Smuzhiyunwindowsdri_dep = dependency('windowsdriproto', required: false)
4*4882a593Smuzhiyun
5*4882a593Smuzhiyunbuild_windowsdri = windowsdri_dep.found()
6*4882a593Smuzhiyun
7*4882a593Smuzhiyunxwin_sys_libs = []
8*4882a593Smuzhiyunxwin_sys_libs += '-ldxguid'
9*4882a593Smuzhiyun
10*4882a593Smuzhiyunif host_machine.system() == 'cygwin'
11*4882a593Smuzhiyun    server_name = 'XWin'
12*4882a593Smuzhiyunelse
13*4882a593Smuzhiyun    server_name = 'Xming'
14*4882a593Smuzhiyun    xwin_sys_libs += ['-lpthread', '-lws2_32']
15*4882a593Smuzhiyunendif
16*4882a593Smuzhiyun
17*4882a593Smuzhiyunxwin_c_args = []
18*4882a593Smuzhiyunxwin_c_args += '-DHAVE_XWIN_CONFIG_H'
19*4882a593Smuzhiyunxwin_c_args += '-Wno-bad-function-cast'
20*4882a593Smuzhiyun
21*4882a593Smuzhiyunsrcs_windows = [
22*4882a593Smuzhiyun    'winclipboardinit.c',
23*4882a593Smuzhiyun    'winclipboardwrappers.c',
24*4882a593Smuzhiyun]
25*4882a593Smuzhiyunsubdir('winclipboard')
26*4882a593Smuzhiyun
27*4882a593Smuzhiyunif build_glx
28*4882a593Smuzhiyun    if build_windowsdri
29*4882a593Smuzhiyun        xwin_c_args += '-DXWIN_WINDOWS_DRI'
30*4882a593Smuzhiyun        subdir('dri')
31*4882a593Smuzhiyun    endif
32*4882a593Smuzhiyun    xwin_c_args += '-DXWIN_GLX_WINDOWS'
33*4882a593Smuzhiyun    xwin_sys_libs += '-lopengl32'
34*4882a593Smuzhiyun    subdir('glx')
35*4882a593Smuzhiyunendif
36*4882a593Smuzhiyun
37*4882a593Smuzhiyunsrcs_windows += [
38*4882a593Smuzhiyun     'winmultiwindowshape.c',
39*4882a593Smuzhiyun     'winmultiwindowwindow.c',
40*4882a593Smuzhiyun     'winmultiwindowwm.c',
41*4882a593Smuzhiyun     'winmultiwindowwndproc.c',
42*4882a593Smuzhiyun     'propertystore.h',
43*4882a593Smuzhiyun     'winSetAppUserModelID.c',
44*4882a593Smuzhiyun]
45*4882a593Smuzhiyunxwin_sys_libs += ['-lshlwapi', '-lole32']
46*4882a593Smuzhiyun
47*4882a593Smuzhiyunsrcs_windows += [
48*4882a593Smuzhiyun     'winrandr.c',
49*4882a593Smuzhiyun]
50*4882a593Smuzhiyun
51*4882a593Smuzhiyunsrcs_windows += [
52*4882a593Smuzhiyun    'InitInput.c',
53*4882a593Smuzhiyun    'InitOutput.c',
54*4882a593Smuzhiyun    'winallpriv.c',
55*4882a593Smuzhiyun    'winauth.c',
56*4882a593Smuzhiyun    'winblock.c',
57*4882a593Smuzhiyun    'wincmap.c',
58*4882a593Smuzhiyun    'winconfig.c',
59*4882a593Smuzhiyun    'wincreatewnd.c',
60*4882a593Smuzhiyun    'wincursor.c',
61*4882a593Smuzhiyun    'windialogs.c',
62*4882a593Smuzhiyun    'winengine.c',
63*4882a593Smuzhiyun    'winerror.c',
64*4882a593Smuzhiyun    'winglobals.c',
65*4882a593Smuzhiyun    'winkeybd.c',
66*4882a593Smuzhiyun    'winkeyhook.c',
67*4882a593Smuzhiyun    'winmisc.c',
68*4882a593Smuzhiyun    'winmonitors.c',
69*4882a593Smuzhiyun    'winmouse.c',
70*4882a593Smuzhiyun    'winmsg.c',
71*4882a593Smuzhiyun    'winmsgwindow.c',
72*4882a593Smuzhiyun    'winmultiwindowclass.c',
73*4882a593Smuzhiyun    'winmultiwindowicons.c',
74*4882a593Smuzhiyun    'winos.c',
75*4882a593Smuzhiyun    'winprefs.c',
76*4882a593Smuzhiyun    'winprocarg.c',
77*4882a593Smuzhiyun    'winscrinit.c',
78*4882a593Smuzhiyun    'winshadddnl.c',
79*4882a593Smuzhiyun    'winshadgdi.c',
80*4882a593Smuzhiyun    'wintaskbar.c',
81*4882a593Smuzhiyun    'wintrayicon.c',
82*4882a593Smuzhiyun    'winvalargs.c',
83*4882a593Smuzhiyun    'winwakeup.c',
84*4882a593Smuzhiyun    'winwindow.c',
85*4882a593Smuzhiyun    'winwndproc.c',
86*4882a593Smuzhiyun    'ddraw.h',
87*4882a593Smuzhiyun    'winconfig.h',
88*4882a593Smuzhiyun    'win.h',
89*4882a593Smuzhiyun    'winglobals.h',
90*4882a593Smuzhiyun    'winkeybd.h',
91*4882a593Smuzhiyun    'winkeynames.h',
92*4882a593Smuzhiyun    'winlayouts.h',
93*4882a593Smuzhiyun    'winmessages.h',
94*4882a593Smuzhiyun    'winmonitors.h',
95*4882a593Smuzhiyun    'winmsg.h',
96*4882a593Smuzhiyun    'winms.h',
97*4882a593Smuzhiyun    'winmultiwindowclass.h',
98*4882a593Smuzhiyun    'winmultiwindowicons.h',
99*4882a593Smuzhiyun    'winprefs.h',
100*4882a593Smuzhiyun    'winresource.h',
101*4882a593Smuzhiyun    'winwindow.h',
102*4882a593Smuzhiyun    'windisplay.c',
103*4882a593Smuzhiyun    'windisplay.h',
104*4882a593Smuzhiyun    '../../mi/miinitext.c',
105*4882a593Smuzhiyun]
106*4882a593Smuzhiyun
107*4882a593Smuzhiyunrsrc = windows.compile_resources('XWin.rc', include_directories: include_directories('../../include/'))
108*4882a593Smuzhiyunsrcs_windows += rsrc
109*4882a593Smuzhiyun
110*4882a593Smuzhiyunflex = find_program('flex')
111*4882a593Smuzhiyunbison = find_program('bison')
112*4882a593Smuzhiyun
113*4882a593Smuzhiyunlgen = generator(
114*4882a593Smuzhiyun    flex,
115*4882a593Smuzhiyun    output : '@PLAINNAME@.yy.c',
116*4882a593Smuzhiyun    arguments : ['-i', '-o', '@OUTPUT@', '@INPUT@']
117*4882a593Smuzhiyun)
118*4882a593Smuzhiyun
119*4882a593Smuzhiyunlfiles = lgen.process('winprefslex.l')
120*4882a593Smuzhiyunsrcs_windows += lfiles
121*4882a593Smuzhiyun
122*4882a593Smuzhiyunpgen = generator(
123*4882a593Smuzhiyun    bison,
124*4882a593Smuzhiyun    output : ['@BASENAME@.c', '@BASENAME@.h'],
125*4882a593Smuzhiyun    arguments : ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@']
126*4882a593Smuzhiyun)
127*4882a593Smuzhiyun
128*4882a593Smuzhiyunpfiles = pgen.process('winprefsyacc.y')
129*4882a593Smuzhiyunsrcs_windows += pfiles
130*4882a593Smuzhiyun
131*4882a593Smuzhiyunxwin_dep = [
132*4882a593Smuzhiyun    common_dep,
133*4882a593Smuzhiyun    dependency('x11-xcb'),
134*4882a593Smuzhiyun    dependency('xcb-aux'),
135*4882a593Smuzhiyun    dependency('xcb-image'),
136*4882a593Smuzhiyun    dependency('xcb-ewmh'),
137*4882a593Smuzhiyun    dependency('xcb-icccm'),
138*4882a593Smuzhiyun]
139*4882a593Smuzhiyun
140*4882a593Smuzhiyunexecutable(
141*4882a593Smuzhiyun    server_name,
142*4882a593Smuzhiyun    srcs_windows,
143*4882a593Smuzhiyun    include_directories: [inc, top_srcdir_inc],
144*4882a593Smuzhiyun    dependencies: xwin_dep,
145*4882a593Smuzhiyun    link_with: [
146*4882a593Smuzhiyun        xwin_windowsdri,
147*4882a593Smuzhiyun        xwin_glx,
148*4882a593Smuzhiyun        xwin_clipboard,
149*4882a593Smuzhiyun        libxserver_fb,
150*4882a593Smuzhiyun        libxserver,
151*4882a593Smuzhiyun        libxserver_glx,
152*4882a593Smuzhiyun        libglxvnd,
153*4882a593Smuzhiyun        libxserver_xkb_stubs,
154*4882a593Smuzhiyun        libxserver_miext_shadow,
155*4882a593Smuzhiyun        libxserver_pseudoramix,
156*4882a593Smuzhiyun        libxserver_xi_stubs,
157*4882a593Smuzhiyun    ],
158*4882a593Smuzhiyun    link_args: ['-Wl,--disable-stdcall-fixup', '-Wl,--export-all-symbols'] +  xwin_sys_libs,
159*4882a593Smuzhiyun    c_args: xwin_c_args,
160*4882a593Smuzhiyun    gui_app: true,
161*4882a593Smuzhiyun    install: true,
162*4882a593Smuzhiyun)
163*4882a593Smuzhiyun
164*4882a593Smuzhiyuninstall_data(
165*4882a593Smuzhiyun    'system.XWinrc',
166*4882a593Smuzhiyun    install_dir: join_paths(get_option('sysconfdir'), 'X11')
167*4882a593Smuzhiyun)
168*4882a593Smuzhiyun
169*4882a593Smuzhiyunxwin_man = configure_file(
170*4882a593Smuzhiyun    input: 'man/XWin.man',
171*4882a593Smuzhiyun    output: 'XWin.1',
172*4882a593Smuzhiyun    configuration: manpage_config,
173*4882a593Smuzhiyun)
174*4882a593Smuzhiyuninstall_man(xwin_man)
175*4882a593Smuzhiyun
176*4882a593Smuzhiyunxwinrc_man = configure_file(
177*4882a593Smuzhiyun    input: 'man/XWinrc.man',
178*4882a593Smuzhiyun    output: 'XWinrc.5',
179*4882a593Smuzhiyun    configuration: manpage_config,
180*4882a593Smuzhiyun)
181*4882a593Smuzhiyuninstall_man(xwinrc_man)
182