|
wxWidgets |
|
wxWidgets 3.1.0
la version 3.1.0 est utilisée ici, mais j'ai procédé de même avec d'autres versions (2.8.12 et 3.0.2) pour tester la compatibilité du code (on a parfois des surprises !).
Création de plusieurs builds à partir d'une version de wxWidgets.
Vous pouvez souhaiter, par exemple, un build static pour Linux, un autre pour la compilation croisée d'une version Windows 32 bits un troisième pour la version 64 bits.
Pour éviter de doux mélanges vous allez créer un répertoire séparé pour chaque build.
On crée,par exemple, les répertoires (en mode root):
/opt/Persowx310_Lin64
/opt/Persowx310_Win32
/opt/Persowx310_Win64
Télécharger la (ou les) version choisie de wxWidgets : wxWidgets-3.1.0.tar.bz2 pour la version 3.1.0
La décompresser par exemple dans ~/chezmoi/wxWin
Après décompression vous avez un répertoire ~/chezmoi/wxWin/wxWidgets-3.1.0
Créez dedans un sous répertoire de travail :ex ~/chezmoi/wxWin/wxWidgets-3.1.0/wxPersoBuild
En mode console se placer dans le répertoire de travail (cd ~/chezmoi/wxWin/wxWidgets-3.1.0/wxPersoBuild)
Tout est prêt pour passer aux choses sérieuses.
Le script "configure" va vérifier que rien de manque et peaufiner les directives de compilation.
La consigne "--prefix" indique dans quel répertoire le résultat de la compilation sera placé.
"--enable-static --disable-shared" produisent une version de wxWidgets qui permettra d'obtenir des exécutable sans dépendances (ils seront par contre plus gros).
En mode console :
../configure --prefix=/opt/Persowx310_Lin64 --enable-optimise --enable-stl --enable-unicode --enable-threads --enable-static --disable-shared --enable-monolithic --enable-graphics_ctx
Le résultat attendu si tout va bien :
Configured wxWidgets 3.1.0 for `x86_64-unknown-linux-gnu'
Which GUI toolkit should wxWidgets use? GTK+ 2 with support for GTK+ printing
Should wxWidgets be compiled into single library? yes
Should wxWidgets be linked as a shared library? no
Should wxWidgets support Unicode? yes (using wchar_t)
What level of wxWidgets compatibility should be enabled?
wxWidgets 2.8 no
wxWidgets 3.0 yes
Which libraries should wxWidgets use?
STL yes
jpeg builtin
png sys
regex builtin
tiff builtin
zlib sys
expat sys
libmspack no
sdl no
Ensuite on lance la compilation (cela prend une bonne dizaine de minutes)
make
Jusqu'ici tout est contenu dans le répertoire de travail.
Il faut passer en mode root pour installer les exécutables à leur emplacement définitif
sudo make install
Un peu de nettoyage :
make distclean (pour nettoyer l'installation des fichiers créés dans le répertoire de compilation)
Vider le répertoire wxPersoBuild
On recommence pour la version de compilation croisée
Version 32 bits
Peu de choses changent. Le préfixe d'installation, bien sûr et la présence de la directive --host qui indique le type d'architecture sur laquelle l'exécutable sera utilisé. Ici i686-w64-mingw32 pour une cible Win32
../configure --prefix=/opt/Persowx310_Win32 --host=i686-w64-mingw32 --enable-unicode --build=`../config.guess` --disable-shared
résultat:
Configured wxWidgets 3.1.0 for `i686-w64-mingw32'
Which GUI toolkit should wxWidgets use? msw
Should wxWidgets be compiled into single library? no
Should wxWidgets be linked as a shared library? no
Should wxWidgets support Unicode? yes (using wchar_t)
What level of wxWidgets compatibility should be enabled?
wxWidgets 2.8 no
wxWidgets 3.0 yes
Which libraries should wxWidgets use?
STL no
jpeg builtin
png builtin
regex builtin
tiff builtin
zlib builtin
expat builtin
libmspack no
sdl no
make
sudo make install
N'oubliez pas de faire un peu de nettoyage comme montré plus haut
Version 64 bits maintenant
../configure --prefix=/opt/Persowx310_Win64 --host=x86_64-w64-mingw32 --enable-unicode --build=`../config.guess` --disable-shared
résultat :
Configured wxWidgets 3.1.0 for `x86_64-w64-mingw32'
Which GUI toolkit should wxWidgets use? msw
Should wxWidgets be compiled into single library? no
Should wxWidgets be linked as a shared library? no
Should wxWidgets support Unicode? yes (using wchar_t)
What level of wxWidgets compatibility should be enabled?
wxWidgets 2.8 no
wxWidgets 3.0 yes
Which libraries should wxWidgets use?
STL no
jpeg builtin
png builtin
regex builtin
tiff builtin
zlib builtin
expat builtin
libmspack no
sdl no
make
sudo make install
Un peu de nettoyage (voir plus haut)
Ouf ! c'est fait.