mingw-w64/mingw-w64-headers/wine-import.sh
Jacek Caban b4eadf324c headers: Import webservices.h and weakreference.idl from Wine.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
2024-09-04 15:04:48 +02:00

253 lines
4.0 KiB
Bash
Executable File

#!/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 \
webservices.h \
winhttp.h \
winineti.h \
wmpids.h \
x3daudio.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 \
weakreference \
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'