meson.build revision 1b5d61b8
11b5d61b8Smrgwindows = import('windows')
21b5d61b8Smrg
31b5d61b8Smrgwindowsdri_dep = dependency('windowsdriproto', required: false)
41b5d61b8Smrg
51b5d61b8Smrgbuild_windowsdri = windowsdri_dep.found()
61b5d61b8Smrg
71b5d61b8Smrgxwin_sys_libs = []
81b5d61b8Smrgxwin_sys_libs += '-ldxguid'
91b5d61b8Smrg
101b5d61b8Smrgif host_machine.system() == 'cygwin'
111b5d61b8Smrg    server_name = 'XWin'
121b5d61b8Smrgelse
131b5d61b8Smrg    server_name = 'Xming'
141b5d61b8Smrg    xwin_sys_libs += ['-lpthread', '-lws2_32']
151b5d61b8Smrgendif
161b5d61b8Smrg
171b5d61b8Smrgxwin_c_args = []
181b5d61b8Smrgxwin_c_args += '-DHAVE_XWIN_CONFIG_H'
191b5d61b8Smrgxwin_c_args += '-Wno-bad-function-cast'
201b5d61b8Smrg
211b5d61b8Smrgsrcs_windows = [
221b5d61b8Smrg    'winclipboardinit.c',
231b5d61b8Smrg    'winclipboardwrappers.c',
241b5d61b8Smrg]
251b5d61b8Smrgsubdir('winclipboard')
261b5d61b8Smrg
271b5d61b8Smrgif build_glx
281b5d61b8Smrg    if build_windowsdri
291b5d61b8Smrg        xwin_c_args += '-DXWIN_WINDOWS_DRI'
301b5d61b8Smrg        subdir('dri')
311b5d61b8Smrg    endif
321b5d61b8Smrg    xwin_c_args += '-DXWIN_GLX_WINDOWS'
331b5d61b8Smrg    xwin_sys_libs += '-lopengl32'
341b5d61b8Smrg    subdir('glx')
351b5d61b8Smrgendif
361b5d61b8Smrg
371b5d61b8Smrgsrcs_windows += [
381b5d61b8Smrg     'winmultiwindowshape.c',
391b5d61b8Smrg     'winmultiwindowwindow.c',
401b5d61b8Smrg     'winmultiwindowwm.c',
411b5d61b8Smrg     'winmultiwindowwndproc.c',
421b5d61b8Smrg     'propertystore.h',
431b5d61b8Smrg     'winSetAppUserModelID.c',
441b5d61b8Smrg]
451b5d61b8Smrgxwin_sys_libs += ['-lshlwapi', '-lole32']
461b5d61b8Smrg
471b5d61b8Smrgsrcs_windows += [
481b5d61b8Smrg     'winrandr.c',
491b5d61b8Smrg]
501b5d61b8Smrg
511b5d61b8Smrgsrcs_windows += [
521b5d61b8Smrg    'InitInput.c',
531b5d61b8Smrg    'InitOutput.c',
541b5d61b8Smrg    'winallpriv.c',
551b5d61b8Smrg    'winauth.c',
561b5d61b8Smrg    'winblock.c',
571b5d61b8Smrg    'wincmap.c',
581b5d61b8Smrg    'winconfig.c',
591b5d61b8Smrg    'wincreatewnd.c',
601b5d61b8Smrg    'wincursor.c',
611b5d61b8Smrg    'windialogs.c',
621b5d61b8Smrg    'winengine.c',
631b5d61b8Smrg    'winerror.c',
641b5d61b8Smrg    'winglobals.c',
651b5d61b8Smrg    'winkeybd.c',
661b5d61b8Smrg    'winkeyhook.c',
671b5d61b8Smrg    'winmisc.c',
681b5d61b8Smrg    'winmonitors.c',
691b5d61b8Smrg    'winmouse.c',
701b5d61b8Smrg    'winmsg.c',
711b5d61b8Smrg    'winmsgwindow.c',
721b5d61b8Smrg    'winmultiwindowclass.c',
731b5d61b8Smrg    'winmultiwindowicons.c',
741b5d61b8Smrg    'winos.c',
751b5d61b8Smrg    'winprefs.c',
761b5d61b8Smrg    'winprocarg.c',
771b5d61b8Smrg    'winscrinit.c',
781b5d61b8Smrg    'winshadddnl.c',
791b5d61b8Smrg    'winshadgdi.c',
801b5d61b8Smrg    'wintaskbar.c',
811b5d61b8Smrg    'wintrayicon.c',
821b5d61b8Smrg    'winvalargs.c',
831b5d61b8Smrg    'winwakeup.c',
841b5d61b8Smrg    'winwindow.c',
851b5d61b8Smrg    'winwndproc.c',
861b5d61b8Smrg    'ddraw.h',
871b5d61b8Smrg    'winconfig.h',
881b5d61b8Smrg    'win.h',
891b5d61b8Smrg    'winglobals.h',
901b5d61b8Smrg    'winkeybd.h',
911b5d61b8Smrg    'winkeynames.h',
921b5d61b8Smrg    'winlayouts.h',
931b5d61b8Smrg    'winmessages.h',
941b5d61b8Smrg    'winmonitors.h',
951b5d61b8Smrg    'winmsg.h',
961b5d61b8Smrg    'winms.h',
971b5d61b8Smrg    'winmultiwindowclass.h',
981b5d61b8Smrg    'winmultiwindowicons.h',
991b5d61b8Smrg    'winprefs.h',
1001b5d61b8Smrg    'winresource.h',
1011b5d61b8Smrg    'winwindow.h',
1021b5d61b8Smrg    'windisplay.c',
1031b5d61b8Smrg    'windisplay.h',
1041b5d61b8Smrg    '../../mi/miinitext.c',
1051b5d61b8Smrg]
1061b5d61b8Smrg
1071b5d61b8Smrgrsrc = windows.compile_resources('XWin.rc', include_directories: include_directories('../../include/'))
1081b5d61b8Smrgsrcs_windows += rsrc
1091b5d61b8Smrg
1101b5d61b8Smrgflex = find_program('flex')
1111b5d61b8Smrgbison = find_program('bison')
1121b5d61b8Smrg
1131b5d61b8Smrglgen = generator(
1141b5d61b8Smrg    flex,
1151b5d61b8Smrg    output : '@PLAINNAME@.yy.c',
1161b5d61b8Smrg    arguments : ['-i', '-o', '@OUTPUT@', '@INPUT@']
1171b5d61b8Smrg)
1181b5d61b8Smrg
1191b5d61b8Smrglfiles = lgen.process('winprefslex.l')
1201b5d61b8Smrgsrcs_windows += lfiles
1211b5d61b8Smrg
1221b5d61b8Smrgpgen = generator(
1231b5d61b8Smrg    bison,
1241b5d61b8Smrg    output : ['@BASENAME@.c', '@BASENAME@.h'],
1251b5d61b8Smrg    arguments : ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@']
1261b5d61b8Smrg)
1271b5d61b8Smrg
1281b5d61b8Smrgpfiles = pgen.process('winprefsyacc.y')
1291b5d61b8Smrgsrcs_windows += pfiles
1301b5d61b8Smrg
1311b5d61b8Smrgxwin_dep = [
1321b5d61b8Smrg    common_dep,
1331b5d61b8Smrg    dependency('x11-xcb'),
1341b5d61b8Smrg    dependency('xcb-aux'),
1351b5d61b8Smrg    dependency('xcb-image'),
1361b5d61b8Smrg    dependency('xcb-ewmh'),
1371b5d61b8Smrg    dependency('xcb-icccm'),
1381b5d61b8Smrg]
1391b5d61b8Smrg
1401b5d61b8Smrgexecutable(
1411b5d61b8Smrg    server_name,
1421b5d61b8Smrg    srcs_windows,
1431b5d61b8Smrg    include_directories: [inc, top_srcdir_inc],
1441b5d61b8Smrg    dependencies: xwin_dep,
1451b5d61b8Smrg    link_with: [
1461b5d61b8Smrg        xwin_windowsdri,
1471b5d61b8Smrg        xwin_glx,
1481b5d61b8Smrg        xwin_clipboard,
1491b5d61b8Smrg        libxserver_fb,
1501b5d61b8Smrg        libxserver,
1511b5d61b8Smrg        libxserver_glx,
1521b5d61b8Smrg        libglxvnd,
1531b5d61b8Smrg        libxserver_xkb_stubs,
1541b5d61b8Smrg        libxserver_miext_shadow,
1551b5d61b8Smrg        libxserver_pseudoramix,
1561b5d61b8Smrg        libxserver_xi_stubs,
1571b5d61b8Smrg    ],
1581b5d61b8Smrg    link_args: ['-Wl,--disable-stdcall-fixup', '-Wl,--export-all-symbols'] +  xwin_sys_libs,
1591b5d61b8Smrg    c_args: xwin_c_args,
1601b5d61b8Smrg    gui_app: true,
1611b5d61b8Smrg    install: true,
1621b5d61b8Smrg)
1631b5d61b8Smrg
1641b5d61b8Smrginstall_data(
1651b5d61b8Smrg    'system.XWinrc',
1661b5d61b8Smrg    install_dir: join_paths(get_option('sysconfdir'), 'X11')
1671b5d61b8Smrg)
1681b5d61b8Smrg
1691b5d61b8Smrgxwin_man = configure_file(
1701b5d61b8Smrg    input: 'man/XWin.man',
1711b5d61b8Smrg    output: 'XWin.1',
1721b5d61b8Smrg    configuration: manpage_config,
1731b5d61b8Smrg)
1741b5d61b8Smrginstall_man(xwin_man)
1751b5d61b8Smrg
1761b5d61b8Smrgxwinrc_man = configure_file(
1771b5d61b8Smrg    input: 'man/XWinrc.man',
1781b5d61b8Smrg    output: 'XWinrc.5',
1791b5d61b8Smrg    configuration: manpage_config,
1801b5d61b8Smrg)
1811b5d61b8Smrginstall_man(xwinrc_man)
182