@ar2rsawseen: Ok finally got around to trying to build Gideros from scratch (on a WindowsXP machine). First thing I noticed was the sources had to be on a drive root so I mapped a network drive to the folder containing the Gideros source.
A couple of things jumped out at me, first was a problem with Cygwin not working properly as cp refused to work with '\', so I removed Cygwin from my path and installed GNUWin CoreUtils from the link suggested by @EricCarr.
The next problem came from GNUWin32 didn't come with a copy of make (a common problem it seems). The solution was to install GNUmake from this link.
Now all is Hunky Dory (or so it seems) as things start to build. That is until ui which refuses to build due to a missing file on line 12 of "mainwindow.h" (which turned out to be a missing library)
#include <Qsci/qsciscintilla.h>
After some more internet trolling, I found this link explaining more about QScintilla and what it does. There is also a section on instalation. SO I downloaded QScintilla from here and following these instructions
cd Qt4Qt5
qmake qscintilla.pro
make
make install
we got the thing built and installed.
Tried to build ui again using buildqt.bat and success (it appears). I then ran the whole all_windows.bat and everything appears to have compiled without any more problems.
Joy of joys, everything has compiled. Then I run copyall.bat and everything appears to have been copied into the release folder.
I start running the built apps and all appears to be going smoothly until I try to run GiderosStudio.exe which causes an exception
Unhandled exception at 0x61b04164 in GiderosStudio.exe:0xC0000005: Access violation reading location 0x00000000.
All other apps work perfectly fine. I can only assume that it may have something to do with QScintilla. Any help would be greatly appreciated. The executable & QScintilla dll can be found here
Kate's Catalogue of Travelling Theatre Centres : Meet Kate. Grey is her favourite colour. Maths is her favourite subject. Decency is her favourite type of behaviour. She definitely does not like jewellery or modelling, but loves aeroplanes and other machines made of aluminium.
@atilim: I did build it in release mode. Maybe I don't have the correct version of QScintilla. I will check tomorrow. Meanwhile, I have included the executable & dll files in my previous post. Could you check if it runs in your environment, with your QScintilla.dll?
I did my best understanding and leveraging the building scripts. The wiki page was clear enough to me (but I was a bit skilled in C/C++ builds and QTCreator) and I managed to build the "release" on my Win Seven.
To do so, I installed QT5. I don't think there was an option NOT to install Mingw; So I got it straight of the box. I found the "QT5.3 for Desktop" icon launches a command prompt with everything set as expected.
So "call C:\Qt\5.3\mingw482_32\bin\qtenv2.bat " lines are pretty useless as far as I can tell. Note also the default path of QT is not the same as found in the .bat files.
I was bothered by the .bat files with \ instead of / in cp commands. I don't know why, but my GNU "cp" command wants "/" even on windows. I don't know how to check I'm using the mingw version.
Building a "debug" version of the player was not intuitive. Though there is a ./debug directory in the player one.
I created first a "Debug" target and activated "shadow build" and pointed the debug directory. Unfortunately, it makes the -L relative paths wrong by adding a level of folder. Don't know if I'm an idiot or QTCreator is dumber than expected.
I eventually dismissed the "shadow build" idea and manage to rebuild the player in "debug" mode. It was a bit black magic to me, but it worked.
Running the player in debug mode was hard. Because of all the dll dependencies. Eventually, I added into Creator a "cp" deploying command to put the exe in the "release" directory where all previously built dll are found. I told QTCreator where the final exe was supposed to be and the debugging process started working.
For some reason, the release folder didn't contain all the lua resources needed to make the player operational. I don't know which bat script was supposed to put them. I copied what I found in my original gideros copy and it worked.
Now my bug belongs to the memory corruption kind and the exe hangs at different places. I however noticed I need a debug version of libgid.dll ; That's where I'm stuck now. The debug version of libgid I built doesn't really work. The exe logs: QEventLoop: Cannot be used without QApplication QObject::connect: Cannot connect (null)::aboutToQuit() to QNativeWifiEngine::closeHandle()
then my app runs till a "dialog box" is shown. And player crashes with: QWidget: Must construct a QApplication before a QWidget Invalid parameter passed to C runtime function. Invalid parameter passed to C runtime function.
So. Here's my experience. Thanks for the hard work.
Despite my self compiled libgid.dll has issues of its own, the resulting windows player seems more stable at first glance. No crash when closing. So I found this fix here: https: //github.com/gideros/gideros/commit/acd5b4662d2cfdcba82f0c9200659a7130f96dba ; Are the downloadable binaries up to date with this fix?
I think the splash screen should be a file you can pick or switch off - the default one being the Gideros one.
Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!). https://deluxepixel.com
Thank you guys! I just spent a few hours to compile Gideros on Linux and it works! Finally I can comfortably develop on Linux without having to use buggy Wine. Open-source software rocks! :x
@baongoc124 You should give your changes to @John26 so the Kickstarter team will be able to put the changes into their Gideros version - it may make it much easier for them to make the Pi and other linux versions.
Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!). https://deluxepixel.com
@talis I have to patch some places in the code but mostly *.pro files. Maybe I can provide a diff versus 2014.10 version and put in some instructions to use that to build. @SinisterSoft I'd love to contribute to Gideros. But it seems their github repo isn't quite active. Not sure if I create a pull request it will get merged.
Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!). https://deluxepixel.com
@SinisterSoft I did. But it looks like he's trying to make it work for Windows so there're some hardcode in places. Maybe I'll make a fork and put my changes there and decide other stuff later.
Then for Gideros Studio and Gideros Player you would need QT5.4 with QT Creator IDE. If QT asks you about shadow build, don't use it, build in the same directory.
Also remember to build all projects in same configuration, like building all debug versions or all release versions
So you need to open projects (.pro files) and build them in this order:
libpystring libgvfs lua libgid libgideros
And then you can player/player_qt5.pro to play and build the player
I don't really know how that will be in OSX, but in Windows you also need to copy some dll files to the player build directory, like icudt53.dll, icuin53.dll and icuuc53.dll. So I did it with the script: https://github.com/gideros/gideros/blob/master/scripts/copyqt5.bat
Gideros Studio I think was a little easier, it only had it's ui.pro file to build and you would only need to prebuilt QScintilla, basically what described in wiki
Which is OK until you try to build the player on a Windows box where you encounter the error
sources/glcanvas.cpp:503:78: error:'AppDataLocation' is not a member of 'QStandardPaths'
documentsDirectory = qPrintable(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation));
I think QStandardPaths::AppDataLocation was only introduced in Qt5.4.
With the current install of Qt (Qt5.4.2) the line should now read
Comments
http://giderosmobile.com/DevCenter/index.php/Special:RequestAccount
A couple of things jumped out at me, first was a problem with Cygwin not working properly as cp refused to work with '\', so I removed Cygwin from my path and installed GNUWin CoreUtils from the link suggested by @EricCarr.
The next problem came from GNUWin32 didn't come with a copy of make (a common problem it seems). The solution was to install GNUmake from this link.
Now all is Hunky Dory (or so it seems) as things start to build. That is until ui which refuses to build due to a missing file on line 12 of "mainwindow.h" (which turned out to be a missing library)
#include <Qsci/qsciscintilla.h>
cd Qt4Qt5 qmake qscintilla.pro make make install
Tried to build ui again using buildqt.bat and success (it appears). I then ran the whole all_windows.bat and everything appears to have compiled without any more problems.
Joy of joys, everything has compiled. Then I run copyall.bat and everything appears to have been copied into the release folder.
I start running the built apps and all appears to be going smoothly until I try to run GiderosStudio.exe which causes an exception
Website: http://www.castlegateinteractive.com
https://play.google.com/store/apps/developer?id=Castlegate+Interactive
Currently I can't say why Gideros Studio is not working for you, maybe @atilim knows any better way to get meaningful error message.
Meet Kate. Grey is her favourite colour. Maths is her favourite subject. Decency is her favourite type of behaviour.
She definitely does not like jewellery or modelling, but loves aeroplanes and other machines made of aluminium.
Here is the repository for plugins including ones where in Labs and couple of new ones
https://github.com/gideros/giderosplugins
Likes: vitalitymobile, SinisterSoft
Likes: jdbc, vitalitymobile, hgvyas123, SinisterSoft
Website: http://www.castlegateinteractive.com
https://play.google.com/store/apps/developer?id=Castlegate+Interactive
To do so, I installed QT5. I don't think there was an option NOT to install Mingw; So I got it straight of the box. I found the "QT5.3 for Desktop" icon launches a command prompt with everything set as expected.
So "call C:\Qt\5.3\mingw482_32\bin\qtenv2.bat " lines are pretty useless as far as I can tell. Note also the default path of QT is not the same as found in the .bat files.
I was bothered by the .bat files with \ instead of / in cp commands. I don't know why, but my GNU "cp" command wants "/" even on windows. I don't know how to check I'm using the mingw version.
My objective is to debug the Windows player which crashes almost every time I close/restart my app (http://giderosmobile.com/apps/renabomb-vengeance).
Building a "debug" version of the player was not intuitive. Though there is a ./debug directory in the player one.
I created first a "Debug" target and activated "shadow build" and pointed the debug directory. Unfortunately, it makes the -L relative paths wrong by adding a level of folder. Don't know if I'm an idiot or QTCreator is dumber than expected.
I eventually dismissed the "shadow build" idea and manage to rebuild the player in "debug" mode. It was a bit black magic to me, but it worked.
Running the player in debug mode was hard. Because of all the dll dependencies. Eventually, I added into Creator a "cp" deploying command to put the exe in the "release" directory where all previously built dll are found. I told QTCreator where the final exe was supposed to be and the debugging process started working.
For some reason, the release folder didn't contain all the lua resources needed to make the player operational. I don't know which bat script was supposed to put them. I copied what I found in my original gideros copy and it worked.
Now my bug belongs to the memory corruption kind and the exe hangs at different places. I however noticed I need a debug version of libgid.dll ; That's where I'm stuck now. The debug version of libgid I built doesn't really work.
The exe logs: QEventLoop: Cannot be used without QApplication
QObject::connect: Cannot connect (null)::aboutToQuit() to QNativeWifiEngine::closeHandle()
then my app runs till a "dialog box" is shown. And player crashes with:
QWidget: Must construct a QApplication before a QWidget
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.
So. Here's my experience. Thanks for the hard work.
let me ask @atilim for help on this one
https://deluxepixel.com
Likes: SinisterSoft, john26
Likes: lsouchet
https://deluxepixel.com
@SinisterSoft I'd love to contribute to Gideros. But it seems their github repo isn't quite active. Not sure if I create a pull request it will get merged.
https://github.com/Liberton/gideros/
https://deluxepixel.com
Likes: SinisterSoft
if yes then it depends on what part you want to build, like Gideros Player, or Gideros Studio, etc.
or you want to create end build, like installation packages?
That part.
If QT asks you about shadow build, don't use it, build in the same directory.
Also remember to build all projects in same configuration, like building all debug versions or all release versions
So you need to open projects (.pro files) and build them in this order:
libpystring
libgvfs
lua
libgid
libgideros
And then you can player/player_qt5.pro to play and build the player
I don't really know how that will be in OSX, but in Windows you also need to copy some dll files to the player build directory, like icudt53.dll, icuin53.dll and icuuc53.dll. So I did it with the script:
https://github.com/gideros/gideros/blob/master/scripts/copyqt5.bat
Gideros Studio I think was a little easier, it only had it's ui.pro file to build and you would only need to prebuilt QScintilla, basically what described in wiki
Likes: MikeHart
https://github.com/gideros/gideros/blob/master/scripts/install.mac.script.sh
and you need match same dependencies on Linux
The following files all have the line
With the current install of Qt (Qt5.4.2) the line should now read
Website: http://www.castlegateinteractive.com
https://play.google.com/store/apps/developer?id=Castlegate+Interactive