| #!/bin/bash |
| |
| set -e |
| |
| WINE_DIR=$1 |
| |
| if test -z $WINE_DIR; then |
| echo "Usage: wine-impot.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 |
| } |
| |
| 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 |
| for f in \ |
| amaudio.h \ |
| audevcod.h \ |
| corerror.h \ |
| d3d10_1shader.h \ |
| d3d10effect.h \ |
| d3d10misc.h \ |
| d3d10shader.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 \ |
| 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 \ |
| dshow.h \ |
| dvdmedia.h \ |
| dxdiag.h \ |
| dxerr8.h \ |
| dxerr9.h \ |
| dxfile.h \ |
| dxva.h \ |
| errors.h \ |
| evcode.h \ |
| exdispid.h \ |
| mediaerr.h \ |
| mscat.h \ |
| propkeydef.h \ |
| propkey.h \ |
| rpcsal.h \ |
| t2embapi.h \ |
| uiautomationcoreapi.h \ |
| uiautomation.h \ |
| vfwmsgs.h \ |
| winhttp.h \ |
| winineti.h \ |
| xinput.h; do |
| import_header $f include |
| done |
| |
| # IDLs |
| for f in \ |
| amstream \ |
| amvideo \ |
| austream \ |
| ctfutb \ |
| d3d10 \ |
| d3d10_1 \ |
| d3d10sdklayers \ |
| d3d11 \ |
| d3d11_1 \ |
| d3d11_2 \ |
| d3d11_3 \ |
| d3d11_4 \ |
| d3d11sdklayers \ |
| d3dcommon \ |
| ddstream \ |
| devicetopology \ |
| downloadmgr \ |
| drmexternals \ |
| dxgi \ |
| dxgi1_2 \ |
| dxgi1_3 \ |
| dxgi1_4 \ |
| dxgi1_5 \ |
| dxgi1_6 \ |
| dxgicommon \ |
| dxgidebug \ |
| dxgiformat \ |
| dxgitype \ |
| dxva2api \ |
| endpointvolume \ |
| exdisp \ |
| fusion \ |
| icftypes \ |
| mediaobj \ |
| mmdeviceapi \ |
| mmstream \ |
| mscoree \ |
| msctf \ |
| netfw \ |
| netlistmgr \ |
| objectarray \ |
| optary \ |
| qedit \ |
| spatialaudioclient \ |
| taskschd \ |
| thumbcache \ |
| uiautomationclient \ |
| uiautomationcore \ |
| urlhist \ |
| vmr9 \ |
| wmdrmsdk \ |
| wmsbuffer \ |
| wmsdkidl \ |
| wpcapi \ |
| xmllite; do |
| import_idl $f.idl 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' |
| |