Compiling Gideros Luau Source
The following instructions are for developers who want to contribute to or otherwise experiment with the Gideros C/C++ engine and are not necessary for either building or deploying apps made with Gideros.
The Gideros project consists of the Gideros Studio IDE, the Gideros SDK libraries, Gideros Texture Packer, Gideros Font Creator, "players" or export templates for all the platforms Gideros supports, all targets of all plugins, a daemon and a bridge. The build system is flexible, so you only need the tools for the targets you are interested in deploying to with Qt (and MSYS2 on Windows) being a realistic minimum.
A QUICK GUIDE TO BUILD GIDEROS STUDIO ONLY
Here are the easy steps to build Gideros Studio only without all the bells and whistles (no android, no html5, ...). Please follow the steps:
- 1.1 Install QT6
- 1.2 Install MSYS2 Console
- 2.1 Fetch gideros source code
Since we only build Gideros Studio (if you have not set up the plugins), you need to edit scripts/Makefile.gid:
PLUGINS_WIN=$(PLUGINS_ALL) clipper struct controller camera
#PLUGINS_WINONLY=spout steam luamidi
PLUGINS_WINONLY=luamidi
- 2.2 Configure scripts
Your Makefile.def can look something as simple as this:
QTBASEDIR=/c/Qt6
MAKEJOBS=-j8 #may not be required?
QT_ARCH=mingw_64
#QT_TOOLSARCH=mingw900_64
QT_TOOLSARCH=mingw1120_64
#QTVER=6.2.2
QTVER=6.2.3
- 3 Building Gideros
- 3.1 Build QT tools
And that's it, you will have latest Gideros Studio and all its tools available.
Extra: you can copy the templates from original Gideros and put them in the templates folder of your Gideros. You will then be able to export to usual devices (android, html, ...)
Windows 10 64bit
Install QT
You can download the Qt for open source users at:
Double click on the downloaded file and follow instructions.
Recommended version 6.2.2 with MinGW 9.0 (if you don’t see it check the box Archive and click Filter). Should work fine with Qt version 6.2.3 (LTS) and MinGW 11.20.
When installing, expand the tree view and ensure you have checked the following boxes:
- Qt 6.2.2: MinGW 9.0.0 64-bit
- Qt 6.2.2: Qt 5 compatibility module
- Qt 6.2.2, Additional Libraries: Qt Multimedia
- Qt 6.2.2, Additional Libraries: Qt Websockets
- Developer and Designer Tools: MinGW 11.2.0 64-bit
Here is a screenshot of the Qt modules:
If you already have Qt6 installed without those modules, you can add them via Qt MaintenanceTool.exe located in your Qt folder like so:
When you are done click finish.
Install MSYS2 Console
Once installed, open MSYS2 shell (msys2_shell.cmd):
Then run the following commands:
note: copy/paste won’t work, you have to type the commands:
pacman -Sy pacman
pacman -Syu
pacman -Su
pacman -S git
pacman -S make
pacman -S python
pacman -S tar
pacman -S zip
pacman -S unzip
pacman -S base-devel
# old stuff don’t use? #
# For compiling win32 under a MinGW64
# note: for pacman -S mingw-w64-i686-toolchain, if asked choose group 17? #
pacman -S mingw-w64-i686-toolchain
pacman -S mingw-w64-i686-glew
pacman -S mingw-w64-i686-curl
# old stuff don’t use? #
Install Android Studio and NDK
(Not tested yet)
https://developer.android.com/studio/index.html
https://developer.android.com/ndk/downloads/older_releases.html (old for gideros ndk 17c)
https://github.com/android/ndk/wiki (for newer releases)
Recommended NDK is 17c (the x86_64 version)
Once downloaded, copy the contents of the NDK to your home or C: folder, rename the folder that you copied to 'android-ndk', for example you will end up with 'c:\android-ndk' and below that folders that say build, meta, platforms, etc.
Install JAVA
You need the Java JDK from Oracle:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Or an open JDK (recommanded):
Install Visual Studio
(Not tested yet)
Visual Studio Community Edition 2022:
https://www.visualstudio.com/downloads/
Select the box Developing for Desktop apps and install.
– to come -- For UWP ads: https://social.msdn.microsoft.com/Forums/windowsapps/en-US/db8d44cb-1381-47f7-94d3-c6ded3fea36f/microsoft-ad-monetization-platform-shut-down-as-of-june-1st?forum=aiamgr – to come --
Install Python
(Not tested yet)
https://www.python.org/downloads/release/python-2712/
You need Python 2.7.12 or later to install emscripten properly.
Once installed, add it to your command line path, eg: c:\python27. On windows you can do this by right-clicking on 'myComputer' or 'This PC', go to 'Properties', click 'Advanced System Settings', Click 'Environmental Variables', double-click 'Path', add 'c:\python27'
Install emscripten
(Not tested yet)
http://kripken.github.io/emscripten-site/
You need this if you want to build for HTML5 + Facebook games.
Using a shell or MSYS2 (msys2_shell.cmd) go to your home or C: folder and type:
git clone https://github.com/juj/emsdk.git
Once that has completed open a command prompt in that folder on Windows.
Using emsdk, install and activate all the latest packages:
note: (on non-PC put ./ before emsdk)
emsdk install latest
emsdk activate latest
emsdk_env.bat
To use incoming branch of emscripten, use these commands instead:
note: (on non-PC put ./ before emsdk)
emsdk install sdk-incoming-64bit
emsdk activate sdk-incoming-64bit
To further use Gideros own git fork of emscripten:
cd emscripten/incoming
#Add a git remote link to your own repository
git remote add gideros https://github.com/gideros/emscripten.git
#Obtain the changes in your link
git fetch gideros
#Switch the emscripten-incoming tool to use your fork
git checkout -b gideros_incoming --track gideros/incoming
#Get back to emscripten directory and rebuild
cd ../..
emsdk install sdk-incoming-64bit
These can also be installed within emsdk: git, crunch, and spidermonkey:
note: (on non-PC put ./ before emsdk)
emsdk install git-1.9.4
emsdk install crunch-1.03
emsdk install spidermonkey-37.0.1-64bit
emsdk activate git-1.9.4
emsdk activate crunch-1.03
emsdk activate spidermonkey-37.0.1-64bit
emsdk_env.bat
Make sure the environment variable EM_CONFIG is set to the location of your emscripten config file.
The emscripten build also needs the CMake command. You can download it and extract it to your home or C: folder. Don't forget to add it's path to the end of the EMSDKPATH in Makefile.def.
Install Steam SDK
(Not tested yet)
https://partner.steamgames.com/?goto=%2Fdownloads%2Fsteamworks_sdk.zip
Extract the archive/zip file to your home or C: folder, for example if the file is called 'steamworks_sdk_142.zip' then you will have a 'c:\steamworks_sdk_142' folder with a solder called 'sdk' within it. The sdk folder contains other folders such as glmgr, public, tools, etc.
This is necessary for the Steam plugin.
Install NSIS
https://nsis.sourceforge.io/Download
Install the software as you would any software. We will edit Makefile.def for it later.
Install Gideros from Source
Fetch gideros source code
Open MSYS2 shell (msys2_shell.cmd).
Navigate to the folder where you want to work. For example I want to put Gideros Github repo in my dev folder:
$ cd /c/dev
Then in the dev folder we will clone Gideros from GH to a folder of our choice (“gideros_dev” for example) using this git command:
git clone https://github.com/gideros/gideros gideros_dev
If you already have cloned Gideros to a local repo you can update it (cf: https://stackoverflow.com/questions/26984847/how-to-update-local-repo-with-master):
- in MSYS2 shell (msys2_shell.cmd) navigate to your local repo, example:
cd /c/dev/gideros_dev
- check your current branch with:
git branch
- then update your local branch with the remote branch (master should be the name of your branch):
git pull origin master
If you want to update your existing local repo you can try:
git fetch
(git merge OR git pull)
If you already have cloned Gideros to a local repo but you made some changes to some files, then you may get this error message:
error: Your local changes to the following files would be overwritten by merge Please, commit your changes or stash them before you can merge.
- to fix this issue in MSYS2 shell (msys2_shell.cmd) you can try this:
git reset --hard
Configure scripts
Make a copy of the file gideros/scripts/Makefile.def.example, rename it to Makefile.def and update the file copy according to your installation. Ensure that the QT\_ARCH and QT_TOOLSARCH paths are formatted correctly according to your Qt install directory structure (see below that they are named differently by Qt). Here is the current version you will find in gideros scripts folder, please adapt accordingly:
QTBASEDIR=/c/Applications/Qt
MAKEJOBS=-j8
NDKBUILD=cmd //c /c/Applications/android-ndk-r17b/ndk-build.cmd
JAVA_HOME=C:\Program Files\Android\Android Studio\jre
ANDROID_HOME=C:\\\\Users\\\\User\\\\AppData\\\\Local\\\\Android\\\\Sdk
FXC="/c/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x86/fxc.exe"
# the following is one line!
MSBUILD="/c/Program Files/Microsoft Visual Studio/2022/Community/MSbuild/Current/Bin/MSBuild.exe"
EMSDK=/c/Applications/emscripten
EMSDKPATH=$(EMSDK):$(EMSDK)/node/14.15.5_64bit/bin:$(EMSDK)/python/3.9.2-1_64bit:$(EMSDK)/upstream/emscripten:$(EMSDK)/upstream/bin
EMSDK_PREFIX=PATH=$(EMSDKPATH):$$$$PATH
EMSDK_PREFIX=cmd //c
STEAMSDK=/c/Applications/steamworks_sdk_142
export STEAMSDK
WIN32_BIN=/mingw32/bin
export WIN32_BIN
CRUNCHME=crunchme-qt-win.exe
NSIS=cmd //c "/c/Program Files (x86)/NSIS/makensis.exe"
WIN_SIGN="/c/Program Files (x86)/Windows Kits/10/bin/x86/signtool.exe"
#WIN_KEYSTORE=/path/to/cert.p12
#WIN_KEYPASS=KeyPassword
#WIN_KEYTSS="http://timestamp.comodoca.com"
MAC_HOST=user@host
MAC_PATH=gideros/gideros
OSX_SIGNING_IDENTITY="ID"
OSX_SIGNING_PASSWORD="keychain password"
QT_ARCH=mingw_64
QT_TOOLSARCH=mingw900_64
#QT_TOOLSARCH=mingw1120_64
QTVER=6.2.2
#QTVER=6.2.3
QT5ICUVER=54
#QT5ICUVER=56
Building Gideros
After setting up the Makefile.def, in MSYS2 shell (msys2_shell.cmd) navigate to your Gideros repo:
cd gideros_dev
Then the first steps to build Gideros are:
make -f scripts/Makefile.gid prep.repo
make -f scripts/Makefile.gid qscintilla
make -f scripts/Makefile.gid qlexilla
make -f scripts/Makefile.gid versioning
Build QT tools:
This will build Gideros Studio and all its associated apps.
make –f scripts/Makefile.gid qtapp.install
=> files GiderosStudio.exe, GiderosPlayer.exe, GiderosTexturePacker.exe (…) in Build.Win folder
Android:
This will build Gideros Android export template.
make –f scripts/Makefile.gid android.install
=> file GiderosAndroidPlayer.apk in folder Build.Win/Players
winRT:
This will build Gideros winRT export template.
make –f scripts/Makefile.gid winrt.install
=> file _bundle.appxupload in folder Build.Win/Players/WinRT
Note: if necessary, open the solution, gideros/winRT_example/giderosgame.sln in Visual Studio. Check that the SQLite version for Windows and Windows Phone is up to date. Save and close the solution.
win32:
This will build Gideros win32 export template.
make –f scripts/Makefile.gid win32.install
=> files in folder Build.Win/Templates/win32
Html5:
This will build Gideros Html5 export template.
make –f scripts/Makefile.gid html5.install
=> files in folders Build.Win//Players/Html5 and Build.Win/Templates/Html5
Plugins:
make –f scripts/Makefile.gid bundle.win
=> folder bin and file gplugin in folder Build.Win/All Plugins
To build everything that can be built on Windows:
make -f scripts/Makefile.gid all
Then you need to copy all the plugins to the 'Build.Win' folder with:
make -f scripts/Makefile.gid bundle.win
Cleaning
If you want to reset the build process and start again then you can issue a 'clean' command. To do this type 'make -f scripts/Makefile.gid clean'. Example:
make -f scripts/Makefile.gid clean
Sometimes you need to make clean a particular build. To do this type 'make -f scripts/Makefile.gid' followed by something like 'html5' then '.clean'. Example:
make -f scripts/Makefile.gid html5.clean
Troubleshooting:
MSYS2 on Windows 10 - cannot update the package database using pacman #2589 Sprinkles44 opened this issue on 28 Jul 2021 · 7 comments MSYS2 on Windows 10 - cannot update the package database using pacman #2589 Sprinkles44 opened this issue on 28 Jul 2021 · 7 comments Comments
Sprinkles44 commented on 28 Jul 2021
I tried to update my MSYS2 on Windows 10 (as per the instructions on https://www.msys2.org/) and I got this error:
OscarAlvarez@Lambda-Station-OA MINGW64 ~
$ pacman -Syu
error: config file /etc/pacman.d/mirrorlist.mingw could not be read: No such file or directory
So I did a fresh install of MSYS2 on Windows 10. I got the binaries from the MSYS2 website and installed it successfully. Now, I am getting the same error. I went into the /etc/pacman.d/ directory and this is what was inside:
OscarAlvarez@Lambda-Station-OA MINGW64 /etc/pacman.d
$ ls
gnupg mirrorlist.clang64 mirrorlist.mingw32 mirrorlist.mingw64 mirrorlist.msys mirrorlist.ucrt64
I didn't find the file so I created an empty file with the name "mirrorlist.mingw" and ran the update but to no avail. So I just deleted the empty file I created. No other flags like -S, -Su, or -Syy, etc. work and produce the same error. Thank you.
- OS: Windows 10 Education
Collaborator
Biswa96 commented on 28 Jul 2021
There is something wrong in your pc setup. Antivirus software may delete files without any reason. To workaround this situation
- Download the pacman-mirrors package file (.pkg.tar.zst) file from here https://packages.msys2.org/package/pacman-mirrors?repo=msys&variant=x86_64.
- Install it with pacman -U --overwrite=* pacman-mirrors-20210706-1-any.pkg.tar.zst command.
- Run pacman -Syyuu to update packages.
Author
Sprinkles44 commented on 28 Jul 2021
I only have the Windows 10 antivirus that comes with the OS. I do not have any other antivirus software.
I downloaded the file then opened MSYS2 and ran the command. I get the same error:
OscarAlvarez@Lambda-Station-OA MSYS ~
# pacman -U --overwrite=* pacman-mirrors-20210706-1-any.pkg.tar.zst
error: config file /etc/pacman.d/mirrorlist.mingw could not be read: No such file or directory
It seems to me that I can't run any pacman command. You say to run that command but where do I run it, in MSYS2? If I run it with MSYS2, do I move the downloaded file to a specific directory or will the downloaded file just be detected automatically anywhere on my system? It's in my download folder right now. Thank you.
Collaborator
Biswa96 commented on 28 Jul 2021
error: config file /etc/pacman.d/mirrorlist.mingw could not be read: No such file or directory
Create that empty file as you have said in original post. Then run the pacman -U command. You say to run that command but where do I run it, in MSYS2? Any msys2/mingw window. will the downloaded file just be detected automatically anywhere on my system? You need to specify the full path of that .pkg.tar.zst file in that pacman -U command. Or drag and drop the .pkg.tar.zst file in msys2 window, it will automatically show the full path.
Author
Sprinkles44 commented on 30 Jul 2021
error: config file /etc/pacman.d/mirrorlist.mingw could not be read: No such file or directory
Create that empty file as you have said in original post. Then run the pacman -U command. You say to run that command but where do I run it, in MSYS2? Any msys2/mingw window. will the downloaded file just be detected automatically anywhere on my system? You need to specify the full path of that .pkg.tar.zst file in that pacman -U command. Or drag and drop the .pkg.tar.zst file in msys2 window, it will automatically show the full path. Thank you that seems to have worked (sort of). Now I only get this error:
OscarAlvarez@Lambda-Station-OA MSYS ~
$ pacman -Syu
:: Synchronizing package databases...
error: failed to synchronize all databases (no servers configured for repository)
I think I have to add to the repository or something like that but I am not too sure. Thank you again for helping.
Collaborator
jeremyd2019 commented on 30 Jul 2021
mv /etc/pacman.d/mirrorlist.mingw.pacnew /etc/pacman.d/mirrorlist.mingw
Author
Sprinkles44 commented on 30 Jul 2021
Thank you so much, it works perfectly now.