|  | #!/bin/bash | 
|  |  | 
|  | set -e | 
|  |  | 
|  | WINE_DIR=$1 | 
|  |  | 
|  | if test -z $WINE_DIR; then | 
|  | echo "Usage: wine-import.sh wine_dir" | 
|  | exit 1 | 
|  | fi | 
|  |  | 
|  | import_header() { | 
|  | dstfile=$2/$1 | 
|  | srcfile=$WINE_DIR/include/$1 | 
|  | rm -f $dstfile | 
|  | unicode_fix= | 
|  | if test -n "$(grep WINELIB_NAME_AW\\\|DECL_WINELIB_TYPE_AW $srcfile)"; then | 
|  | unicode_fix="yes" | 
|  | echo '#include <_mingw_unicode.h>' >>$dstfile | 
|  | fi | 
|  | if test -n "$(grep -w INTERFACE $srcfile)"; then | 
|  | echo '#undef INTERFACE' >>$dstfile | 
|  | fi | 
|  | cat $srcfile >>$dstfile | 
|  | if test -n "$(grep WINELIB_NAME_AW\\\|DECL_WINELIB_TYPE_AW $srcfile)"; then | 
|  | sed -i 's/\bWINELIB_NAME_AW\b/__MINGW_NAME_AW/g' $dstfile | 
|  | sed -i 's/\bDECL_WINELIB_TYPE_AW\b/__MINGW_TYPEDEF_AW/g' $dstfile | 
|  | fi | 
|  | sed -i 's/\bBOOL    /WINBOOL /g' $dstfile | 
|  | sed -i 's/\bBOOL\b/WINBOOL/g' $dstfile | 
|  | sed -i 's/DECLSPEC_HIDDEN//g' $dstfile | 
|  | sed -i 's/\b__WINE_ALLOC_SIZE([0-9]) //g' $dstfile | 
|  | } | 
|  |  | 
|  | import_idl() { | 
|  | dstfile=$2/$1 | 
|  | srcfile=$WINE_DIR/include/$1 | 
|  | cp $srcfile $dstfile | 
|  |  | 
|  | # HACK: | 
|  | sed -i 's/cpp_quote\(.*\)\bBOOL\b/cpp_quote\1WINBOOL/' $dstfile | 
|  | sed -i 's/cpp_quote\(.*\)\bBOOL\b/cpp_quote\1WINBOOL/' $dstfile | 
|  | sed -i 's/cpp_quote\(.*\)\bBOOL\b/cpp_quote\1WINBOOL/' $dstfile | 
|  | } | 
|  |  | 
|  | # headers | 
|  | # Reverted: propkeydef.h, rpcsal.h | 
|  | for f in \ | 
|  | amaudio.h \ | 
|  | audevcod.h \ | 
|  | corerror.h \ | 
|  | d2dbasetypes.h \ | 
|  | d3d10_1shader.h \ | 
|  | d3d10misc.h \ | 
|  | d3d11shader.h \ | 
|  | d3d8caps.h \ | 
|  | d3d8.h \ | 
|  | d3d8types.h \ | 
|  | d3d9caps.h \ | 
|  | d3d9.h \ | 
|  | d3d9types.h \ | 
|  | d3dcaps.h \ | 
|  | d3dcompiler.h \ | 
|  | d3d.h \ | 
|  | d3dhal.h \ | 
|  | d3drmdef.h \ | 
|  | d3drm.h \ | 
|  | d3drmobj.h \ | 
|  | d3dtypes.h \ | 
|  | d3dvec.inl \ | 
|  | d3dx9anim.h \ | 
|  | d3dx9core.h \ | 
|  | d3dx9effect.h \ | 
|  | d3dx9.h \ | 
|  | d3dx9math.h \ | 
|  | d3dx9math.inl \ | 
|  | d3dx9mesh.h \ | 
|  | d3dx9shader.h \ | 
|  | d3dx9shape.h \ | 
|  | d3dx9tex.h \ | 
|  | d3dx9xof.h \ | 
|  | devpkey.h \ | 
|  | dls1.h \ | 
|  | dls2.h \ | 
|  | dmerror.h \ | 
|  | dmo.h \ | 
|  | dmoreg.h \ | 
|  | dmort.h \ | 
|  | dmplugin.h \ | 
|  | dmusbuff.h \ | 
|  | dmusicc.h \ | 
|  | dmusicf.h \ | 
|  | dmusici.h \ | 
|  | dmusics.h \ | 
|  | dpaddr.h \ | 
|  | dplay8.h \ | 
|  | dplay.h \ | 
|  | dplobby8.h \ | 
|  | dplobby.h \ | 
|  | dpnathlp.h \ | 
|  | dsconf.h \ | 
|  | dshow.h \ | 
|  | dvdmedia.h \ | 
|  | dxdiag.h \ | 
|  | dxerr8.h \ | 
|  | dxerr9.h \ | 
|  | dxfile.h \ | 
|  | dxva.h \ | 
|  | errors.h \ | 
|  | evcode.h \ | 
|  | exdispid.h \ | 
|  | fontsub.h \ | 
|  | mediaerr.h \ | 
|  | mscat.h \ | 
|  | msxml2did.h \ | 
|  | msxml6did.h \ | 
|  | propkey.h \ | 
|  | propvarutil.h \ | 
|  | t2embapi.h \ | 
|  | uiautomationcoreapi.h \ | 
|  | uiautomation.h \ | 
|  | vfwmsgs.h \ | 
|  | winhttp.h \ | 
|  | winineti.h \ | 
|  | wmpids.h \ | 
|  | xapofx.h \ | 
|  | xinput.h; do | 
|  | import_header $f include | 
|  | done | 
|  |  | 
|  | # IDLs | 
|  | for f in \ | 
|  | amstream \ | 
|  | amvideo \ | 
|  | asyncinfo \ | 
|  | austream \ | 
|  | bits \ | 
|  | bits1_5 \ | 
|  | bits2_0 \ | 
|  | bits2_5 \ | 
|  | bits3_0 \ | 
|  | bits5_0 \ | 
|  | ctfutb \ | 
|  | ctxtcall \ | 
|  | d3d10 \ | 
|  | d3d10_1 \ | 
|  | d3d10effect \ | 
|  | d3d10sdklayers \ | 
|  | d3d10shader \ | 
|  | d3d11 \ | 
|  | d3d11on12 \ | 
|  | d3d11_1 \ | 
|  | d3d11_2 \ | 
|  | d3d11_3 \ | 
|  | d3d11_4 \ | 
|  | d3d11sdklayers \ | 
|  | d3d12 \ | 
|  | d3d12sdklayers \ | 
|  | d3d12shader \ | 
|  | d3d12video \ | 
|  | d3dcommon \ | 
|  | dcommon \ | 
|  | ddstream \ | 
|  | devicetopology \ | 
|  | directmanipulation \ | 
|  | downloadmgr \ | 
|  | drmexternals \ | 
|  | dvdif \ | 
|  | dwrite \ | 
|  | dwrite_1 \ | 
|  | dwrite_2 \ | 
|  | dwrite_3 \ | 
|  | dxgi \ | 
|  | dxgi1_2 \ | 
|  | dxgi1_3 \ | 
|  | dxgi1_4 \ | 
|  | dxgi1_5 \ | 
|  | dxgi1_6 \ | 
|  | dxgicommon \ | 
|  | dxgidebug \ | 
|  | dxgiformat \ | 
|  | dxgitype \ | 
|  | dxva2api \ | 
|  | dyngraph \ | 
|  | endpointvolume \ | 
|  | eventtoken \ | 
|  | evr9 \ | 
|  | exdisp \ | 
|  | fusion \ | 
|  | icftypes \ | 
|  | ivectorchangedeventargs \ | 
|  | mediaobj \ | 
|  | mfmediaengine \ | 
|  | mfreadwrite \ | 
|  | mftransform \ | 
|  | mmdeviceapi \ | 
|  | mmstream \ | 
|  | mscoree \ | 
|  | msctf \ | 
|  | msxml \ | 
|  | msxml2 \ | 
|  | msxml6 \ | 
|  | mulres \ | 
|  | netfw \ | 
|  | netlistmgr \ | 
|  | objectarray \ | 
|  | optary \ | 
|  | proofofpossessioncookieinfo \ | 
|  | qedit \ | 
|  | relogger \ | 
|  | rtworkq \ | 
|  | spatialaudioclient \ | 
|  | taskschd \ | 
|  | textstor \ | 
|  | thumbcache \ | 
|  | uiautomationclient \ | 
|  | uiautomationcore \ | 
|  | urlhist \ | 
|  | vmr9 \ | 
|  | wincodec \ | 
|  | wincodecsdk \ | 
|  | windowscontracts \ | 
|  | wmdrmsdk \ | 
|  | wmp \ | 
|  | wmprealestate \ | 
|  | wmpservices \ | 
|  | wmsbuffer \ | 
|  | wmsdkidl \ | 
|  | wmsecure \ | 
|  | wpcapi \ | 
|  | wuapi \ | 
|  | xamlom \ | 
|  | xapo \ | 
|  | xaudio2 \ | 
|  | xaudio2fx \ | 
|  | xmldom \ | 
|  | xmldso \ | 
|  | xmllite; do | 
|  | import_idl $f.idl include | 
|  | done | 
|  |  | 
|  | # Import all winrt IDLs | 
|  | for f in $WINE_DIR/include/windows.*.idl; do | 
|  | import_idl $(basename $f) include | 
|  | done | 
|  |  | 
|  | echo Import complete. You need to update headers generated from IDL files now: | 
|  | echo '$ ./configure --with-widl --host=i686-w64-mingw32 && make && make distclean' | 
|  |  |