21 août 2019

Compiler la binaries ZGameEditor pour Linux avec Free Pascal


Je suis en train de batailler pour produire une version Linux d'Omeganaut. Mais pour cela, il me faut tout d'abord compiler ZGameEditor pour Linux 32 bits. Je précise bien 32 bits, parce que 64 bits c'est pas encore gagné... Comme d'habitude, j'en ai fait un tuto pour laisser une trace indélébile sur internet.

Cette méthode ne fonctionne qu'à partir d'un ordinateur sous Linux 32 bits. Je n'ai pas encore réussi à compiler la version 32 bits depuis un Linux 64 bits. Je complèterai ce tutoriel par la suite si jamais j'y arrive. Ensuite, il faut simplement copier/coller les lignes de code dans la console. C'est quand même sympa Linux, quand ça fonctionne...

Mettre à jour les sources et installer les librairies nécessaires :

sudo apt-get update
sudo apt-get install build-essential subversion libsdl2-dev

fp-compiler ne peut plus compiler la dernière version de Free Pascal. Il est nécessaire d'installer fp-compiler-3.2.0. Pour cela, il faut ajouter la source de Free Pascal 3.2.0 :

sudo nano /etc/apt/sources.list

Ajouter cette ligne à la fin de sources.list et sauver le fichier. J'utilise le mirror fr dans la liste i386 Debian.

deb http://ftp.fr.debian.org/debian sid main

Ajouter les clés d'authentification requises à l'installation de Free Pascal:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138

Mettre à jour les sources et installer Free Pascal :

sudo apt-get update
sudo apt-get install fp-compiler-3.2.0

Si vous utilisez une version de Linux autre que Debian (ex: Xubuntu...) désactiver la ligne précédemment ajoutée dans sources.list sous peine de casser Linux lors d'une prochaine installation de package ou upgrade !!!

Compiler la dernière version de Free Pascal :

svn checkout http://svn.freepascal.org/svn/fpc/trunk ~/fpc
cd ~/fpc
sudo make all
sudo make install

Télécharger et compiler ZGameEditor :

svn checkout https://github.com/VilleKrumlinde/zgameeditor.git/trunk ~/zge-src
cd ~/zge-src

Voici la ligne de commande pour compiler depuis Linux i386 :

mkdir Build/i386-linux Build/i386-linux/obj

/usr/local/lib/fpc/3.3.1/ppc386 -al -XXis -O2 -dZZDC_SDL -dMINIMAL -FU./Build/i386-linux/obj/ -Fu./3rdparty/sdl2 -Fu/usr/local/lib/fpc/3.3.1/units/i386-linux/pthreads/ -Fu/usr/local/lib/fpc/3.3.1/units/i386-linux/fcl-base/ -Fu/usr/local/lib/fpc/3.3.1/units/i386-linux/libc/ -Fu/usr/local/lib/fpc/3.3.1/units/i386-linux/paszlib/ -Fu/usr/local/lib/fpc/3.3.1/units/i386-linux/hash/ -Fu/usr/local/lib/fpc/3.3.1/units/i386-linux/rtl-objpas/ -Fu/usr/local/lib/fpc/3.3.1/units/i386-linux/x11 -B -Mdelphi -FE./Build/i386-linux ZzDC.dpr

mv Build/i386-linux/ZzDC Build/i386-linux/Player_linux.bin

Et la même ligne de commande pour compiler depuis Linux x86_64 :

mkdir Build/x86_64-linux Build/x86_64-linux/obj

/usr/local/lib/fpc/3.3.1/ppcx64 -al -XXis -O2 -dZZDC_SDL -dMINIMAL -FU./Build/x86_64-linux/obj/ -Fu./3rdparty/sdl2 -Fu/usr/local/lib/fpc/3.3.1/units/x86_64-linux/pthreads/ -Fu/usr/local/lib/fpc/3.3.1/units/x86_64-linux/fcl-base/ -Fu/usr/local/lib/fpc/3.3.1/units/x86_64-linux/paszlib/ -Fu/usr/local/lib/fpc/3.3.1/units/x86_64-linux/hash/ -Fu/usr/local/lib/fpc/3.3.1/units/x86_64-linux/rtl-objpas/ -Fu/usr/local/lib/fpc/3.3.1/units/x86_64-linux/x11 -B -Mdelphi -FE./Build/x86_64-linux ZzDC.dpr

mv Build/x86_64-linux/ZzDC Build/x86_64-linux/Player_linux.bin

Et enfin, celle pour compiler depuis Linux aarch64 :

mkdir Build/aarch64-linux Build/aarch64-linux/obj

/usr/local/lib/fpc/3.3.1/ppca64 -al -XXis -O2 -dZZDC_SDL -dMINIMAL -FU./Build/aarch64-linux/obj/ -Fu./3rdparty/sdl2 -Fu/usr/local/lib/fpc/3.3.1/units/aarch64-linux/pthreads/ -Fu/usr/local/lib/fpc/3.3.1/units/aarch64-linux/fcl-base/ -Fu/usr/local/lib/fpc/3.3.1/units/aarch64-linux/paszlib/ -Fu/usr/local/lib/fpc/3.3.1/units/aarch64-linux/hash/ -Fu/usr/local/lib/fpc/3.3.1/units/aarch64-linux/rtl-objpas/ -Fu/usr/local/lib/fpc/3.3.1/units/aarch64-linux/x11 -B -Mdelphi -FE./Build/aarch64-linux ZzDC.dpr

mv Build/aarch64-linux/ZzDC Build/aarch64-linux/Player_linux.bin

Il ne vous reste plus qu'à déplacer le fichier Player_linux.bin dans votre dossier ZGameEditor.

Maintenant, vous pouvez exporter votre projet ZGE en utilisant Project/ Build Linux x86 binary, même sous Windows :

Build Linux x86 binary from ZGameEditor


Pour terminer avec ce tuto, voici les erreurs que vous pouvez obtenir par la suite lors du lancement de votre jeu sur Linux :


Permission denied

Il faut donner la permission de lecture et d'exécution à votre fichier :

chmod 755 your_file_name


Et voilà. Si jamais vous avez l'occasion d'utiliser ce tutoriel, laissez-moi un petit message, j'aurais l'impression d'être moins seul au monde à faire ce genre de trucs... Merci !


Tags

Catégories

Archives