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