blob: c9c8286871c8a45dd2050a049d6b6f60c0afc50e [file] [log] [blame]
Jacek Caban2979a232017-12-18 18:15:38 +01001#!/bin/bash
2
3set -e
4
5WINE_DIR=$1
6
7if test -z $WINE_DIR; then
Liu Haoa7d43b72021-05-05 22:18:21 +08008 echo "Usage: wine-import.sh wine_dir"
Jacek Caban2979a232017-12-18 18:15:38 +01009 exit 1
10fi
11
12import_header() {
13 dstfile=$2/$1
14 srcfile=$WINE_DIR/include/$1
15 rm -f $dstfile
16 unicode_fix=
17 if test -n "$(grep WINELIB_NAME_AW\\\|DECL_WINELIB_TYPE_AW $srcfile)"; then
18 unicode_fix="yes"
19 echo '#include <_mingw_unicode.h>' >>$dstfile
20 fi
21 if test -n "$(grep -w INTERFACE $srcfile)"; then
22 echo '#undef INTERFACE' >>$dstfile
23 fi
24 cat $srcfile >>$dstfile
25 if test -n "$(grep WINELIB_NAME_AW\\\|DECL_WINELIB_TYPE_AW $srcfile)"; then
26 sed -i 's/\bWINELIB_NAME_AW\b/__MINGW_NAME_AW/g' $dstfile
27 sed -i 's/\bDECL_WINELIB_TYPE_AW\b/__MINGW_TYPEDEF_AW/g' $dstfile
28 fi
29 sed -i 's/\bBOOL /WINBOOL /g' $dstfile
30 sed -i 's/\bBOOL\b/WINBOOL/g' $dstfile
31 sed -i 's/DECLSPEC_HIDDEN//g' $dstfile
Jacek Cabanc9ee24b2023-08-22 10:42:30 +020032 sed -i 's/\b__WINE_ALLOC_SIZE([0-9]) //g' $dstfile
Jacek Caban2979a232017-12-18 18:15:38 +010033}
34
35import_idl() {
36 dstfile=$2/$1
37 srcfile=$WINE_DIR/include/$1
38 cp $srcfile $dstfile
39
40 # HACK:
41 sed -i 's/cpp_quote\(.*\)\bBOOL\b/cpp_quote\1WINBOOL/' $dstfile
42 sed -i 's/cpp_quote\(.*\)\bBOOL\b/cpp_quote\1WINBOOL/' $dstfile
43 sed -i 's/cpp_quote\(.*\)\bBOOL\b/cpp_quote\1WINBOOL/' $dstfile
44}
45
46# headers
Biswapriyo Nathabb6e6a2023-07-13 01:46:35 +053047# Reverted: propkeydef.h, rpcsal.h
Jacek Caban2979a232017-12-18 18:15:38 +010048for f in \
Jacek Caban2979a232017-12-18 18:15:38 +010049 amaudio.h \
50 audevcod.h \
Jacek Caband0de7532019-12-16 15:01:48 +010051 corerror.h \
Biswapriyo Nath716676b2020-06-05 11:58:38 +053052 d2dbasetypes.h \
Jacek Caban2979a232017-12-18 18:15:38 +010053 d3d10_1shader.h \
Jacek Caban2979a232017-12-18 18:15:38 +010054 d3d10misc.h \
Jacek Caban2979a232017-12-18 18:15:38 +010055 d3d11shader.h \
Jacek Caban2979a232017-12-18 18:15:38 +010056 d3d8caps.h \
Jacek Caban5ccc9752024-08-06 18:16:17 +020057 d3d8.h \
Jacek Caban2979a232017-12-18 18:15:38 +010058 d3d8types.h \
Jacek Caban2979a232017-12-18 18:15:38 +010059 d3d9caps.h \
Jacek Caban5ccc9752024-08-06 18:16:17 +020060 d3d9.h \
Jacek Caban2979a232017-12-18 18:15:38 +010061 d3d9types.h \
62 d3dcaps.h \
63 d3dcompiler.h \
Jacek Caband0de7532019-12-16 15:01:48 +010064 d3d.h \
Jacek Caban2979a232017-12-18 18:15:38 +010065 d3dhal.h \
Jacek Caban2979a232017-12-18 18:15:38 +010066 d3drmdef.h \
Jacek Caband0de7532019-12-16 15:01:48 +010067 d3drm.h \
Jacek Caban2979a232017-12-18 18:15:38 +010068 d3drmobj.h \
69 d3dtypes.h \
Jacek Caband0de7532019-12-16 15:01:48 +010070 d3dvec.inl \
Jacek Caban2979a232017-12-18 18:15:38 +010071 d3dx9anim.h \
72 d3dx9core.h \
73 d3dx9effect.h \
Jacek Caband0de7532019-12-16 15:01:48 +010074 d3dx9.h \
Jacek Caban2979a232017-12-18 18:15:38 +010075 d3dx9math.h \
76 d3dx9math.inl \
77 d3dx9mesh.h \
78 d3dx9shader.h \
79 d3dx9shape.h \
80 d3dx9tex.h \
81 d3dx9xof.h \
Biswapriyo Nath5c137a72020-08-02 00:56:10 +053082 devpkey.h \
Jacek Caban2979a232017-12-18 18:15:38 +010083 dls1.h \
84 dls2.h \
85 dmerror.h \
86 dmo.h \
87 dmoreg.h \
88 dmort.h \
89 dmplugin.h \
90 dmusbuff.h \
91 dmusicc.h \
92 dmusicf.h \
93 dmusici.h \
94 dmusics.h \
95 dpaddr.h \
Jacek Caban2979a232017-12-18 18:15:38 +010096 dplay8.h \
Jacek Caband0de7532019-12-16 15:01:48 +010097 dplay.h \
Jacek Caban2979a232017-12-18 18:15:38 +010098 dplobby8.h \
Jacek Caband0de7532019-12-16 15:01:48 +010099 dplobby.h \
Jacek Caban2979a232017-12-18 18:15:38 +0100100 dpnathlp.h \
Jacek Caban3b796162020-04-29 17:13:38 +0200101 dsconf.h \
Jacek Caban2979a232017-12-18 18:15:38 +0100102 dshow.h \
103 dvdmedia.h \
104 dxdiag.h \
105 dxerr8.h \
106 dxerr9.h \
107 dxfile.h \
Biswapriyo Nathc8e562e2020-03-20 14:00:42 +0100108 dxva.h \
Jacek Caban2979a232017-12-18 18:15:38 +0100109 errors.h \
110 evcode.h \
Biswapriyo Nath3c737ed2020-04-14 16:14:32 +0200111 exdispid.h \
Biswapriyo Nath3cf799a2021-11-22 21:59:44 +0530112 fontsub.h \
Jacek Caban2979a232017-12-18 18:15:38 +0100113 mediaerr.h \
Biswapriyo Nath39076f42025-03-11 05:19:50 +0000114 mpeg2bits.h \
Jacek Caband0de7532019-12-16 15:01:48 +0100115 mscat.h \
Biswapriyo Nath9470b422022-12-28 18:40:38 +0530116 msxml2did.h \
117 msxml6did.h \
Jacek Caband0de7532019-12-16 15:01:48 +0100118 propkey.h \
Biswapriyo Nath016d6742021-07-13 21:03:36 +0530119 propvarutil.h \
Jacek Caband0de7532019-12-16 15:01:48 +0100120 t2embapi.h \
121 uiautomationcoreapi.h \
122 uiautomation.h \
Jacek Caban2979a232017-12-18 18:15:38 +0100123 vfwmsgs.h \
Jacek Cabanb4eadf32024-09-04 15:02:05 +0200124 webservices.h \
Biswapriyo Nath5b5f0a12025-02-14 06:03:49 +0000125 wia.h \
Jacek Caband0de7532019-12-16 15:01:48 +0100126 winhttp.h \
127 winineti.h \
Biswapriyo Nath2d5eaa22021-03-13 14:11:09 +0530128 wmpids.h \
Biswapriyo Natha885fe92024-07-05 05:39:55 +0000129 x3daudio.h \
Biswapriyo Nath5c137a72020-08-02 00:56:10 +0530130 xapofx.h \
131 xinput.h; do
Jacek Caband0de7532019-12-16 15:01:48 +0100132 import_header $f include
Jacek Caban2979a232017-12-18 18:15:38 +0100133done
134
Jacek Caband0de7532019-12-16 15:01:48 +0100135# IDLs
Jacek Caban2979a232017-12-18 18:15:38 +0100136for f in \
137 amstream \
138 amvideo \
Jacek Caban79951ed2021-03-20 13:45:16 +0100139 asyncinfo \
Jacek Caban2979a232017-12-18 18:15:38 +0100140 austream \
Biswapriyo Nathf5bd1f32021-11-06 22:51:26 +0530141 bits \
142 bits1_5 \
143 bits2_0 \
144 bits2_5 \
145 bits3_0 \
146 bits5_0 \
Jacek Caband0de7532019-12-16 15:01:48 +0100147 ctfutb \
Biswapriyo Nath7b494c12022-10-15 10:16:55 +0530148 ctxtcall \
Jacek Caban2979a232017-12-18 18:15:38 +0100149 d3d10 \
150 d3d10_1 \
Jacek Caban90a60d52023-11-09 11:46:09 +0100151 d3d10effect \
Jacek Caban2979a232017-12-18 18:15:38 +0100152 d3d10sdklayers \
Jacek Caban90a60d52023-11-09 11:46:09 +0100153 d3d10shader \
Jacek Caban2979a232017-12-18 18:15:38 +0100154 d3d11 \
Jacek Caban50bcd812020-09-23 17:18:21 +0200155 d3d11on12 \
Jacek Caban2979a232017-12-18 18:15:38 +0100156 d3d11_1 \
157 d3d11_2 \
158 d3d11_3 \
159 d3d11_4 \
160 d3d11sdklayers \
Martin Storsjöd34d36b2023-09-19 23:50:02 +0300161 d3d12 \
Biswapriyo Nathea52e5e2020-10-03 11:01:43 +0530162 d3d12sdklayers \
Biswapriyo Nathd9a9ccd2020-08-15 19:56:11 +0530163 d3d12shader \
Jacek Cabanc15e4df2023-09-27 12:50:04 +0200164 d3d12video \
Jacek Caban2979a232017-12-18 18:15:38 +0100165 d3dcommon \
Biswapriyo Nath716676b2020-06-05 11:58:38 +0530166 dcommon \
Jacek Caban2979a232017-12-18 18:15:38 +0100167 ddstream \
Jacek Caband0de7532019-12-16 15:01:48 +0100168 devicetopology \
Biswapriyo Nathdc9f65c2020-11-13 17:56:57 +0530169 directmanipulation \
Jacek Caband0de7532019-12-16 15:01:48 +0100170 downloadmgr \
171 drmexternals \
Biswapriyo Nathb1fb31f2020-05-04 09:30:00 +0530172 dvdif \
Biswapriyo Nath716676b2020-06-05 11:58:38 +0530173 dwrite \
174 dwrite_1 \
175 dwrite_2 \
176 dwrite_3 \
Jacek Caban2979a232017-12-18 18:15:38 +0100177 dxgi \
178 dxgi1_2 \
179 dxgi1_3 \
180 dxgi1_4 \
181 dxgi1_5 \
182 dxgi1_6 \
Jacek Caban2979a232017-12-18 18:15:38 +0100183 dxgicommon \
Biswapriyo Nath22333ac2020-01-08 16:13:11 +0100184 dxgidebug \
Jacek Caban2979a232017-12-18 18:15:38 +0100185 dxgiformat \
186 dxgitype \
Biswapriyo Nath3a99d7c2020-02-07 20:04:11 +0530187 dxva2api \
Biswapriyo Nath90045802024-03-18 05:55:18 +0000188 dyngraph \
Jacek Caband0de7532019-12-16 15:01:48 +0100189 endpointvolume \
Jacek Caban79951ed2021-03-20 13:45:16 +0100190 eventtoken \
Biswapriyo Nath572d27c2021-10-28 12:48:07 +0530191 evr9 \
Biswapriyo Nath716676b2020-06-05 11:58:38 +0530192 exdisp \
Jacek Caband0de7532019-12-16 15:01:48 +0100193 fusion \
194 icftypes \
LIU Hao6a3e25c2023-02-03 11:37:01 +0800195 ivectorchangedeventargs \
Jacek Caband0de7532019-12-16 15:01:48 +0100196 mediaobj \
Nikolay Sivovbe9aa462023-11-29 18:11:41 +0100197 mfmediaengine \
Biswapriyo Nath807fb5f2020-12-19 02:04:33 +0530198 mfreadwrite \
Biswapriyo Nath92d56282023-03-18 10:34:00 +0530199 mftransform \
Jacek Caband0de7532019-12-16 15:01:48 +0100200 mmdeviceapi \
Jacek Caban2979a232017-12-18 18:15:38 +0100201 mmstream \
Biswapriyo Nath39076f42025-03-11 05:19:50 +0000202 mpeg2data \
203 mpeg2structs \
Jacek Caband0de7532019-12-16 15:01:48 +0100204 mscoree \
205 msctf \
Biswapriyo Nath9470b422022-12-28 18:40:38 +0530206 msxml \
207 msxml2 \
208 msxml6 \
Biswapriyo Natheb87e562021-03-17 12:00:56 +0530209 mulres \
Jacek Caband0de7532019-12-16 15:01:48 +0100210 netfw \
211 netlistmgr \
212 objectarray \
213 optary \
Jacek Cabancdb052f2021-06-29 21:32:34 +0200214 proofofpossessioncookieinfo \
Jacek Caband0de7532019-12-16 15:01:48 +0100215 qedit \
Biswapriyo Natheb87e562021-03-17 12:00:56 +0530216 relogger \
217 rtworkq \
Biswapriyo Nath716676b2020-06-05 11:58:38 +0530218 spatialaudioclient \
Jacek Caband0de7532019-12-16 15:01:48 +0100219 taskschd \
Biswapriyo Nathfcb46db2023-04-10 18:05:28 +0530220 textstor \
Biswapriyo Nath06bc9552020-01-09 14:31:46 +0530221 thumbcache \
Jacek Caband0de7532019-12-16 15:01:48 +0100222 uiautomationclient \
223 uiautomationcore \
224 urlhist \
Jacek Caban7542dd92020-03-04 19:28:53 +0100225 vmr9 \
Jacek Cabanb4eadf32024-09-04 15:02:05 +0200226 weakreference \
Biswapriyo Nath5b5f0a12025-02-14 06:03:49 +0000227 wia_lh \
228 wia_xp \
Biswapriyo Nathe7f3f742020-04-26 02:14:57 +0530229 wincodec \
Biswapriyo Nath9468ebc2020-05-04 09:30:00 +0530230 wincodecsdk \
Biswapriyo Nathc0fa4d72021-02-28 14:50:09 +0530231 windowscontracts \
Jacek Caband0de7532019-12-16 15:01:48 +0100232 wmdrmsdk \
Biswapriyo Nathf3855e22021-01-30 21:15:33 +0530233 wmp \
Biswapriyo Nath2d5eaa22021-03-13 14:11:09 +0530234 wmprealestate \
235 wmpservices \
Jacek Caband0de7532019-12-16 15:01:48 +0100236 wmsbuffer \
237 wmsdkidl \
Biswapriyo Nathff066df2021-10-21 21:04:54 +0530238 wmsecure \
Jacek Caband0de7532019-12-16 15:01:48 +0100239 wpcapi \
Biswapriyo Nath9087f9a2021-05-05 10:37:11 +0530240 wuapi \
Jacek Cabane89de842023-08-15 23:06:07 +0200241 xamlom \
Biswapriyo Nath5c137a72020-08-02 00:56:10 +0530242 xapo \
243 xaudio2 \
244 xaudio2fx \
Biswapriyo Nath9470b422022-12-28 18:40:38 +0530245 xmldom \
246 xmldso \
Jacek Caband0de7532019-12-16 15:01:48 +0100247 xmllite; do
248 import_idl $f.idl include
Jacek Caban2979a232017-12-18 18:15:38 +0100249done
250
LIU Haoc8148572023-07-23 19:01:16 +0800251# Import all winrt IDLs
252for f in $WINE_DIR/include/windows.*.idl; do
Jacek Caban9817f792023-06-03 19:25:03 +0200253 import_idl $(basename $f) include
254done
255
Jacek Caban2979a232017-12-18 18:15:38 +0100256echo Import complete. You need to update headers generated from IDL files now:
Jacek Caban53fab172020-01-24 21:16:02 +0100257echo '$ ./configure --with-widl --host=i686-w64-mingw32 && make && make distclean'
Jacek Caban2979a232017-12-18 18:15:38 +0100258