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