On 7/23/23 13:04, LIU Hao wrote:
在 2023-07-23 18:43, Jacek Caban via Mingw-w64-public 写道:
The commit is missing some files generated from IDLs, so current tree
doesn't build.
I tried building headers and regenerated all of them from IDL. It was
necessary to use an up-to-date WIDL, but I didn't find any missing
files..?
Those were missing: d2d1_2.h, d2d1_3.h, d2d1effects_1.h and
d2d1effects_2.h and they are included from uuid.c.
Even more importantly, D2D headers have a lot of C++ features, like
inline function helpers that overload virtual functions, that are not
expressed in Wine IDLs. There is a reason why MS doesn't use IDLs for
D2D and it's the same reason we never imported those IDLs. That makes
IDLs very incompatible with Windows SDK headers. Those patches broke
Firefox build in multiple ways. It should be possible to share more
of D2D between Wine and mingw-w64, but not without more work, careful
consideration and proper review. I feel like all of that was missing
in this case.
Anyway, given that the whole series is just plain wrong, I suggest to
revert it all.
OK, reverted now.
Thanks.
As Firefox is mentioned, maybe someone can test building Firefox with
73526385645ffa35c03c0d473b7eac0e00d94541 and see.
I tried wine-gecko (a Firefox 47 fork) and it failed in multiple places
as expected. The main blockers are overloaded inline helpers. If anyone
is interested, building wine-gecko on Linux is as easy as running
./wine/make_package from https://gitlab.winehq.org/wine/wine-gecko.git
(it should be also possible to build more recent Firefox, but that's
more tricky).
Jacek
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public