#!/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'

