<div dir="ltr"><div dir="ltr"><div><br></div><div>I made a bunch of fixes, and now <b>wine scons</b> gets further.</div><div><br></div><div>Switching to 32 bit compiler packages instead of 64 bit helped a lot.</div><div><br></div><div>Also, I did manage to get reloadbasic.py running with just "python3" and not needing the whole path (The base image I am using sets up the PATH environment variable inside wine incorrectly for python). I have not made the change in the SConscript yet because i still need to upgrade from python2 to python3 on the Windows nightly build machine</div><div><br></div><div>Right now the current error I am bumping into is:</div><div><br></div><div><b>windres --input gicon.rc --output build\gicon.o<br>windres: can't popen `gcc -E -xc -DRC_INVOKED  gicon.rc': Bad file descriptor</b></div><div><br></div><div>I searched around for that error message, and found people suggesting to add the <b>windres.exe </b>argument <b>--use-temp-file</b> but that didn't help, it just changed the failure</div><div><br></div><div><b>windres --use-temp-file --input gicon.rc --output build\gicon.o<br>windres: can't redirect stdout: `C:\users\root\Temp\cca00360.irc': Bad file descriptor</b><br></div><div><br></div><div>Too much fun :D</div><div><br></div><div>I am also thinking ahead about how to do a docker build for Mac. Running darwin in Docker is apparently possible, but sounds impractical. An actual OSX inside KVM inside Docker is also apparently possible, but I feel like that defeats the point of dockerizing it. I guess i'll look at OSXcross more later.</div><div><br></div></div><div>Of course, the real goal I am working towards is not Dockerizing all the builds, it is really making Jenkins do all the builds-- so if dockerizing a build is more work than setting up an always-on VM with a Jenkins agent installed in it, then I just switch my approach :D</div><div><br></div><div>---</div><div>James<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Sep 18, 2021 at 11:09 PM Ralph Versteegen <<a href="mailto:teeemcee@gmail.com">teeemcee@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, 19 Sept 2021 at 12:56, James Paige <<a href="mailto:Bob@hamsterrepublic.com" target="_blank">Bob@hamsterrepublic.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>So now not only does fbc work in the wine docker container, so does mingw64 and euphoria</div><div><br></div><div> <b>wine scons hspeak</b> actually works, and produces a working hspeak.exe (tested with <b>wine hspeak</b>)</div><div><br></div><div>compiling game and custom fails though. I see two problems so far.</div><div><br></div><div>First, when scons executes reloadbasic/reloadbasic.py on Windows, this relies on the .py file type being associated with python, so scons seems to be directly invoking <b>reloadbasic/reloadbasic.py</b> and this works on Real windows because the filetype is associated with python.exe but on Wine, this type of file association does not seem to work, even when I make sure the association is set up with regedit.</div><div><br></div><div>Editing the constructor for the rbasic_builder in Sconscript to <b>Builder (action = ["C:\Python39\python.exe", [File('reloadbasic/reloadbasic.py'), ...</b> does work and fixes the problem, so I just need to work out a clean way to do that without breaking other platforms.</div></div></blockquote><div><br></div><div>Can't you just invoke python or python3 instead of C:\Python39\python.exe?</div><div>(I'm not sure whether we dropped python 2 support when you switched all the #! lines to python3; maybe python2 would still work if invoked explicitly, or maybe python3 will be called somewhere whether installed or not)<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>The other error is this:</div><div><br></div><div>os_windows.bas(107) error 20: Type mismatch, before ')' in 'dim fd as integer = _open_osfhandle(cast(integer, fhandle), 0)'<br>os_windows.bas(714) warning 35(1): Mixing signed/unsigned operands<br>os_windows.bas(784) warning 35(1): Mixing signed/unsigned operands</div><div><br></div><div>Which makes me think I might have a mismatch in my FreeBasic/mingw64 versions, but I don't really know yet, just a wild guess.</div></div></blockquote><div><br></div><div>This error is thrown by fbc, so the mingw version isn't related.</div><div>I suspect that maybe you're trying to compile for win64/x86_64? If fbc itself is a win64 .exe then it probably also defaults to win64 builds. If it has 32-bit libraries then it can compile for x86 with scons arch=32, and we should make that the default.<br></div><div>[Note: win64 informally is used to mean 64-bit windows, but win32 does not mean 32-bit Windows, it means not-16-bit, and for example compilers such as FB define __FB_WIN32__ (or equivalent in C) on 64-bit Windows]</div><div><br></div><div>I also see that you're downloading a 6-bit version of Euphoria for Windows, that should be 32-bit instead (I assume Euphoria can't crosscompile on Windows, just as it can't on Unix).<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>---</div><div>James</div><div><br></div><div><br></div><div><br></div><div><br></div><div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Sep 18, 2021 at 6:55 PM <<a href="mailto:subversion@hamsterrepublic.com" target="_blank">subversion@hamsterrepublic.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">james<br>
2021-09-18 15:55:34 -0700 (Sat, 18 Sep 2021)<br>
60<br>
Docker: ohrrpgce-build-env-wine now has mingw64 and euphoria<br>
---<br>
U   wip/docker/ohrrpgce-build-env-wine/Dockerfile<br>
<br>
_______________________________________________<br>
Ohrrpgce mailing list<br>
<a href="mailto:ohrrpgce@lists.motherhamster.org" target="_blank">ohrrpgce@lists.motherhamster.org</a><br>
<a href="http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org" rel="noreferrer" target="_blank">http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org</a><br>
</blockquote></div>
_______________________________________________<br>
Ohrrpgce mailing list<br>
<a href="mailto:ohrrpgce@lists.motherhamster.org" target="_blank">ohrrpgce@lists.motherhamster.org</a><br>
<a href="http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org" rel="noreferrer" target="_blank">http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org</a><br>
</blockquote></div></div>
_______________________________________________<br>
Ohrrpgce mailing list<br>
<a href="mailto:ohrrpgce@lists.motherhamster.org" target="_blank">ohrrpgce@lists.motherhamster.org</a><br>
<a href="http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org" rel="noreferrer" target="_blank">http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org</a><br>
</blockquote></div></div>