Gentoo Archives: gentoo-dev

From: Ian Stakenvicius <axs@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] RFC: new USE="win32" flag for mingw and prefix/windows support
Date: Wed, 20 Apr 2016 19:24:59
Message-Id: 7eda123f-99c6-02de-fb95-34b785b58a41@gentoo.org
In Reply to: Re: [gentoo-dev] RFC: new USE="win32" flag for mingw and prefix/windows support by Mart Raudsepp
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA256
3
4 On 20/04/16 03:18 PM, Mart Raudsepp wrote:
5 > Ühel kenal päeval, N, 21.04.2016 kell 06:53, kirjutas Kent
6 > Fredric:
7 >> On 21 April 2016 at 06:38, Ian Stakenvicius <axs@g.o>
8 >> wrote:
9 >>> Well so far the only needs I have run into for the win32 flag
10 >>> has been in relation to choosing UI toolkit support for cairo
11 >>> and gtk+ (and possibly others in the future), which is why I
12 >>> saw the parallel.
13 >>
14 >>
15 >> Given you're not using the flag to indicate "works on win32" as
16 >> such, but instead "compile using Win32 Widgets instead of
17 >> something else", wouldn't a better name indicate that somehow?
18 >>
19 >> The simplest thing I can think of that clears this confusion is
20 >> a few extra characters:
21 >>
22 >> "win32gui", "win32ui"
23 >>
24 >> Or something along those lines.
25 >>
26 >> It doesn't require us to know what the exact binding keywords
27 >> in microsoft terminology is used, and it clearly communicates
28 >> "This is something to do with User Interfaces" as opposed to
29 >> "Just linking/compiling slightly differently".
30 >
31 > win32 is what the base API seems to be called all over in the
32 > wild. The GTK+ configure flag is also --enable-win32-backend in
33 > gtk3 and --with-backend=win32 in gtk2 (didn't personally check
34 > the latter). Note that gtk configure actually also tracks
35 > platform_win32 and os_win32 in there, which are different things
36 > (and just configure.ac internal names). Former is true when host
37 > contains mingw, latter when host contains mingw or cygwin. When
38 > win32 gdk backend is enabled (which the propose USE flag would
39 > do), then it will depend on a matching cairo backend of that, to
40 > be able to do its own drawing on Windows. There's actually some
41 > stuff about pangowin32 as well, not sure Ian has noticed that
42 > yet.
43 >
44 > The GDK win32 backend uses what is called the win32 API. See e.g
45 > https://en.wikipedia.org/wiki/Windows_API#Versions For example a
46 > GdkWindow is created via CreateWindowExW, root of that
47 > documentation is apparently at
48 > https://msdn.microsoft.com/en-us/library/windows/desktop/ff818516(v=
49 vs.85).aspx
50 >
51 > It doesn't use the Windows API higher level UI stuff, like
52 > wxWidgets does, but only the low-level stuff, and then emulating
53 > the themeing as best as it can right now, like Qt does. So in
54 > that way win32gui might be misleading. win32 or win32api or
55 > winapi or I dunno.
56
57
58 USE="winapi" is likely a better flag name, if others agree (and also
59 agree to the necessity of the flag) then I'll switch to that.
60
61
62 >
63 > Theoretically you can also build this stuff for consumption with
64 > wine. Or maybe ReactOS? Basically the only real point I have is
65 > that anything kernel_* to control this probably doesn't make
66 > sense.
67
68
69 I can confirm what I've built with my mingw-crossdev works under
70 wine; no idea on ReactOS but I don't see why it wouldn't. That
71 said, I expect anything built to run on a 'kernel_Winnt' would run
72 on both anyways so I may well have undone your point. :)
73
74
75 -----BEGIN PGP SIGNATURE-----
76 Version: GnuPG v2
77
78 iF4EAREIAAYFAlcX134ACgkQAJxUfCtlWe1g1gD9GlVY1GlsHSkOhBtR3RTJKpqp
79 pgE3HtSptJpb9gz7zQoA/21XSnNGzs3+/UOagD+R3pRe5cHaUGRSv8m0MN7wAcYF
80 =4Uoi
81 -----END PGP SIGNATURE-----