11 janvier 2019

Compiler la librairie ZGameEditor pour Android avec Free Pascal


Pour mettre à jour Omeganaut sur Google Play, il a fallu que je compile la librairie ZGameEditor pour API 26. Manque de bol, c'était pas facile. Mais après plusieurs jours de recherche, j'ai finalement trouvé la méthode. Alors j'en ai fait un tuto pour laisser une trace sur internet.


1 - JAVA


Installez la dernière version de Java SE 8 (la version 11 LTS n'est pas supportée par Android toolchain) :

Java SE Development Kit 8u191

Ajoutez la variable d'environnement Windows pointant vers le dossier de Java JDK (Variable système) :

JAVA_HOME C:\Program Files\Java\jdk1.8.0_191

2 - ANDROID


Installation d'Android SDK et Apache-Ant

Malheureusement, on ne peut plus télécharger Android SDK directement. Il est maintenant intégré dans le gargantuesque Android Developer Studio. Donc le moyen le plus simple de récupérer Android SDK et Apache-Ant est d'installer LazToApk :

LazToApk

Lors de l'installation, cochez seulement ces deux options :

01.) Download Android SDK
03.) Download apache-ant

Créez le dossier C:\Android

Puis copiez les deux dossiers suivants dans C:\Android

C:\laztoapk\downloads\android-sdk-windows
C:\laztoapk\downloads\apache-ant-1.10.3

Installation d'Android NDK

La version la plus récente d'Android NDK n'est pas incluse dans LazToApk.
Il faut donc télécharger Android NDK Latest Stable Version :

Android NDK (r18b)

Et l'extraire dans le dossier C:\Android.

Maintenant vous devriez avoir :

C:\Android\android-ndk-r18b
C:\Android\android-sdk-windows
C:\Android\apache-ant-1.10.3

Vous pouvez maintenant désinstaller LazToApk.


Mettre à jour Android SDK

Lancez C:\Android\android-sdk-windows\SDK Manager.exe

Voici ce dont vous avez besoin :

Tools \ Android SDK Tools
Tools \ Android SDK Platform-tools
Tools \ Android SDK Build-tools
Android 8.0.0 (API 26) \ SDK Platform
Android 4.1.2 (API 16) \ SDK Platform

3 - FREE PASCAL

C'est là que ça devient bizarre. Les fonctions nécessaires à la compilation de ZGameEditor ne sont présentes que dans la version en développement de Free Pascal. Et pour utiliser cette version, il faut la compiler avec un Free Pascal déjà installé. Je me demande comment ils ont fait pour compiler le tout premier Free Pascal !?

Installation de Free Pascal

Téléchargez la dernière version de Free Pascal Compiler :

Free Pascal Compiler - Win32 - 3.0.4

Il s'est installé dans C:\FPC\3.0.4


Free Pascal Development Tree

Téléchargez Free Pascal Daily Source Snapshot of Development Tree (trunk) :

fpc.zip

Extraire le zip dans C:\FPC


Compilation de Free Pascal trunk

Créez le dossier C:\FPC\trunk

Dans C:\FPC\fpc, créez le fichier make_i386.bat avec :

PATH=C:\FPC\3.0.4\bin\i386-win32;
SET FPC=C:\FPC\3.0.4\bin\i386-win32\fpc.exe
make.exe clean distclean
make.exe all OPT="-gw -godwarfset -O-1"
make.exe install INSTALL_PREFIX=c:\FPC\trunk COPYTREE=echo

Lancez make_i386.bat et allez-vous faire un café, c'est très long.


Compilation de Free Pascal cross Android Trunk

Dans C:\FPC\fpc, créez le fichier make_android.bat avec :

PATH=C:\FPC\3.0.4\bin\i386-win32;C:\Android\android-ndk-r18b\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin;
SET FPC=C:\FPC\3.0.4\bin\i386-win32\fpc.exe
make clean crossall crossinstall OS_TARGET=android CPU_TARGET=arm CROSSOPT="-dANDROID -CpARMv6 -CfVFPv2" INSTALL_PREFIX=C:\FPC\trunk

Lancez make_android.bat et sortez prendre l'air. Il fait beau et elle vous manque...

Puis ajoutez la variable d'environnement système dans Path :

Path C:\Android\android-ndk-r18b\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin

4 - ZGAMEEDITOR

Téléchargez le code source de ZGameEditor :

Download zip ZGameEditor

Extraire le zip dans C:\zgameeditor-master

Modifiez C:\zgameeditor-master\Build\android\m.bat avec les noms des dossiers créés dans ce tutoriel :

pushd "%~dp0"

if not exist "java\libs\armeabi\" mkdir java\libs\armeabi
if not exist "lib\arm-linux\" mkdir lib\arm-linux

C:\FPC\trunk\bin\i386-win32\ppcrossarm -B -MDelphi -Sghi -O3 -Tandroid -Parm -XXis -vw -Filib\arm-linux -FlC:\Android\android-ndk-r18b\platforms\android-26\arch-arm\usr\lib -Fu. -Fu..\.. -FUlib\arm-linux\ -FEjava\libs\armeabi\ -olibzgeandroid.so -dANDROID -dMINIMAL -Xd -CpARMV6 -CfVFPv2 zgeandroid.pas

IF %ERRORLEVEL% NEQ 0 GOTO error
cd java
call m.bat
cd ..
:error

popd
pause

Lancez le fichier m.bat et si tout s'est bien déroulé, vous obtiendrez la librairie libzgeandroid.so nécessaire au bon fonctionnement de ZGameEditor sur API 26.


🦊🦅🐸🐰

Sur ce, je vais enfin pouvoir mettre à jour Omeganaut sur Google Play :

Jouer à Omeganaut sur Android


Catégories: Tutorial - Mots clés: Omeganaut

Translate TRANSLATE Translate        Traducir TRADUCIR Traducir        Traduzir TRADUZIR Traduzir

Catégories

Archives

Tags

Derniers articles