Table des Matières
Liens Externes

Construction de WxPic

Les étapes suivantes sont nécessaires pour construire les exécutables et l'installateur.

Windows (Win32)

Installation de l'environnement

MinGW / GCC / Code::Blocks Installation

L'installation de Code::Blocks se fait simplement grâce à l'installateur qui contient aussi GCC MinGW. Selectionnez toutes les options afin de ne rien rater. On suppose dans les paragraphes suivants qu'il a été installé dans le répertoire par défaut C:\Program Files\CodeBlocks. Pour plus d'information sur l'installation de Code::Blocks, réferez vous au site de Code::Blocks.

Après installation lancez Code::Blocks et demandez la découverte du compilateur GCC. Je recommande aussi une option qui rend la vie plus facile. Dans Code::Blocks ouvrez le dialogue General Setting grâce au menu Settings > Environment ... Ensuite sélectionnez l'option On application start-up : Open default workspace. Ensuite sortez de Code::Blocks SANS sauvegarder le workspace. Les prochaines fois que vous ouvrirez Code::Blocks vous ouvrirez automatiquement votre espace de travail par défaut sans avoir à le rechercher.

Haut

Installation de wxWidgets

Simplement utiliser l'installateur wxWidgets. Par la suite on suppose que wxWidgets a été installé dans son répertoire par défaut qui est C:\wxWidgets-2.8.11

Il faut aussi définir une variable d'environnement de nom wxWidgets avec le chemin d'installation de wxWidgets, dans l'exemple: C:\wxWidgets-2.8.11

Pour définir la variable d'environnement, référez-vous à cette page d'aide.

Haut

Génération de la Librarie wxWidgets

A ce moment il y a 2 options possibles. Soit vous générez les librairies vous-même, soit vous téléchargez ci-dessus les librairies pré-compilées pour WxPic.

Option Generation Complète

Cela nécessite que votre compilateur GCC et ses outil associés soient accessibles en tapant simplement le nom de leur executable. Cela s'obtient en ajoutant leur répertoire bin dans la variable d'environement Path. C'est à dire (en supposant que les répertoire par défaut ont été utilisés) ajouter C:\Program Files\CodeBlocks\MinGW\bin à votre variable d'environment Path. N'oubliez pas d'utiliser un point-virgule (';') pour séparer le nouveau chemain de ceux pré-existants. Referez-vous à cet article pour plus d'information sur la mise à jour des variables d'environement.

Vous pouvez vérifier que c'est bien fait en ouvrant une fenêtre cmd et en y entrant la commande gcc -v . Ceci doit afficher la version de gcc. Si vous obtenez une erreur qui dit que la commande n'est pas reconnue, c'est que la variable Path n'a pas été correctement mise à jour.

N'oubliez pas que la modification d'une variable d'environement n'affecte pas les applications déjà lancées. Donc la fenêtre cmd doit être ouverte APRES la mise à jour de la variable d'environement.

Avant la génération des librairies wxWidgets, le fichier setup.h spécifique doit être installé. Si vous ne le faite pas, votre WxPic aura besoin de plus de librairies que spécifié dans votre projet (par example les librairies JPEG et PNG) et l'édition de lien échouera. Si vous les rajoutez pour réussir l'édition de lien, le résultat sera un WxPic plus gros que nécessaire.

Donc renomez setup.h.V2.8.11 téléchargé ci-dessus en setup.h

Ensuite copiez ce fichier dans le répertoire C:\wxWidgets-2.8.11\include\wx\msw . Ceci remplacera le fichier par défaut. Vous pouvez renommer le fichier à écraser afin de le préserver. Mais notez qu'une copie de sauvegarde setup0.h existe déjà dans le répertoire.

Vous êtes maintenant prêt à compiler les librairies. 2 jeux de librairies sont utilisées par WxPic : Release et Debug. La version Release de la librairie est évidemment utilisée pour générer la version W32 Release de WxPic et de même pour le version Debug. Chaque jeu de librairie doit être généré séparément.

Pour générer le jeu Release des librairies wxWidgets pour WxPic allez dans le répertoire:

C:\wxWidgets-2.8.11\build\msw

Et entrez la commande suivante :

mingw32-make -f makefile.gcc BUILD=release UNICODE=1 CFG=wxpic

et pour le jeux Debug:

mingw32-make -f makefile.gcc BUILD=debug UNICODE=1 CFG=wxpic

Chacune de ces commandes peut prendre jusqu'à une demi heure. Soyez patient.

Une fois la génération terminée vous pouvez restorer le fichier setup.h si vous le désirer. En effet la commande de génération de la librairie a recopié le fichier setup.h adapté là où il sera utilisé par la suite en compilant WxPic. Once you have completed the generation you can restore the default setup.h file if you wish.

Haut

Option Utilisation des librairies pre-compilées

Si les opérations ci-dessus vous semblent trop compliquées ou trop longues, vous pouvez télécharger les librairies pré-compilées disponibles sur la page des téléchargements. Vous devez les décompresser dans le répertoire ci-dessous (à créer) :

C:\wxWidgets-2.8.11\lib\gcc_libwxpic

Cela vous donnera les fichiers suivants :

C:\wxWidgets-2.8.11\lib\gcc_libwxpic\libwxbase28u.a
C:\wxWidgets-2.8.11\lib\gcc_libwxpic\libwxbase28u_xml.a
C:\wxWidgets-2.8.11\lib\gcc_libwxpic\libwxexpat.a
C:\wxWidgets-2.8.11\lib\gcc_libwxpic\libwxmsw28u_adv.a
C:\wxWidgets-2.8.11\lib\gcc_libwxpic\libwxmsw28u_core.a

Le fichier setup.h-V2.8.11 doit aussi être copié après avoir été renommé setup.h dans un répertoire à créer. Ce répertoire est mswu\wx dans le répertoire créé pour les librairies. Ce qui donne le fichier :

C:\wxWidgets-2.8.11\lib\gcc_libwxpic\mswu\wx\setup.h

Notez qu'il ne s'agit que les librairies Released qui ne permettent que générer la version Win32 Release.

Haut

Extraction des sources de WxPic

Créer un répertoire où se fera le dévelopement WxPic. Il peut être n'importe où pourvu que son chemin ne soit pas trop long (éviter plus de 150 caractères). Par la suite on supposera ce répertoire être D:\WxPic

Depuis l'archive des sources

Décompressez l'archive des sources dans le répertoire en conservant l'arborescence des fichiers.

Depuis le dépôt SVN

Effectuez un Check-out ou un Export du dépôt à l'URL:

https://wxpic.svn.sourceforge.net/svnroot/wxpic/Trunk

Ou une version particulière labéllée comme par exemple V1.2.2 à:

https://wxpic.svn.sourceforge.net/svnroot/wxpic/Tags/V1.2.2

Haut

Définition de la Version

Trois fichiers doivent être créés pour définir les informations pour décrire la version à créer.

version.autogen

Ce fichier doit être dans le répertoire src avec le format suivant :

#define SVN_DATE (_T("2011-03-25T18:51:29.447729Z"))
#define SVN_REVISION (112)
#define SVN_VERSION (_T("V1.2.2"))
#define FULL_SVNVER (_T("1.2.2.112"))
#define SVN_MANAGED (true)

Ces definitions sont:

SVN_MANAGED
Indique si la version correspond à une version à une version identifiée par la gestion de configuration des sources. Si SVN_MANAGED est false, SVN_VERSION peut être ignoré.
SVN_DATE
Date de la version
SVN_REVISION
Révision correspondant (approximativement si SVN_MANAGED est false) à l'exécutable généré
SVN_VERSION
Nom de la version générée
FULL_SVNVER
Version en 4 nombres séparés par des points. Habituellement le dernier nombre est égal à SVN_REVISION

Haut

manifest.autogen

Ce fichier doit être créé à la racine du répertoire du projet et doit être du format suivant :

<?xml version="1.0" encoding="UTF-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
 	<assemblyIdentity version="1.2.2.112" processorArchitecture="X86" name="WxPic" type="win32"/>
 	<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
 		<security>
 			<requestedPrivileges>
 				<requestedExecutionLevel level="highestAvailable"/>
 			</requestedPrivileges>
 		</security>
 	</trustInfo>
 </assembly>

Le seul champ à remplacer dans cet example The only field to change is the version at XPATH=assembly/assemblyIdentity/@version

Cette valeur devrait être égale à la définition de FULL_SVNVER dans le fichier version.autogen

Le reste du fichier doit être laissé inchangé. Notez que le fichier model.manifest dans le répertoire resource contient le modèle ci-dessus.

Haut

TarVersion.autogen

Ce fichier doit être créé à la racine du répertoire du projet et doit être du format suivant :

1103251851  

Il contient la date de la version (typiquement la même que la définition de SVN_DATE dans version.autogen) sous la forme de l'année, le mois, le jour, l'heure et la minute, tous exprimés sur 2 chiffres.

Haut

Compilation C++

Maintenant que l'environement est installé, compiler WxPic est une opération facile :

L'exécutable WxPic est maintenant construit dans le répertoire bin\Win32Release (pour la cible Release Win32). Cet exécutable peut remplacer celui installé par l'installateur ou contribuer à contruire un nouvel installateur en continuant les opérations de contruction des prochains paragraphes.

Haut

Compilation des Fichiers de Language

Il existe uniquement une traduction à ce moment, la traduction Française. De nouvelles traductions peuvent être créées sur le même modèle. Pour compiler un fichier de Langage, utilisez l'outil gettext avec la commande suivante à appliquer dans chaque répertoire de langue :

msgfmt -o WxPic.mo WxPic.po

A noter que pour que msgfmt soit reconnu sans avoir à fournir son chemin complet, il faut ajouter le répertoire des binaires de GnuWin32 dans le Path. Ce n'est pas fait par les installateurs des outils GNU.

Haut

Contruction des fichiers de redirection de l'aide

Les navigateurs web ne sont pas capable d'accepter une ancre dans le nom des pages web à ouvrir qui leur sont passé en paramètre. Pour contourner ce problème, WxPic utilise des pages de redirection qui pointent sur les ancres. Ce sont des pages très simples avec le contenu suivant :

<!DOCTYPE html
	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html  xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
	<meta http-equiv="refresh" content="1;url={Url}.html#{Anchor}" />
	<title></title>
</head>
<body></body>
</html>  

Un fichier de ce type doit exister par entrée vers une ancre de l'aide. Ces entrées sont listées dans le fichier Web/Help/wxHelp.map et distinguées par leur attribut ancre. A ce jour il n'existe qu'une seule entrée de ce type. {Url} dans le modèle ci-dessus doit être remplacé par la valeur de l'attribut url de l'entrée et {Anchor} doit être remplacé par la valeur de l'attribut anchor. Et finallement, le fichier doit être nommé {Url}++{Anchor}.html .

Avec un processeur XSLT 2.0, il est possible de construire ces fichiers en appelant le processeur avec :

Fichier d'entrée
Le fichier wxHelp.map
Feuille de style XSLT
Le fichier MAP2Redirect.xslt
Paramètres
TARGET_DIR=<the-target-directory>
<the-target-directory> est le répertoire où les fichiers HTML doivent être générés.

Haut

Contruire l'installateur

L'installateur cherche la plupart de ces fichiers là où la cible Release Win32 est générée. Si l'exécutable généré s'y exécute correctement alors l'installateur y trouvera les fichiers dont il a besoin. Seul les fichiers de "device" MPLAB peuvent manquer. En effet, pour une question de copyrights, ces fichiers ne peuvent être fourni avec l'installeur. Cela ne vous interdit pas de les ajouter dans cet environnement de test.

L'organisation des fichiers suivante doit être respecter pour tester avec succès la version générée et ensuite générer l'installateur. Sa racine est le répertoire bin/Win32Release dans le répertoire du projet WxPic.

Quand les fichiers ci-dessus on tous été organisés comme indiqués, il est possible de faire les tests du binaire généré. Ensuite l'installateur peut être créé grace aux opérations suivantes :

L'installateur est généré à la racine du répertoire du projet.

Alternativement, pour générer l'installateur, vous pouvez cliquer avec le bouton droit sur le fichier WxPic.nsi et choisir Compile NSIS Script.

Haut

Linux

J'utilise Ubuntu, donc je vais décrire les étape de la construction de WxPic sous Ubuntu. Ma connaissance de Linux est trop limitée pour que je puisse vous aider à extrapoler sur d'autres variantes de Linux. Je n'ai pas été capable de générer un paquet Debian si bien que le résultat final de la génération est une archive à installer manuellement. L'avantage c'est qu'elle devrait être compatible avec toutes les variantes de Linux.

Installation des paquets

La première chose à faire avec Ubuntu est d'installer les paquets requis en utilisant le gestionnaire de paquets Synaptic. Référez-vous à la liste de la page des téléchargements.

Haut

Extraction des sources

Sous Unix pas difference avec l'opération équivalente sous Windows.

Définition de la version

Sous Unix, ce sont les mêmes que les fichier de version sous Windows. Donnez leur le même contenu. Cependant manifest.autogen n'est pas utile sous Linux.

La différence sous Unix c'est qu'il est aussi possible de générer automatiquement ces fichiers. Ceci est pris en charge par le Makefile (voir ci-dessous).

Pour que la version générée soit significative, il faut que le répertoire du projet soit une copie de travail SVN, c'est à dire qu'elle ait été remplie par une commande SVN Check Out. Cependant, il n'est pas nécessaire qu'elle vienne du dépot officiel de WxPic sur SourceForge. Vous pouvez avoir votre propre dépot SVN si vous le souhaitez.

Haut

Compilation et création des fichiers de redirection de l'aide

Avec Ubuntu, Code::Blocks fonctionne de la même façon que sous Windows. Vous pouvez donc vous référer aux operations equivalentes sous Windows à part pour la cible qui doit être Release Linux. Sur les plateformes Linux qui ne disposeraient pas de Code::Blocks, un Makefile est fourni qui permet d'effectuer la compilation C++ et l'édition de lien.

A noter que ce makefile est moins fin que Code::Blocks dans la vérification de l'obsolescence des fichiers objets (il ne considère pas les entêtes .h).

Pour la compilation des fichiers de language, le processeur msgfmt fonctionne de la même façon que sa version Win32. Donc de nouveau consultez les instructions sous Windows. Par contre sous Linux cette compilation peut aussi être prise en charge par le Makefile Linux.

Finallement les fichiers de redirection doivent être créés comme sous Windows. Mais là encore il peuvent être générés par le Makefile Linux.

Haut

Makefile

Ce Makefile peut effectuer toutes les étapes de la génération de Linux et la copie des fichiers dans l'environement de test ou les installer. Depuis la racine du répertoire du projet les options suivantes sont disponibles:

make version
Crée les fichiers de version.
make
Compile les sources C++ et les fichiers de language WxPic.po, édite les liens de l'exécutable.
make test
Copie tous les fichiers nécessaires pour lancer l'exécutable généré, y compris les fichier de redirection de l'aide qu'il génère automatiquement.
make install
 
Comme make puis ensuite installe les fichiers compilés ainsi que les autres fichier necessaire à l'exécution de WxPic. Attention: cette option requière les privilèges root (under Ubuntu use sudo)
make tar
Comme install puis ensuite fabrique l'archive binaire qui contient tout les fichiers nécessaires pour installer WxPic sur une autre machine Linux (à l'exception des paquets standard listés sur la page des téléchargements). Attention si install n'a pas été fait avant, requière les privilèges root.
make clean
Supprime tout les résultats des compilations (créés by make) ainsi que les fichiers copiés par make test
make uninstall
Supprime tous les fichiers installés par make install

Haut

Contribution

Si vous désirez contribuer au développement de WxPic merci de me contacter à travers le forum. Il y a beaucoup de contributions possibles :

Tout type de contribution est bienvenu.

Haut