Difference between revisions of "Compiling Gideros Luau Source"

From GiderosMobile
 
(26 intermediate revisions by 2 users not shown)
Line 2: Line 2:
  
 
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.
 
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''':
 +
<syntaxhighlight lang="bash">
 +
PLUGINS_WIN=$(PLUGINS_ALL) clipper struct controller camera
 +
#PLUGINS_WINONLY=spout steam luamidi
 +
PLUGINS_WINONLY=luamidi
 +
</syntaxhighlight>
 +
 +
*2.2 Configure scripts
 +
Your '''Makefile.def''' can look something as simple as this:
 +
<syntaxhighlight lang="bash">
 +
#QTBASEDIR=/c/Applications/Qt
 +
QTBASEDIR=/c/Qt6
 +
MAKEJOBS=-j8
 +
 +
#WIN32_BIN=/mingw32/bin
 +
#WIN32_BIN=/c/msys64/mingw32/bin
 +
WIN32_BIN=/c/msys64/mingw64/bin
 +
export WIN32_BIN
 +
 +
QT_ARCH=mingw_64
 +
#QT_TOOLSARCH=mingw900_64
 +
QT_TOOLSARCH=mingw1120_64
 +
QTVER=6.2.2
 +
QT5ICUVER=54
 +
</syntaxhighlight>
 +
 +
*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, ...)
  
 
__TOC__
 
__TOC__
  
== Requirements for Windows 10 64bit ==
+
== Windows 10 64bit ==
  
 
=== Install QT ===
 
=== Install QT ===
Line 11: Line 53:
  
 
https://www.qt.io/download
 
https://www.qt.io/download
 
Recommended version 6.2.3 with MinGW 9.0
 
  
 
Double click on the downloaded file and follow instructions.
 
Double click on the downloaded file and follow instructions.
When installing:
 
* change the install directory to /Qt rather than /Qt6 (optional)
 
* 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
 
* Qt 5 compatibility module
 
* and following additional Qt libraries:
 
** Qt Multimedia
 
** Qt Websockets
 
  
If you already have Qt6 installed without those modules, you can add them via Qt MaintenanceTool.exe located in your Qt folder like so:
+
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.
  
(to add capture)
+
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:
 
Here is a screenshot of the Qt modules:
  
(to add capture)
+
[[File:01_qt6_installing_modules10x.png]]
 +
 
 +
[[File:01_qt6_installing_modules11x.png]]
 +
 
 +
If you already have Qt6 installed without those modules, you can add them via Qt MaintenanceTool.exe located in your Qt folder like so:
 +
 
 +
[[File:01_qt6_maintenance_tool.png]]
  
 
When you are done click finish.
 
When you are done click finish.
 
  
 
=== Install MSYS2 Console ===
 
=== Install MSYS2 Console ===
Line 39: Line 82:
 
Once installed, open MSYS2 shell (msys2_shell.cmd):
 
Once installed, open MSYS2 shell (msys2_shell.cmd):
  
(to add capture)
+
[[File:02_msys_01.png]]
  
 
Then run the following commands:
 
Then run the following commands:
  
'''note''': copy/paste won’t work, you have to type the commands
+
'''note''': copy/paste won’t work, you have to type the commands:
<source lang="bash">
+
<syntaxhighlight lang="bash">
pacman –Sy pacman
+
pacman -Sy pacman
pacman –Syu
+
pacman -Syu
pacman –Su
+
pacman -Su
pacman –S tar
+
pacman -S git
pacman –S zip
+
pacman -S make
pacman –S unzip
 
pacman –S git
 
pacman –S base-devel
 
 
pacman -S python
 
pacman -S python
 +
pacman -S tar
 +
pacman -S zip
 +
pacman -S unzip
 +
pacman -S base-devel
  
#For compiling win32 under a MinGW64
+
# For exporting apps to the win32/32bit platform under a MinGW64
pacman -S mingw-w64-i686-toolchain
+
pacman -S mingw-w64-i686-toolchain # note: if asked choose ALL #
 
pacman -S mingw-w64-i686-glew
 
pacman -S mingw-w64-i686-glew
</source>
+
pacman -S mingw-w64-i686-curl
 +
pacman -S mingw-w64-i686-libpng
 +
# For exporting apps to the win32/64bit platform under a MinGW64
 +
pacman -S mingw-w64-x86_64-toolchain # note: if asked choose ALL #
 +
pacman -S mingw-w64-x86_64-glew
 +
pacman -S mingw-w64-x86_64-curl
 +
pacman -S mingw-w64-x86_64-libpng
 +
</syntaxhighlight>
  
'''note''': for pacman -S mingw-w64-i686-toolchain, if asked choose group 17?
+
'''note''': for the i686-toolchain/x86_64-toolchain if you get ''error: failed to commit transaction (invalid or corrupted package)'', you may need either reinstalling a newer version of '''msys''' or you can try these commands:
 +
<syntaxhighlight lang="bash">
 +
rm -r /etc/pacman.d/gnupg/
 +
pacman-key --init
 +
pacman-key --populate msys2
 +
</syntaxhighlight>
 +
You should then redo the pacman commands from the begining (pacman -Sy pacman, ...).
  
 +
=== Install Android Studio and NDK ===
 +
('''Not tested yet''')
  
=== Install Android Studio and NDK ===
 
 
https://developer.android.com/studio/index.html
 
https://developer.android.com/studio/index.html
  
Line 73: Line 131:
  
 
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.
 
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 ===
 
=== Install JAVA ===
Line 84: Line 141:
 
https://adoptopenjdk.net/
 
https://adoptopenjdk.net/
  
 +
=== Install Visual Studio ===
 +
('''Not tested yet''')
  
=== Install Visual Studio ===
 
 
Visual Studio Community Edition 2022:
 
Visual Studio Community Edition 2022:
  
 
https://www.visualstudio.com/downloads/
 
https://www.visualstudio.com/downloads/
  
Ensure that you have MSBuild v12 or v14 installed (building with the makefile will fail with an incorrect version).
+
Select the box Developing for Desktop apps and install.
  
 
– to come --
 
– to come --
Line 97: Line 155:
 
– to come --
 
– to come --
  
 +
=== Install Python ===
 +
('''Not tested yet''')
  
=== Download Scintilla ===
 
from Gideros github repository (code/download zip):
 
 
https://github.com/gideros/scintilla
 
 
(As a zip file from https://www.scintilla.org/ScintillaDownload.html)
 
 
Then you will need to compile the .dll:
 
 
* navigate to ...\scintilla-master\qt\ScintillaEdit\
 
* open ScintillaEdit.pro (this will launch Qt6)
 
* in Qt6 click on Projects and validate the Build Settings
 
* in the menu choose Build and Build Project “ScintillaEdit”
 
* note that you can build for Debug and for Release in the Qt6 Projects tab
 
* after compilation you should have your .dll in:
 
** '''...\scintilla-master\qt\build-ScintillaEdit-Desktop_Qt_6_2_3_MinGW_64_bit-Debug\debug'''
 
** and '''...\scintilla-master\qt\build-ScintillaEdit-Desktop_Qt_6_2_3_MinGW_64_bit-Release\release'''
 
 
=== Download Lexilla ===
 
from Gideros github repository (code/download zip):
 
 
https://github.com/gideros/lexilla
 
 
Then you also need to compile the .dll as done for Scintilla above.
 
 
(As a zip file from https://www.scintilla.org/LexillaDownload.html)
 
 
 
=== Install Python ===
 
 
https://www.python.org/downloads/release/python-2712/
 
https://www.python.org/downloads/release/python-2712/
  
Line 134: Line 165:
 
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'
 
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''')
  
=== Install emscripten ===
 
 
http://kripken.github.io/emscripten-site/
 
http://kripken.github.io/emscripten-site/
  
 
You need this if you want to build for HTML5 + Facebook games.
 
You need this if 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:
+
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
+
<syntaxhighlight lang="bash">
 +
git clone https://github.com/juj/emsdk.git
 +
</syntaxhighlight>
  
 
Once that has completed open a command prompt in that folder on Windows.
 
Once that has completed open a command prompt in that folder on Windows.
Line 148: Line 182:
  
 
'''note''': (on non-PC put ./ before emsdk)
 
'''note''': (on non-PC put ./ before emsdk)
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
emsdk install latest
 
emsdk install latest
 
emsdk activate latest
 
emsdk activate latest
 
emsdk_env.bat
 
emsdk_env.bat
</source>
+
</syntaxhighlight>
  
 
To use incoming branch of emscripten, use these commands instead:
 
To use incoming branch of emscripten, use these commands instead:
  
 
'''note''': (on non-PC put ./ before emsdk)
 
'''note''': (on non-PC put ./ before emsdk)
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
emsdk install sdk-incoming-64bit
 
emsdk install sdk-incoming-64bit
 
emsdk activate sdk-incoming-64bit
 
emsdk activate sdk-incoming-64bit
</source>
+
</syntaxhighlight>
  
 
To further use Gideros own git fork of emscripten:
 
To further use Gideros own git fork of emscripten:
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
cd emscripten/incoming
 
cd emscripten/incoming
 
#Add a git remote link to your own repository
 
#Add a git remote link to your own repository
Line 174: Line 208:
 
cd ../..
 
cd ../..
 
emsdk install sdk-incoming-64bit
 
emsdk install sdk-incoming-64bit
</source>
+
</syntaxhighlight>
  
 
These can also be installed within emsdk: git, crunch, and spidermonkey:
 
These can also be installed within emsdk: git, crunch, and spidermonkey:
  
 
'''note''': (on non-PC put ./ before emsdk)
 
'''note''': (on non-PC put ./ before emsdk)
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
emsdk install git-1.9.4
 
emsdk install git-1.9.4
 
emsdk install crunch-1.03
 
emsdk install crunch-1.03
Line 186: Line 220:
 
emsdk activate crunch-1.03
 
emsdk activate crunch-1.03
 
emsdk activate spidermonkey-37.0.1-64bit
 
emsdk activate spidermonkey-37.0.1-64bit
</source>
+
</syntaxhighlight>
  
(PC)
+
<syntaxhighlight lang="bash">
<source lang="bash">
 
 
emsdk_env.bat
 
emsdk_env.bat
</source>
+
</syntaxhighlight>
  
(PC) Make sure the environment variable EM_CONFIG is set to the location of your emscripten config file.
+
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.
 
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.
Line 199: Line 232:
 
https://cmake.org/download/
 
https://cmake.org/download/
  
 +
=== Install Steam SDK ===
 +
('''Not tested yet''')
  
=== Install Steam SDK (optional) ===
 
 
https://partner.steamgames.com/?goto=%2Fdownloads%2Fsteamworks_sdk.zip
 
https://partner.steamgames.com/?goto=%2Fdownloads%2Fsteamworks_sdk.zip
  
Line 206: Line 240:
  
 
This is necessary for the Steam plugin.
 
This is necessary for the Steam plugin.
 
  
 
=== Install NSIS ===
 
=== Install NSIS ===
 
https://nsis.sourceforge.io/Download
 
https://nsis.sourceforge.io/Download
  
 
+
Install the software as you would any software. We will edit Makefile.def for it later.
=== Install Sign Tool ===
 
'’’???’’’
 
 
 
  
 
== Install Gideros from Source ==
 
== Install Gideros from Source ==
 
=== Fetch gideros source code ===
 
=== Fetch gideros source code ===
(PC) Open MSYS2 32 bit shell
+
Open MSYS2 shell (msys2_shell.cmd).
  
Navigate to the folder where you want to work.
+
Navigate to the folder where you want to work. For example I want to put Gideros Github repo in my dev folder:
<source lang="bash">
+
<syntaxhighlight lang="bash">
git clone https://github.com/gideros/gideros
+
$ cd /c/dev
</source>
+
</syntaxhighlight>
  
=== Configure scripts ===
+
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:
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). Example:
+
<syntaxhighlight lang="bash">
 +
git clone https://github.com/gideros/gideros gideros_dev
 +
</syntaxhighlight>
  
On PC:
 
For Qt:
 
<source lang="bash">
 
QTBASEDIR=/c/Qt
 
QT_ARCH=mingw53_32
 
QT_TOOLSARCH=mingw530_32
 
QTVER=5.9.1
 
QT5ICUVER=59
 
  
# for steam:
+
'''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):
STEAMSDK=/c/Applications/steamworks_sdk_142
+
* in MSYS2 shell (msys2_shell.cmd) navigate to your local repo, example:
export STEAMSDK
+
<syntaxhighlight lang="bash">
 +
cd /c/dev/gideros_dev
 +
</syntaxhighlight>
 +
* check your current branch with:
 +
<syntaxhighlight lang="bash">
 +
git branch
 +
</syntaxhighlight>
 +
* then update your local branch with the remote branch (''master'' should be the name of your branch):
 +
<syntaxhighlight lang="bash">
 +
git pull origin master
 +
</syntaxhighlight>
  
# for Android:
 
# 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
 
  
# for WinRT:
+
'''If you want to update your existing local repo you can try:'''
FXC="/c/Program Files (x86)/Windows Kits/8.1/bin/x86/fxc.exe"
+
<syntaxhighlight lang="bash">
MSBUILD="/c/Program Files (x86)/MSBuild/14.0/Bin/MSbuild.exe"
+
git fetch
 +
(git merge OR git pull)
 +
</syntaxhighlight>
  
# for html5:
 
EMSDK=/c/emsdkwin
 
EMSDKPATH=$(EMSDK):$(EMSDK)/clang/e1.35.0_64bit:$(EMSDK)/node/4.1.1_64bit/bin:$(EMSDK)/python/2.7.5.3_64bit:$(EMSDK)/emscripten/1.35.0
 
EMSDK_PREFIX=PATH=$(EMSDKPATH):$$$$PATH cmd //c
 
CRUNCHME=crunchme-win32.exe
 
</source>
 
  
 +
'''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:
 +
<syntaxhighlight lang="bash">
 +
git reset --hard
 +
</syntaxhighlight>
 +
* then redo:
 +
<syntaxhighlight lang="bash">
 +
git pull origin master
 +
</syntaxhighlight>
  
=== Complete working example Makefile.def for Windows ===
 
Here is a working example, you will have to change the filename details to match your setup:
 
example Makefile.def file
 
  
<source lang="bash">
+
'''If you want to go to a specific branch, you can try''':
QTBASEDIR=/c/Qt
+
<syntaxhighlight lang="bash">
 +
git checkout `git rev-list -n 1 --before="2022-10-10 14:00" master`
 +
</syntaxhighlight>
  
#export PATH=$PATH:~/Android_SDK/NDK/
+
=== 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:
  
# on Windows, also add this to PATH
+
<syntaxhighlight lang="bash">
NDK_HOME=/c/android-ndk
+
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"
  
NDKBUILD=cmd //c /c/android-ndk/ndk-build.cmd
+
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
  
# remember to escape disallowed characters, or wrap in quotes
+
STEAMSDK=/c/Applications/steamworks_sdk_142
JAVA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_181
+
export STEAMSDK
ANT_HOME=/c/apache-ant-1.10.5
 
ANDROID_HOME=C:\\\\Users\\\\antho\\\\AppData\\\\Local\\\\Android\\\\Sdk
 
 
 
FXC="/c/Program Files (x86)/Windows Kits/8.1/bin/x86/fxc.exe"
 
FXCx64="/c/Program Files (x86)/Windows Kits/8.1/bin/x64/fxc.exe"
 
MSBUILD="/c/Program Files (x86)/MSBuild/14.0/Bin/MSBuild.exe"
 
 
 
EMSDK=/c/emsdk
 
EMSDKPATH=$(EMSDK):$(EMSDK)/clang/e1.38.12_64bit:$(EMSDK)/node/8.9.1_64bit/bin:$(EMSDK)/python/2.7.13.1_64bit/python-2.7.13.amd64:$(EMSDK)/emscripten/1.38.12:/c/cmake-3.12.3-win32-x86/bin
 
EMSDK_PREFIX=PATH=$(EMSDKPATH):$$$$PATH
 
  
#EMSDK_PREFIX+=BINARYEN_ROOT=$(EMSDK)/clang/e1.38.12_64bit/binaryen
+
#WIN32_BIN=/mingw32/bin
#EMSDK_PREFIX+=EMSDK=$(EMSDK)
+
WIN32_BIN=/mingw64/bin
#EMSDK_PREFIX+=EMSCRIPTEN=$(EMSDK)/emscripten/1.38.12
+
export WIN32_BIN
#EMSDK_PREFIX+=EMSCRIPTEN_ROOT=$(EMSDK)/emscripten/incoming
 
#EMSDK_PREFIX+=JAVA=$(EMSDK)/emscripten/java/8.152_64bit/bin/java.exe
 
EMSDK_PREFIX+=cmd //c
 
  
 
CRUNCHME=crunchme-qt-win.exe
 
CRUNCHME=crunchme-qt-win.exe
 
STEAMSDK=/c/steamworks_sdk_142
 
export STEAMSDK
 
 
 
NSIS=cmd //c "/c/Program Files (x86)/NSIS/makensis.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_SIGN="/c/Program Files (x86)/Windows Kits/10/bin/x86/signtool.exe"
WIN_KEYSTORE=/c/comodo-code-signing.p12
+
#WIN_KEYSTORE=/path/to/cert.p12
WIN_KEYPASS=xxxx
+
#WIN_KEYPASS=KeyPassword
WIN_KEYTSS="http://timestamp.comodoca.com"
+
#WIN_KEYTSS="http://timestamp.comodoca.com"
  
 
MAC_HOST=user@host
 
MAC_HOST=user@host
Line 312: Line 338:
 
OSX_SIGNING_PASSWORD="keychain password"
 
OSX_SIGNING_PASSWORD="keychain password"
  
QT_ARCH=mingw53_32
+
QT_ARCH=mingw_64
QT_TOOLSARCH=mingw530_32
+
QT_TOOLSARCH=mingw900_64
QTVER=5.10.1
+
#QT_TOOLSARCH=mingw1120_64
QT5ICUVER=59  #deprecated stuff
+
QTVER=6.2.2
</source>
+
#QTVER=6.2.3
 +
QT5ICUVER=54
 +
#QT5ICUVER=56
 +
</syntaxhighlight>
  
 +
== Building Gideros ==
 +
After setting up the Makefile.def, in MSYS2 shell (msys2_shell.cmd) navigate to your Gideros repo:
 +
<syntaxhighlight lang="bash">
 +
cd gideros_dev
 +
</syntaxhighlight>
  
=== Fetch additional repositories ===
+
Then the first steps to build Gideros are:
Go into just cloned gideros source folder and run make prep.repo
+
<syntaxhighlight lang="bash">
<source lang="bash">
 
cd gideros
 
 
make -f scripts/Makefile.gid prep.repo
 
make -f scripts/Makefile.gid prep.repo
</source>
+
make -f scripts/Makefile.gid qscintilla
 
+
make -f scripts/Makefile.gid qlexilla
 
+
make -f scripts/Makefile.gid versioning
== Building ==
+
</syntaxhighlight>
If you have all dependencies in place for all targets, you can build everything at once via MSYS2 or Terminal with:
 
<source lang="bash">
 
make -f scripts/Makefile.gid
 
</source>
 
 
 
 
 
=== 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
 
  
==== Build QT tools: ====
+
=== Build QT tools: ===
<source lang="bash">
+
This will build Gideros Studio and all its associated apps.
 +
<syntaxhighlight lang="bash">
 
make –f scripts/Makefile.gid qtapp.install
 
make –f scripts/Makefile.gid qtapp.install
</source>
+
</syntaxhighlight>
  
=> files GiderosStudio.exe, GiderosPlayer.exe, GiderosTexturePacker.exe (…) in Build.Win folder  
+
=> files GiderosStudio.exe, GiderosPlayer.exe, GiderosTexturePacker.exe (…) in '''Build.Win folder'''
  
==== Android: ====
+
=== Android: ===
<source lang="bash">
+
This will build Gideros Android export template.
 +
<syntaxhighlight lang="bash">
 
make –f scripts/Makefile.gid android.install
 
make –f scripts/Makefile.gid android.install
</source>
+
</syntaxhighlight>
  
 
=> file GiderosAndroidPlayer.apk in folder Build.Win/Players
 
=> file GiderosAndroidPlayer.apk in folder Build.Win/Players
  
==== winRT: ====
+
=== winRT: ===
<source lang="bash">
+
This will build Gideros winRT export template.
 +
<syntaxhighlight lang="bash">
 
make –f scripts/Makefile.gid winrt.install
 
make –f scripts/Makefile.gid winrt.install
</source>
+
</syntaxhighlight>
  
 
=> file _bundle.appxupload in folder Build.Win/Players/WinRT
 
=> file _bundle.appxupload in folder Build.Win/Players/WinRT
Line 362: Line 387:
 
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.
 
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: ====
+
=== win32: ===
<source lang="bash">
+
This will build Gideros win32 export template.
 +
<syntaxhighlight lang="bash">
 
make –f scripts/Makefile.gid win32.install
 
make –f scripts/Makefile.gid win32.install
</source>
+
</syntaxhighlight>
  
 
=> files in folder Build.Win/Templates/win32
 
=> files in folder Build.Win/Templates/win32
  
==== Html5: ====
+
=== Html5: ===
<source lang="bash">
+
This will build Gideros Html5 export template.
 +
<syntaxhighlight lang="bash">
 
make –f scripts/Makefile.gid html5.install
 
make –f scripts/Makefile.gid html5.install
</source>
+
</syntaxhighlight>
  
 
=> files in folders Build.Win//Players/Html5 and Build.Win/Templates/Html5
 
=> files in folders Build.Win//Players/Html5 and Build.Win/Templates/Html5
  
==== Plugins: ====
+
=== Plugins: ===
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
make –f scripts/Makefile.gid bundle.win
 
make –f scripts/Makefile.gid bundle.win
</source>
+
</syntaxhighlight>
  
 
=> folder bin and file gplugin in folder Build.Win/All Plugins
 
=> folder bin and file gplugin in folder Build.Win/All Plugins
  
==== To build everything that can be built on Windows: ====
+
=== To build everything that can be built on Windows: ===
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
make -f scripts/Makefile.gid all
 
make -f scripts/Makefile.gid all
</source>
+
</syntaxhighlight>
  
 
Then you need to copy all the plugins to the 'Build.Win' folder with:
 
Then you need to copy all the plugins to the 'Build.Win' folder with:
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
make -f scripts/Makefile.gid bundle.win
 
make -f scripts/Makefile.gid bundle.win
</source>
+
</syntaxhighlight>
  
 
=== Cleaning ===
 
=== 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:
 
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:
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
make -f scripts/Makefile.gid clean
 
make -f scripts/Makefile.gid clean
</source>
+
</syntaxhighlight>
  
 
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:
 
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:
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
make -f scripts/Makefile.gid html5.clean
 
make -f scripts/Makefile.gid html5.clean
</source>
+
</syntaxhighlight>
 
 
 
 
 
 
 
 
  
  
Line 423: Line 446:
  
  
 +
----
  
 
== Troubleshooting: ==
 
== Troubleshooting: ==
Line 435: Line 459:
 
Sprinkles44 commented on 28 Jul 2021  
 
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:
 
I tried to update my MSYS2 on Windows 10 (as per the instructions on https://www.msys2.org/) and I got this error:
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
OscarAlvarez@Lambda-Station-OA MINGW64 ~
 
OscarAlvarez@Lambda-Station-OA MINGW64 ~
 
$ pacman -Syu
 
$ pacman -Syu
 
error: config file /etc/pacman.d/mirrorlist.mingw could not be read: No such file or directory
 
error: config file /etc/pacman.d/mirrorlist.mingw could not be read: No such file or directory
</source>
+
</syntaxhighlight>
 
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.
 
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:
 
I went into the /etc/pacman.d/ directory and this is what was inside:
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
OscarAlvarez@Lambda-Station-OA MINGW64 /etc/pacman.d
 
OscarAlvarez@Lambda-Station-OA MINGW64 /etc/pacman.d
 
$ ls
 
$ ls
 
gnupg  mirrorlist.clang64  mirrorlist.mingw32  mirrorlist.mingw64  mirrorlist.msys  mirrorlist.ucrt64
 
gnupg  mirrorlist.clang64  mirrorlist.mingw32  mirrorlist.mingw64  mirrorlist.msys  mirrorlist.ucrt64
</source>
+
</syntaxhighlight>
  
 
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.
 
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.
Line 465: Line 489:
 
I only have the Windows 10 antivirus that comes with the OS. I do not have any other antivirus software.
 
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:
 
I downloaded the file then opened MSYS2 and ran the command. I get the same error:
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
OscarAlvarez@Lambda-Station-OA MSYS ~
 
OscarAlvarez@Lambda-Station-OA MSYS ~
 
# pacman -U --overwrite=* pacman-mirrors-20210706-1-any.pkg.tar.zst
 
# 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
 
error: config file /etc/pacman.d/mirrorlist.mingw could not be read: No such file or directory
</source>
+
</syntaxhighlight>
 
It seems to me that I can't run any pacman command.
 
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.
 
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.
Line 477: Line 501:
 
Collaborator  
 
Collaborator  
 
Biswa96 commented on 28 Jul 2021  
 
Biswa96 commented on 28 Jul 2021  
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
error: config file /etc/pacman.d/mirrorlist.mingw could not be read: No such file or directory
 
error: config file /etc/pacman.d/mirrorlist.mingw could not be read: No such file or directory
</source>
+
</syntaxhighlight>
 
Create that empty file as you have said in original post. Then run the pacman -U command.
 
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?
 
You say to run that command but where do I run it, in MSYS2?
Line 489: Line 513:
 
Author  
 
Author  
 
Sprinkles44 commented on 30 Jul 2021  
 
Sprinkles44 commented on 30 Jul 2021  
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
error: config file /etc/pacman.d/mirrorlist.mingw could not be read: No such file or directory
 
error: config file /etc/pacman.d/mirrorlist.mingw could not be read: No such file or directory
</source>
+
</syntaxhighlight>
 
Create that empty file as you have said in original post. Then run the pacman -U command.
 
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?
 
You say to run that command but where do I run it, in MSYS2?
Line 498: Line 522:
 
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.
 
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:
 
Thank you that seems to have worked (sort of). Now I only get this error:
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
OscarAlvarez@Lambda-Station-OA MSYS ~
 
OscarAlvarez@Lambda-Station-OA MSYS ~
 
$ pacman -Syu
 
$ pacman -Syu
 
:: Synchronizing package databases...
 
:: Synchronizing package databases...
 
error: failed to synchronize all databases (no servers configured for repository)
 
error: failed to synchronize all databases (no servers configured for repository)
</source>
+
</syntaxhighlight>
 
I think I have to add to the repository or something like that but I am not too sure. Thank you again for helping.
 
I think I have to add to the repository or something like that but I am not too sure. Thank you again for helping.
 
   
 
   
Line 509: Line 533:
 
Collaborator  
 
Collaborator  
 
jeremyd2019 commented on 30 Jul 2021  
 
jeremyd2019 commented on 30 Jul 2021  
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
mv /etc/pacman.d/mirrorlist.mingw.pacnew /etc/pacman.d/mirrorlist.mingw
 
mv /etc/pacman.d/mirrorlist.mingw.pacnew /etc/pacman.d/mirrorlist.mingw
</source>
+
</syntaxhighlight>
  
  
Line 517: Line 541:
 
Sprinkles44 commented on 30 Jul 2021  
 
Sprinkles44 commented on 30 Jul 2021  
 
Thank you so much, it works perfectly now.
 
Thank you so much, it works perfectly now.
 +
 +
 +
 +
 +
== END ==
 +
 +
{{GIDEROS IMPORTANT LINKS}}

Latest revision as of 22:58, 18 November 2023

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/Applications/Qt
QTBASEDIR=/c/Qt6
MAKEJOBS=-j8

#WIN32_BIN=/mingw32/bin
#WIN32_BIN=/c/msys64/mingw32/bin
WIN32_BIN=/c/msys64/mingw64/bin
export WIN32_BIN

QT_ARCH=mingw_64
#QT_TOOLSARCH=mingw900_64
QT_TOOLSARCH=mingw1120_64
QTVER=6.2.2
QT5ICUVER=54
  • 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:

https://www.qt.io/download

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:

01 qt6 installing modules10x.png

01 qt6 installing modules11x.png

If you already have Qt6 installed without those modules, you can add them via Qt MaintenanceTool.exe located in your Qt folder like so:

01 qt6 maintenance tool.png

When you are done click finish.

Install MSYS2 Console

https://www.msys2.org/

Once installed, open MSYS2 shell (msys2_shell.cmd):

02 msys 01.png

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

# For exporting apps to the win32/32bit platform under a MinGW64
pacman -S mingw-w64-i686-toolchain # note: if asked choose ALL #
pacman -S mingw-w64-i686-glew
pacman -S mingw-w64-i686-curl
pacman -S mingw-w64-i686-libpng
# For exporting apps to the win32/64bit platform under a MinGW64
pacman -S mingw-w64-x86_64-toolchain # note: if asked choose ALL #
pacman -S mingw-w64-x86_64-glew
pacman -S mingw-w64-x86_64-curl
pacman -S mingw-w64-x86_64-libpng

note: for the i686-toolchain/x86_64-toolchain if you get error: failed to commit transaction (invalid or corrupted package), you may need either reinstalling a newer version of msys or you can try these commands:

rm -r /etc/pacman.d/gnupg/
pacman-key --init
pacman-key --populate msys2

You should then redo the pacman commands from the begining (pacman -Sy pacman, ...).

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):

https://adoptopenjdk.net/

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.

https://cmake.org/download/

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
  • then redo:
git pull origin master


If you want to go to a specific branch, you can try:

git checkout `git rev-list -n 1 --before="2022-10-10 14:00" master`

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
WIN32_BIN=/mingw64/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


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.



END