Compiling Gideros 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.
1.1 Install QT
Recommended version 6.2 with MinGW
Double click on the downloaded file and follow instructions. When installing, expand the tree view and ensure you have ticked the MinGW child option of the Qt version checkbox, as well as the MinGW option in the Tools section. Beside main QT package, you'll need the following additional components:
- WebSocket additional library
- Multimedia additional library
- Qt5 Compatibility addon
(MAC) Move the created folder into your user account folder
(LINUX) Depending on your distribution, you may need to install qt5 websocket lib seperately (sudo apt-get install libqt5websockets5-dev)
1.2 (PC) Install MSYS2 Console
Double click on the downloaded file (msys2-i686) and follow instructions.
Open 32 bit MSYS2 shell: msys2_shell.cmd
pacman –Sy pacman pacman –Syu pacman –Su pacman –S tar pacman –S zip pacman –S unzip pacman –S git pacman –S base-devel pacman -S python #For compiling win32 under a MinGW64 pacman -S mingw-w64-i686-toolchain pacman -S mingw-w64-i686-glew pacman -S mingw-w64-i686-curl pacman -S mingw-w64-i686-libpng
1.3 (Mac) Install Git & xcpretty
Ctrl + right click, open with « Install program.app » Follow instructions keeping default values as they are.
(MAC) open a terminal window
git config –global user.name "your git login" git config –global user.email "your git email" sudo gem install xcpretty
1.3.1 (Linux/Debian) Install Git, build-tools
apt install git build-essential libxcb-xinerama0 libgl1-mesa-dev libz-dev git config –global user.email "your git email"
1.4 (PC) Android requirements
1.4.1 Install Android Studio and NDK
Recommended NDK is 17b (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.
1.4.2 Install Ant (no longer required but kept util someone confirms this)
Once downloaded, copy the contents of the install archive/zip file to your home folder or C: drive. Eg: so you have a folder called c:\apache-ant-1.10.5 with bin, etc, lib, manual folders within that.
1.4.3 Mix Old and New Tools (no longer required but kept util someone confirms this)
Gideros uses Ant to build the player, unfortunately the tools to support Ant are now missing from the latest Android tools.
There is a fix for this:
- Rename the existing 'tools' folder in the Android SDK folder to 'tools_new'.
- Download an older (March 2016) version of the tools and copy that folder to the Android SDK folder.
- Copy the contents of 'tools_new' over the contents of 'tools'.
Here is where you can download the compatible set of tools from:
1.5 Install Java
You need the Java JDK https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
1.6 (PC) Install Visual Studio
Install Win 8.1 SDK
Ensure that you have MSBuild v12 or v14 installed (building with the makefile will fail with an incorrect version).
1.7 (MAC) Install Xcode
1.8 (Mac) ensure xcode command line tools are working
(MAC) Open a terminal window
sudo xCodebuild –license quit agree
1.9 Install Python
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'.
1.10 Install emscripten
You need this is you want to build for HTML5 + Facebook games.
Using a shell or MSYS2 (previously installed) on windows, 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, on other system just cd to the folder.
Using emsdk, install and activate all the latest packages:
#(on non-PC put ./ before emsdk) emsdk install latest emsdk activate latest
To use incoming branch of emscripten, use these commands instead:
#(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
(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 (PC) emsdk_env.bat (MAC) source ./emsdk_env.sh
(PC) 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.
1.11 Install Steam SDK
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.
1.12 Install Gideros
1.12.1 Fetch gideros source code
(PC) Open MSYS2 32 bit shell
(MAC/Linux) Open a terminal
Navigate to the folder where you into to work.
git clone https://github.com/gideros/gideros
1.12.2 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).
QTBASEDIR=/c/Qt QT_ARCH=mingw53_32 QT_TOOLSARCH=mingw530_32 QTVER=5.9.1 QT5ICUVER=59 STEAMSDK=/c/Applications/steamworks_sdk_142 export STEAMSDK
# on Windows, also add this to PATH NDK_HOME=/c/android/android-ndk-r17b NDKBUILD=cmd //c /c/android/android-ndk-r17b/ndk-build.cmd #We use windows syntax for this one, as it will be used by gradle.bat script JAVA_HOME=C:\Program Files\Java\jdk1.8.0_144 #Windows syntax with quadruple backslashs! ANDROID_HOME=C:\\\\Users\\\\Gideros\\\\AppData\\\\Local\\\\Android\\\\sdk
FXC="/c/Program Files (x86)/Windows Kits/8.1/bin/x86/fxc.exe" MSBUILD="/c/Program Files (x86)/MSBuild/14.0/Bin/MSbuild.exe"
EMSDK=/c/emsdkwin EMSDKPATH=$(EMSDK):$(EMSDK)/clang/e1.35.0_64bit:$(EMSDK)/node/4.1.1_64bit/bin:$(EMSDK)/python/126.96.36.199_64bit:$(EMSDK)/emscripten/1.35.0 EMSDK_PREFIX=PATH=$(EMSDKPATH):$$$$PATH cmd //c CRUNCHME=crunchme-win32.exe
QTBASEDIR=~/Qt QT_ARCH=clang_64 QT_TOOLSARCH=clang_64 QTVER=5.8 QT5ICUVER=54 #deprecated stuff
1.12.3 Complete working example Makefile.def for Windows
Here is a working example, you will have to change the filename details to match your setup:
1.12.4 Fetch additional repositories
Go into just cloned gideros source folder and run make prep.repo
cd gideros make -f scripts/Makefile.gid prep.repo
If you intend to build the studio, you'll need scintilla and Lexilla libraries. Compile them now with:
make -f scripts/Makefile.gid qlexilla make -f scripts/Makefile.gid qscintilla
If you have all dependencies in place for all targets, you can build everything at once via MSYS2 or Terminal with:
make -f scripts/Makefile.gid
2.1 Compilation on PC :
Open MSYS2 shell (msys2_shell.cmd). Standard compilation is 32 bit so use a 32 bit shell. Make sure you have installed the necessary build tools in MSYS2 using pacman, as detailed in Install MSYS2 Console. .
Navigate to gideros folder
2.1.1 Build QT tools :
make –f scripts/Makefile.gid qtapp.install
-> files GiderosStudio.exe, GiderosPlayer.exe, GiderosTexturePacker.exe (…) in Build.Win folder
make –f scripts/Makefile.gid android.install
= file GiderosAndroidPlayer.apk in folder Build.Win/Players
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.
make –f scripts/Makefile.gid winrt.install
= file _bundle.appxupload in folder Build.Win/Players/WinRT
make –f scripts/Makefile.gid win32.install
= files in folder Build.Win/Templates/win32
make –f scripts/Makefile.gid html5.install
-> files in folders Build.Win//Players/Html5 and Build.Win/Templates/Html5
make –f scripts/Makefile.gid bundle.win
= folder bin and file gplugin in folder Build.Win/All Plugins
2.1.7 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
2.2 Compilation on Mac :
cd to the folder « gideros »
2.2.1 QT :
make -f scripts/Makefile.gid qtapp.install
= GiderosStudio.exe, GiderosPlayer.exe, GiderosTexturePacker.exe (…) in folder Build.Mac
2.2.2 iOS :
make -f scripts/Makefile.gid ios.install
= GiderosiOSPlayer.zip in folder Buid.Mac/Players
make -f scripts/Makefile.gid bundle.mac
= folders bin and files gplugin in folder Buid.Mac/All Plugins
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'.
make -f scripts/Makefile.gid clean
Sometimes you need to make a clean a particular build. To do this type 'make -f scripts/Makefile.gid ' followed by something like 'html5' then '.clean'.
make -f scripts/Makefile.gid html5.clean