<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from text --><style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<div>
<p dir="auto" style="text-align:left; margin-top:25px; margin-bottom:25px; font-family:sans-serif; font-size:11pt; color:black; background-color:white">
Dylan, Nirbheek,</p>
<p dir="auto" style="text-align:left; margin-top:25px; margin-bottom:25px; font-family:sans-serif; font-size:11pt; color:black; background-color:white">
Thanks for the info.</p>
<p dir="auto" style="text-align:left; margin-top:25px; margin-bottom:25px; font-family:sans-serif; font-size:11pt; color:black; background-color:white">
I made a bit more progress.</p>
<p dir="auto" style="text-align:left; margin-top:25px; margin-bottom:25px; font-family:sans-serif; font-size:11pt; color:black; background-color:white">
One newbie question: what's your workflow to update a wrap patch? Can we prototype changes locally without tarballing the patch?</p>
<p dir="auto" style="text-align:left; margin-top:25px; margin-bottom:25px; font-family:sans-serif; font-size:11pt; color:black; background-color:white">
One request: would it be possible to update the compiler args for both c and c++ with a single statement? (Maybe accept a list of languages instead of a single language?)</p>
<p dir="auto" style="text-align:left; margin-top:25px; margin-bottom:25px; font-family:sans-serif; font-size:11pt; color:black; background-color:white">
</p>
<p dir="auto" style="text-align:left; margin-top:25px; margin-bottom:25px; font-family:sans-serif; font-size:11pt; color:black; background-color:white">
Jose</p>
<br>
<p></p>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> Dylan Baker <dylan@pnwbakers.com><br>
<b>Sent:</b> Tuesday, April 11, 2017 2:04:20 AM<br>
<b>To:</b> Jose Fonseca; Nirbheek Chauhan<br>
<b>Cc:</b> mesa-dev@lists.freedesktop.org<br>
<b>Subject:</b> Re: [Mesa-dev] Meson mesademos (Was: [RFC libdrm 0/2] Replace the build system with meson)</font>
<div> </div>
</div>
</div>
<font size="2"><span style="font-size:10pt;">
<div class="PlainText">Quoting Dylan Baker (2017-04-10 11:50:36)<br>
> Quoting Nirbheek Chauhan (2017-04-10 06:59:02)<br>
> > Hello Jose,<br>
> > <br>
> > On Mon, Apr 10, 2017 at 5:41 PM, Jose Fonseca <jfonseca@vmware.com> wrote:<br>
> > > I've been trying to get native mingw to build. (It's still important to<br>
> > > prototype mesademos with MSVC to ensure meson is up to the task, but long<br>
> > > term, I think I'll push for dropping MSVC support from mesademos and piglit,<br>
> > > since MinGW is fine for this sort of samples/tests programs.)<br>
> > ><br>
> > > However native MinGW fails poorly:<br>
> > ><br>
> > > [78/1058] Static linking library src/util/libutil.a<br>
> > > FAILED: src/util/libutil.a<br>
> > > cmd /c del /f /s /q src/util/libutil.a && ar @src/util/libutil.a.rsp<br>
> > > Invalid switch - "util".<br>
> > ><br>
> > > So the problem here is that meson is passing `/` separator to the cmd.exe<br>
> > > del command, instead of `\`.<br>
> > ><br>
> > > Full log<br>
> > > <a href="https://ci.appveyor.com/project/jrfonseca/mesademos/build/job/6rpen94u7yq3q69n">
https://ci.appveyor.com/project/jrfonseca/mesademos/build/job/6rpen94u7yq3q69n</a><br>
> > ><br>
> > <br>
> > This was a regression with 0.39, and is already fixed in git master:<br>
> > <a href="https://github.com/mesonbuild/meson/pull/1527">https://github.com/mesonbuild/meson/pull/1527</a><br>
> > <br>
> > It will be in the next release, which is scheduled for April 22. In<br>
> > the meantime, please test with git master.<br>
> > <br>
> > ><br>
> > > TBH, this is basic windows functionality, and if it can't get it right then<br>
> > > it shakes my belief that's it's getting proper windows testing...<br>
> > ><br>
> > <br>
> > I'm sorry to hear that.<br>
> > <br>
> > ><br>
> > > I think part of the problem is that per<br>
> > > <a href="https://github.com/mesonbuild/meson/blob/master/.appveyor.yml">https://github.com/mesonbuild/meson/blob/master/.appveyor.yml</a> Meson is only<br>
> > > being tested with MSYS (which provides a full-blow POSIX environment on<br>
> > > Windows), and not with plain MinGW.<br>
> > ><br>
> > <br>
> > Actually, this slipped through the cracks (I broke it!) because we<br>
> > didn't have our CI testing MinGW. Now we do, specifically to catch<br>
> > this sort of stuff: <a href="https://github.com/mesonbuild/meson/pull/1346">https://github.com/mesonbuild/meson/pull/1346</a>.<br>
> > <br>
> > All our pull requests are required to pass all CI before they can be<br>
> > merged, and every bug fixed and feature added is required to have a<br>
> > new test case for it, so I expect the situation will not regress<br>
> > again.<br>
> > <br>
> > Our CI is fairly comprehensive -- MSVC 2010, 2015, 2017, MinGW, Cygwin<br>
> > on just Windows and getting better every day. The biggest hole in it<br>
> > right now is BSD, and we would be extremely grateful if someone could<br>
> > help us with that too!<br>
> > <br>
> > > IMHO, MSYS is a hack to get packages that use autotools to build with MinGW.<br>
> > > Packages that use Windows aware build systems (like Meson is trying to be)<br>
> > > should stay as _far_ as possible from MSYS....<br>
> > ><br>
> > <br>
> > Yes, I agree. MSYS2 in particular is especially broken (the toolchain<br>
> > is buggy and even the python3 shipped with it is crap) and we do not<br>
> > recommend using it at all (although a surprisingly large number of<br>
> > people use its toolchain, so we do support it). If you look closely,<br>
> > we do not use MSYS itself, only MinGW:<br>
> > <br>
> > <a href="https://github.com/mesonbuild/meson/blob/master/.appveyor.yml#L61">https://github.com/mesonbuild/meson/blob/master/.appveyor.yml#L61</a><br>
> > <br>
> > The MSYS paths are C:\msys64\usr\bin and the MinGW (toolchain) paths<br>
> > are C:\msys64\mingw??\bin.<br>
> > <br>
> > And in any case our codepaths for building something with the Ninja<br>
> > backend on MSVC and MinGW are almost identical, and our MSVC CI does<br>
> > not have any POSIX binaries in their path.<br>
> > <br>
> > I even have all of Glib + dependencies building out of the box with<br>
> > just Meson git + MSVC [<a href="https://github.com/centricular/glib/">https://github.com/centricular/glib/</a>], and my<br>
> > next step is to have all of GStreamer building that way.<br>
> > <br>
> > Hope this clarifies things!<br>
> > <br>
> > Cheers,<br>
> > Nirbheek<br>
> <br>
> Jose,<br>
> <br>
> I installed meson from git as Nirbheek suggested, and it got the mingw build<br>
> working, and fixed the appveyor build to actually start, although I ran into<br>
> some problems with freeglut I'm not sure if I'll have time to fix today<br>
> (although I'd like to get them fixed). If you pull my branch both the travis<br>
> build will turn completely green, and the MinGW build turns green on appveyor,<br>
> though MSVC still doesn't. My meson branch is based on yours and you should be<br>
> able to apply the changes cleanly.<br>
<br>
I have freeglut building, but we're waiting for a patch to land in meson for<br>
getting vs_modules_defs to take generated files (which we need for either glew<br>
or freeglut, I can't remember which off the top of my head) (and nirbheek was so<br>
kind as to review). Assuming that my patch lands today you may be able to get<br>
started on msvc for mesa-demos itself, or we may need to to a little more work<br>
to get freeglut and/or glew building on msvc.<br>
<br>
You'll probably want to either pull my meson branch, or at least look at to get<br>
these fixes. without the updated freeglut patch meson will fail to build when it<br>
fails the sha256 check.<br>
<br>
Thank you for setting up appveyor support, btw. In lieu of a real windows<br>
install with visual studio it's been very helpful, but I've never figured out<br>
how to configure it for C/C++ projects.<br>
<br>
Here's the patch for reference: <a href="https://github.com/mesonbuild/meson/pull/1606">
https://github.com/mesonbuild/meson/pull/1606</a><br>
<br>
Dylan<br>
</div>
</span></font>
</body>
</html>