
Rezilla, Žditeur de ressources pour Macintosh, est une application dŽveloppŽe sous forme de projet en source libre (Open Source). Cela implique que, bien qu'elle soit couramment distribuŽe aux utilisateurs comme une application prte ˆ fonctionner sous systme MacOSX, son code source est Žgalement disponible pour les dŽveloppeurs: il est actuellement hŽbergŽ sur le site de SourceForge.
Le prŽsent fichier donne des instructions dŽtaillŽes pour aider ˆ compiler l'application ˆ partir du code source. Il correspond ˆ la version 1.1 de Rezilla.
La section TŽlŽchargement indique o on peut se procurer une distribution du code source de Rezilla (voir par exemple ici).
Rezilla est Žcrit en C++. Il est construit au moyen du programme CodeWarrior de Metrowerks et utilise le modle de dŽveloppement PowerPlant qui fait partie de la version Macintosh de CodeWarrior.
Un fichier de projet CodeWarrior est fourni dans la distribution du code source de Rezilla: il a ŽtŽ crŽŽ au moyen de la version CodeWarrior Pro 9. La version correspondante de PowerPlant est 2.2.2.
Par ailleurs, l'Žditeur hexadŽcimal de Rezilla est basŽ sur le moteur de traitement de texte WASTE. Il est donc nŽcessaire de lier le code contre la bibliothque WASTE afin de compiler Rezilla. Cette bibliothque peut tre trouvŽe en divers endroits sur l'Internet (voir par exemple sur sa page officielle ou sur le site de la Wikipedia). Elle fait aussi normalement partie de la distribution de CodeWarrior Pro, autrement dit, si vous avez CodeWarrior Pro, vous avez certainement aussi une distribution WASTE: au sein de la hiŽrarchie de CodeWarrior, on l'a trouve habituellement dans /CodeWarrior/MacOS Support/(Third Party Support)/WASTE Distribution. Actuellement, Rezilla utilise la version 2.1b1 de la bibliothque WASTE.
Ë partir de la version 1.0.7, la distribution source de Rezilla comporte Žgalement des fichiers de projet pour XCode destinŽ aux programmeurs qui prŽfŽreraient utiliser les Outils de DŽveloppement d'Apple au lieu de CodeWarrior. Il y a deux fichiers de projet: Rezilla.xcode pour XCode 1.5 et Rezilla.xcodeproj pour XCode 2.0 ou postŽrieur.
Dans tous les cas, que vous utilisiez CodeWarrior ou XCode, vous aurez besoin de l'environnement PowerPlant de Metrowerks pour pouvoir compiler Rezilla ˆ partir des sources. Depuis janvier 2006, PowerPlant est devenu un projet en source libre (Open Source); il est disponible sur le site de SourceForge ˆ l'adresse suivante: http://sourceforge.net/projects/open-powerplant.
Les deux sections qui suivent donnent des instructions spŽcifiques afin de b‰tir Rezilla dans les environnements CodeWarrior ou XCode respectivement. Si vous rencontrez des difficultŽs ˆ compiler Rezilla, n'hŽsitez pas ˆ demander de l'aide sur la liste de discussion des utilisateurs de Rezilla.
Il n'y a pas de difficultŽ particulire pour compiler Rezilla ˆ partir du fichier de projet CodeWarrior (Rezilla.mcp), pourvu que vous disposiez d'une installation standard de CodeWarrior Pro 9. Il faut simplement s'assurer que les chemins d'accs sont rŽglŽs correctement sur votre machine.
Ces chemins d'accs sont spŽcifiŽs au moyen d'arbres sources (Source Trees). Il y a, en rŽalitŽ, un seul arbre source ˆ dŽfinir: pour cela, lancer l'application CodeWarrior, aller dans les PrŽfŽrences et sŽlectionner le panneau Source Trees. Dans ce panneau, il faut crŽer un arbre source appelŽ Waste et le faire pointer sur le dossier contenant la bibliothque Waste sur votre machine (probablement quelque chose comme /CodeWarrior Folder/CodeWarrior/MacOS Support/(Third Party Support)/WASTE Distribution). Les autres chemins d'accs utilisŽs par le projet de Rezilla sont relatifs aux arbres sources {Compiler}, {Project} et {OS X Volume} qui sont prŽdŽfinis et automatiquement rŽglŽs par CodeWarrior, ce qui fait que vous ne devriez pas avoir ˆ vous en prŽoccuper.
Si ce n'est pas dŽjˆ le cas, ouvrez maintenant le projet Rezilla.mcp. Ce projet comporte trois cibles (en anglais targets):
Afin de construire l'une des cibles, sŽlectionner la commande Make dans le menu Project de CodeWarrior. Le fichier produit aprs compilation se trouvera dans le sous-dossier appelŽ Output qui est situŽ au mme niveau que le fichier de projet Rezilla.mcp lui-mme:
Noter que, la plupart du temps, le Finder n'affiche pas l'extension .app ce qui fait que vous verrez probablement Rezilla_D et Rezilla respectivement comme nom de l'application: c'est une application "empaquetŽe", c'est-ˆ-dire que, bien qu'elle ait l'apparence d'un fichier, il s'agit en rŽalitŽ d'un dossier ˆ l'intŽrieur duquel se trouvent toutes les ressources nŽcessaires.
Le projet dŽfinit un certain nombre d'actions qui ont pour fonction de copier tous les ŽlŽments nŽcessaires dans leur destination finale: cela concerne les fichiers auxiliaires (ceux qui ne sont pas gŽnŽrŽs automatiquement par le compilateur, tels que les fichiers d'aide). Si le dossier Output n'existe pas dŽjˆ, CodeWarrior le crŽera, au cours de la compilation, avec la structure interne requise. Pour peu que vous ne modifiiez pas l'architecture des fichiers sources telle qu'elle est fournie dans la distribution source ou bien directement depuis le serveur CVS sur le site de SourceForge, le projet CodeWarrior saura o trouver les ŽlŽments dont il a besoin.
Il est facile d'ouvrir l'application empaquetŽe et de voir ce qui se trouve ˆ l'intŽrieur: il suffit de cliquer sur l'icone de l'application en maintenant la touche Contr™le enfoncŽe et de sŽlectionner Afficher le contenu du paquet dans le menu contextuel qui appara”t aprs le clic. Voici quelle devrait tre l'organisation interne du paquet:
Rezilla.app Contents Info.plist PkgInfo MacOS Rezilla Resources Rezilla.rsrc RezillaTemplates.rsrc RezillaDocs.icns Rezilla.icns Images rzil_aeteeditor.gif rezilla_logo.gif ... etc. English.lproj InfoPlist.strings Localizable.strings Errors.strings RezillaHelp index.html 1.html 2.html 3.html 4.html ... etc. French.lproj InfoPlist.strings Localizable.strings Errors.strings RezillaHelp index.html 1.html 2.html 3.html 4.html ... etc.
En particulier, il est essentiel que le fichier RezillaTemplates.rsrc soit prŽsent dans le sous-dossier Rezilla.app/Contents/Resources. S'il n'y est pas, il faudra le copier manuellement ˆ partir du dossier Rezilla_Rsrc de la distribution source de Rezilla, autrement l'application ne pourra fonctionner correctement.
XCode est l'environnement de dŽveloppement logiciel d'Apple. Il fait partie des Outils de DŽveloppement. Dans le code source de Rezilla (ˆ partir de la version 1.0.7), on trouvera deux fichiers de projet correspondant ˆ deux versions diffŽrentes de XCode: cela vient du fait que le format des fichiers de projet et l'environnement de programmation ont ŽtŽ substantiellement modifiŽs entre les versions 1.5 et 2.0 de XCode. En outre, ils n'utilisent pas le mme compilateur: la version 1.5 (fichier de project Rezilla.xcode) utilise la version 3.3 du compilateur GNU gcc tandis que l'autre (fichier de project Rezilla.xcodeproj) est rŽglŽe pour utiliser la version 4.0 du compilateur.
Compiler Rezilla avec XCode est trs simple ˆ partir du moment o l'on a franchi les deux Žtapes suivantes:
Le plus simple sera de crŽer des Arbres Sources (Source Trees) de la mme manire qu'on l'a vu, dans la section prŽcŽdente, avec CodeWarrior: choisir PrŽfŽrences dans le menu XCode et sŽlectionner le panneau Source Trees. Dans ce panneau, on devra dŽfinir deux arbres sources:
/Users/bernardo/CodeWarrior_9.0/CodeWarrior
/Users/bernardo/CodeWarrior_9.0/CodeWarrior/MacOS Support/(Third Party Support)/WASTE_2.1b1
On peut maintenant rŽgler les chemins d'accs pour chaque cible: sŽlectionner une cible et appeler la fentre d'inspection pour cette cible (avec le bouton Info de la barre d'outils ou ˆ partir de la commande Info du menu Fichier). Lˆ, il suffit de sŽlectionner le panneau Build et de trouver l'article Search Paths dans le bouton-menu Settings. Il y a quatre sortes de chemins d'accs:
Gr‰ce aux arbres sources dŽfinis prŽcŽdemment, les chemins d'accs peuvent tre fixŽs comme ceci:
HEADER_SEARCH_PATHS = "/Developer/Headers/FlatCarbon
\"${CodeWarrior}/MacOS Support/PowerPlant/\"
${Waste}
${CodeWarrior}/MSL/MSL_C++/MSL_Common/Include/"
LIBRARY_SEARCH_PATHS = "\"${Waste}\"
/Volumes/ib2/Devel_BD/Rezilla/RezillaSource/build"
FRAMEWORK_SEARCH_PATHS = /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks
REZ_SEARCH_PATHS = "/Developer/Headers/FlatCarbon ${SRCROOT}/Rezilla_Src"
Avec XCode 2.0 ou postŽrieur, il existe deux configurations: Debug et Release. Il faut dŽfinir les chemins d'accs sŽparŽment pour les deux configurations.
Le compilateur CodeWarrior et le compilateur XCode (gcc) prŽsentent quelques diffŽrences concernant leur faon d'interprŽter la syntaxe C/C++. Cela implique que certaines instructions qui sont compilŽes sans problme avec CodeWarrior peuvent provoquer un message d'erreur avec gcc (et rŽciproquement). Afin de compiler la bibliothque PowerPlant avec XCode, quelques changements mineurs sont ainsi nŽcessaires: il s'agit uniquement de modifier quelques instructions dans le code source de PowerPlant. Ces modifications sont dŽcrites sur le site pour dŽveloppeurs d'Apple dans le document Make Changes to PowerPlant.
Ce document (Make Changes to PowerPlant) explique prŽcisŽment quelles sont les modifications nŽcessaires. Elles concernent uniquement les fichiers suivants:
Il y a aussi des modifications dans les fichiers LDebugStream.cp et LCommanderTree.cp mais on peut ici les ignorer car ces fichiers ne sont pas incorporŽs dans le projet Rezilla.
Ce mme document explique Žgalement comment construire un fichier d'en-tte afin de crŽer un en-tte prŽcompilŽ (precompiled header) dans XCode. Vous n'avez pas ˆ vous prŽoccuper de cette question car le fichier en question se trouve dŽjˆ dans la distribution source de Rezilla et qu'il est automatiquement compilŽ par les projets XCode de Rezilla (il s'agit du fichier PP_Xcode.h dans le sous-dossier /Rezilla_Src/Prefix).
Noter que tous les fichiers sources de Rezilla adoptent une syntaxe stricte qui fait qu'ils sont acceptŽs aussi bien par CodeWarrior que par XCode.
Quand les problmes mentionnŽs prŽcŽdemment sont rŽsolus, il n'y a plus qu'ˆ ouvrir le fichier projet, sŽlectionner la cible souhaitŽe et exŽcuter la commande Build (avec le bouton Build de la barre d'outils de la fentre principale du projet ou ˆ partir de la commande du mme nom dans le menu Build). De mme que dans le cas du projet CodeWarrior, il est prŽfŽrable de b‰tir la cible Regex_Lib en premier. Il existe une dŽpendance entre les cibles qui garantit que ce sera bien le cas.
Il n'y a rien de particulier ˆ faire pour installer les fichiers auxiliaires ˆ l'intŽrieur de l'application empaquetŽe: le projet XCode prend en charge non seulement la compilation de l'application mais aussi la copie des divers ŽlŽments dans leur emplacement de destination.
Une fois terminŽ le processus de compilation, le produit final se trouvera dans le dossier build situŽ au mme niveau que le projet XCode:
Dernire mise ˆ jour 2006-11-01 15:24:16