Manual Codeblocks FR PDF
Manual Codeblocks FR PDF
Manual Codeblocks FR PDF
Manuel Utilisateur
Version 1.1
Anders F. Bjorklund (afb), Biplab Kumar Modak (biplab), Bartomiej wiecki (byo), Paul
A. Jimenez (ceniza), Koa Chong Gee (cyberkoa), Daniel Orb (daniel2000), Lieven de Cock
(killerbot), Yiannis Mandravellos (mandrav), Mispunt (mispunt), Martin Halle (morten-
macfly), Jens Lody (jens), Jerome Antoine (dje), Damien Moore (dmoore), Pecan Heber
(pecan), Ricardo Garcia (rickg22), Thomas Denk (thomasdenk), tiwag (tiwag)
Il est permis de copier, distribuer et/ou modifier ce document dans le respect de la licence
GNU Free Documentation, Version 1.2 ou tout autre version posterieure publiee par la
Free Software Foundation.
Traduction de la version originale anglaise par Gerard Durand (gd on).
1 Gestion de Projet CodeBlocks
Les instructions du chapitre 3 a la page 58 et du chapitre 4 a la page 68 sont les documen-
tations officielles du site Wiki de CodeBlocks ou elles ne sont disponibles quen anglais.
Note:
Remarque du traducteur : Les references aux menus sont traduites
en francais. Cela suppose donc que vous avez installe la francisation
de linterface de CodeBlocks que vous pouvez obtenir, notamment via
le forum, dans la rubrique CodeBlocks Translation. Ne plus utiliser
celle du site LaunchPad bien trop ancienne et largement depassee. Les
images ci-dessous sont celles de la documentation originale, en anglais
Gestion Cette fenetre contient linterface Projets qui dans le texte suivant sera referencee
comme vue du projet. Cette vue affiche tous les projets ouverts dans CodeBlocks a
Code::Blocks V1.1
un instant donne. Longlet Symboles de la fenetre Gestion affiche les symboles, les
variables etc.
Editeur Dans lillustration ci-dessus, un fichier source nomme hello.c est ouvert avec
colorisation de syntaxe dans lediteur.
Liste des fichiers ouverts affiche une liste de tous les fichiers ouverts dans lediteur, dans
cet exemple : hello.c.
CodeSnippets peut etre affiche via le menu Vue CodeSnippets . Ici vous pouvez
gerer des modules de texte, des liens vers des fichiers et des liens vers des urls.
Journaux & autres . Cette fenetre est utilisee pour sortir des resultats de recherche, des
messages envoyes par un compilateur etc..
La barre detat donne un apercu des parametrages suivants :
Chemin absolu dun fichier ouvert dans lediteur.
Lediteur utilise lencodage par defaut de votre systeme dexploitation. Cette con-
figuration sera affichee par default.
Numeros de ligne et de colonne de la position actuelle du curseur dans lediteur.
Le mode de configuration du clavier pour inserer du texte (Insertion ou Remplace-
ment).
Etat actuel du fichier. Un fichier modifie sera marque comme Modifie sinon cette
case reste vide.
Autorisation dun fichier. Un fichier qui est en lecture seule sera affiche Lecture seule
dans la barre detat. Dans la fenetre Ouvrir la liste de fichiers ces fichiers seront
identifies par une icone de verrouillage superposee.
Note:
Dans lediteur courant, lutilisateur peut choisir les proprietes du
menu de contexte. Dans le dialogue apparaissant dans longlet
General , loption Le fichier est en lecture seule peut etre
selectionnee. Cette option marquera le fichier correspondant comme
etant en lecture seule pour CodeBlocks, mais les attributs en lecture
et ecriture du fichier original ne seront pas modifies dans le systeme
de fichiers.
Si vous demarrez CodeBlocks en ligne de commande avec --personality=<profile>
la barre detat affichera le profil utilisateur courant, sinon default sera affiche. Les
parametres de CodeBlocks sont enregistres dans le fichier de configuration corre-
spondant <personality>.conf.
CodeBlocks offre une gestion des projets tres flexible et tres comprehensible. Le texte
suivant ne montre que quelques aspects de la gestion de projets.
Codeblocks 2
Code::Blocks V1.1 1.1 Vue du projet
Note:
Si vous desactivez Arbre des projets Categoriser par type de
fichiers dans le menu de contexte, laffichage par categories sera
masque, et les fichiers seront listes comme ils sont stockes dans le
systeme de fichiers.
Codeblocks 3
Code::Blocks V1.1 1.4 Creer des Projets a partir de Cibles de Generation
Note:
Les modeles disponibles dans lassistant Projet peuvent etre edites en
les selectionnant via un clic droit.
Codeblocks 4
Code::Blocks V1.1 1.6 Etapes Pre- et Post Generation
seconde cible Release sans ces informations. En ajoutant Cibles Virtuelles via Projet
Proprietes Cibles de generation on peut combiner des cibles de generation indi-
viduelles. Par exemple, une Cible Virtuelle All peut creer les cibles Debug et Release
simultanement. Les cibles virtuelles sont affichees dans la barre de symboles du compila-
teur dans Generer les cibles.
Un autre exemple de Post generation peut etre larchivage dun projet. Pour cela, creez
une cible de generation Archive et incluez les instructions suivantes dans letape de post
generation :
zip -j9 $(PROJECT_NAME)_$(TODAY).zip src h obj $(PROJECT_NAME).cbp
Avec cette commande, le projet actif et ses sources, entetes et objets seront compresses
en tant que fichier zip. En faisant ainsi, les variables integrees $(PROJECT_NAME) et
$(TODAY), le nom du projet et la date courante seront extraites (voir section 3.2 a la
page 59). Apres lexecution de la cible Archive, le fichier compresse sera stocke dans le
repertoire du projet.
Dans le repertoire share/codeblocks/scripts vous trouverez quelques exemples de
scripts. Vous pouvez ajouter un script via le menu Parametres Edition de scripts
et lenregistrer dans un menu. Si vous executez par exemple le script make dist depuis le
menu, alors tous les fichiers appartenant a un projet seront compresses dans une archive
<project>.tar.gz.
Note:
Un script peut egalement etre inclus dans une Cible de Generation.
Codeblocks 5
Code::Blocks V1.1 1.8 Espace de travail et Dependances de Projet
Les variables de CodeBlocks sont identifiees par un $ (voir section 3.4 a la page 63).
Elles sont automatiquement configurees, ainsi vous navez a remplacer que loption de
lassembleur <asopt> par vos propres configurations.
Codeblocks 6
Code::Blocks V1.1 1.10 Editeur et Outils
1.10.2 Abreviations
Pas mal de frappes au clavier peuvent etre economisees dans CodeBlocks en definissant
des abreviations. Ceci peut sobtenir en selectionnant Parametres Editeur et en
definissant les abreviations par un nom <name>, qui peut alors etre appele par un rac-
courci clavier Ctrl-J (voir Figure 1.3 a la page 8).
On peut egalement les parametrer en incluant des variables $(NAME) dans les abreviations.
#ifndef $(Guard token)
#define $(Guard token)
#endif // $(Guard token)
Quand on utilise labreviation <name> dans un texte source et quon utilise Ctrl-J, le
contenu de la variable est recupere puis inclus.
1.10.3 Personnalites
Les configurations de CodeBlocks sont enregistrees en tant que donnees dapplication dans
un fichier denomme <user>.conf dans le repertoire de codeblocks. Ce fichier de con-
figuration contient des informations telles que les derniers projets ouverts, le parametrage
de lediteur, laffichage des barres de symboles etc. Par defaut, la personnalite default est
utilisee et sa configuration sauvegardee dans un fichier default.conf. Si CodeBlocks est
lance en ligne de commande avec le parametre --personality=myuser, le parametrage
Codeblocks 7
Code::Blocks V1.1 1.10 Editeur et Outils
sera enregistre dans un fichier myuser.conf. Si le profil nexiste pas deja, il sera au-
tomatiquement cree. Cette procedure rend possible la creation de differents profils pour
differentes etapes de travail. Si vous lancez CodeBlocks en ligne de commande avec le
parametre additionnel --personality=ask, une bote de selection sera affichee avec tous
les profils disponibles.
Note:
Le nom du profil/personnalite courant est affiche dans le coin a droite
de la barre detat.
Codeblocks 8
Code::Blocks V1.1 1.10 Editeur et Outils
CodeBlocks copiera les valeurs par defaut depuis Default User vers le repertoire Appli-
cation data de lutilisateur courant.
Pour creer une version portable de CodeBlocks sur cle USB, procedez comme suit. Copiez
le repertoire dinstallation de CodeBlocks vers la cle USB et stockez le fichier de configura-
tion default.conf dans ce repertoire. Cette configuration servira de parametrage global.
Faites attention au fait que ce fichier soit accessible en ecriture, sinon les changements de
configuration ne pourront y etre enregistres.
Codeblocks 9
Code::Blocks V1.1 1.10 Editeur et Outils
Note:
Avec le raccourci Ctrl-PgUp vous pouvez aller a la fonction
precedente, et via Ctrl-PgDn vous pouvez aller a la fonction suivante.
Dans lediteur, vous pouvez ouvrir un nouveau dialogue Ouvrir des fichiers Ctrl-Tab et
vous pouvez passer de lun a lautre via la liste affichee. Si vous appuyez sur la touche
Ctrl, alors un fichier peut etre selectionne de differentes facons :
Codeblocks 10
Code::Blocks V1.1 1.10 Editeur et Outils
1. Si vous selectionnez une entree avec le bouton gauche de la souris, le fichier selectionne
sera ouvert.
2. Si vous appuyez sur la touche Tab vous passez de lune a lautre des entrees listees.
En relachant la touche Ctrl le fichier selectionne sera ouvert.
3. Si vous deplacez la souris au-dessus des entrees listees, alors la selection courante
sera surlignee. En relachant la touche Ctrl le fichier selectionne sera ouvert..
4. Si le pointeur de souris est en dehors de la selection surlignee, vous pouvez utiliser
la molette de la souris pour basculer entre les entrees. En relachant la touche Ctrl
le fichier selectionne sera ouvert.
Une facon commune de developper du logiciel est de jongler avec un ensemble de fonctions
implementees dans differents fichiers. Lextension Browse Tracker vous aidera a resoudre
cette tache en vous montrant dans quel ordre ont ete selectionnes les fichiers. Vous pouvez
alors naviguer aisement entre les appels de fonctions (voir section 2.8 a la page 42).
Laffichage des numeros de lignes dans CodeBlocks peut sactiver via Parametres Editeur
Parametres generaux a laide du champ Afficher les numeros de ligne. Le raccourci
Ctrl-G ou la commande de menu Rechercher Aller a la ligne vous aidera a atteindre
la ligne desiree.
Note:
Si vous maintenez la touche Ctrl enfoncee en selectionnant du texte
dans lediteur de CodeBlocks vous pouvez lancer une recherche Inter-
net, notamment avec Google, via le menu de contexte.
Note:
Entrer un terme a chercher ou des noms de symboles dans le masque
dentree Rechercher du navigateur de Symboles permet dobtenir
une vue filtree des symboles si concordance il y a.
Codeblocks 11
Code::Blocks V1.1 1.10 Editeur et Outils
Les structures et classes sont affichees par le menu arbre du bas et lordre de tri peut etre
modifie via le menu de contexte. Si une categorie est selectionnee a la souris, les symboles
trouves seront affiches dans la partie basse de la fenetre (voir Figure 1.7 a la page 12).
Double-cliquer sur un symbole ouvrira le fichier ou il est defini ou bien la fonction ou elle
est implementee, puis on se positionnera sur la ligne correspondante. Un rafrachissement
automatique du navigateur de symboles, sans avoir a sauvegarder de fichier, peut etre
active par le menu Parametres Editeur Code Completion (voir Figure 1.8 a la
page 13). Les performances de CodeBlocks seront affectees dans les projets comportant
de nombreux symboles.
Note:
Dans lediteur, une liste de classes peut etre affichee via les menus de
contexte Inserer methode de classe ou Toutes methodes de classes
sans implementation .
Codeblocks 12
Code::Blocks V1.1 1.10 Editeur et Outils
Dans CodeBlocks vous pouvez egalement ajouter un support de pages man. Ajouter seule-
ment une entree man et specifiez les chemins comme suit (NdT ici pour Linux!).
man:/usr/share/man
CodeBlocks fourni un Visualiseur HTML integre, qui peut etre utilise pour afficher un
simple fichier html et y rechercher des mots cles. Configurez simplement le chemin du
Codeblocks 13
Code::Blocks V1.1 1.11 Astuces pour travailler avec CodeBlocks
fichier html qui doit etre analyse et cochez la case Ouvrir ce fichier avec le visualiseur
daide integre via le menu Parametres Environnement Fichiers daide .
Note:
Si vous selectionnez un fichier html par double clic dans lexplorateur
(voir section 2.7 a la page 38) alors le visualiseur html integre sera
demarre, du moins si aucune association vers les fichiers html nest
faite par le gestionnaire dextensions de fichiers.
Codeblocks 14
Code::Blocks V1.1 1.11 Astuces pour travailler avec CodeBlocks
modifications sont marquees par une barre de changements jaune alors que celles qui ont
deja ete enregistrees sont marquees par une barre de changements verte (voir Figure 1.11
a la page 15). Vous pouvez naviguer dans vos changements a laide du menu Rechercher
Aller a la ligne changee suivante ou encore Rechercher Aller a la ligne changee
precedente . La meme fonctionnalite est accessible via les raccourcis clavier Ctrl-F3 et
Ctrl-Shift-F3.
Cette fonctionnalite peut etre activee ou desactivee via la case a cocher Utiliser la barre
de changements dans le menu Parametres Editeur Marges et tirets .
Note:
Si un fichier modifie est ferme, alors lhistorique des changements tels
que defaire/refaire ainsi que la barre de changements sont perdus. A
laide du menu Edition Effacer lhistorique des changements ou
le menu de contexte correspondant vous pouvez effacer cet historique
meme si le fichier reste ouvert.
utilise un parametre, dans notre cas cest le nom dun fichier avec
son chemin en absolu, et il souvre dans une instance existante de
CodeBlocks ou bien, si necessaire, une premiere instance demarre.
Codeblocks 15
Code::Blocks V1.1 1.11 Astuces pour travailler avec CodeBlocks
Note:
La configuration dune variable denvironnement pour chaque pro-
jet peut etre selectionnee dans le menu de contexte Proprietes de
longlet Options EnvVars.
Exemple
Vous pouvez ecrire dans un fichier <project>.env lenvironnement utilise dans une etape
de post generation (voir section 1.6 a la page 5) puis larchiver dans votre projet.
cmd /c echo \%PATH\% > project.env
ou sous Linux
echo \$PATH > project.env
Codeblocks 16
Code::Blocks V1.1 1.11 Astuces pour travailler avec CodeBlocks
Note:
Autre exemple : editer un fichier en mode plein ecran sans barre de
symboles. Vous pouvez creer une disposition comme Plein Ecran et
lui assigner un raccourci specifique.
Codeblocks 17
Code::Blocks V1.1 1.11 Astuces pour travailler avec CodeBlocks
pour ce faire.
Alt-F5 Active le projet precedent de la vue des projets.
Alt-F6 Active le projet suivant de la vue des projets.
F11 Dans lediteur, bascule entre un fichier source <name>.cpp et le fichier den-tete
(header) correspondant <name>.h
Assurez vous que le compilateur soit correctement selectionne. Loption Ligne de com-
mande complete des Avertissements du compilateur permet de sortir des informations
detaillees. De plus, ces sorties peuvent etre redirigees vers un fichier HTML. Pour cela,
selectionnez Enregistrer le journal de generation dans un fichier HTML en fin de generation.
Dautre part, CodeBlocks peut afficher une barre davancement du processus de generation
dans la fenetre de generation qui peut etre activee en cochant Afficher la barre de pro-
gression de generation.
Codeblocks 18
Code::Blocks V1.1 1.11 Astuces pour travailler avec CodeBlocks
Note:
Avec le raccourci Ctrl-Numepad-/ ou a laide du menu Edition
Commandes speciales Zoom Remise a 0 vous restaurez
la taille originale du texte courant.
Codeblocks 19
Code::Blocks V1.1 1.11 Astuces pour travailler avec CodeBlocks
Note:
La plupart des gestionnaires de fenetres de Linux utilisent ALT-
ClicGaucheDeplacer pour deplacer une fenetre, aussi vous devrez
desactiver cette fonctionnalite pour pouvoir selectionner en mode
bloc.
Note:
Le style de repliement et la profondeur limite du repliement peuvent
se configurer dans le menu Parametres Editeur Repliement .
Codeblocks 20
Code::Blocks V1.1 1.11 Astuces pour travailler avec CodeBlocks
egalement. Les informations issues de lanalyse sont alors utilisees pour la fonctionnalite
dauto completion dans CodeBlocks. Verifiez sil vous plait que cette fonctionnalite est
bien activee dans lediteur. Lauto completion est accessible au travers du raccourci Ctrl-
Espace. Via le menu Parametres Editeur Colorisation syntaxique vous pouvez
ajouter des mots cles definis par lutilisateur a votre analyseur syntaxique.
Note:
Une autre facon dinclure des librairies est documentee dans la sec-
tion 2.10 a la page 43.
Codeblocks 21
Code::Blocks V1.1 1.12 CodeBlocks en ligne de commande
Note:
Si un programme utilisateur est associe a une certaine extension
de fichier, la configuration Desactiver Code::Blocks quand un pro-
gramme externe est lance devrait etre desactivee, sinon CodeBlocks
sera ferme des quun fichier qui possede cette extension est ouvert.
Codeblocks 22
Code::Blocks V1.1 1.13 Raccourcis
1.13 Raccourcis
Meme si une IDE comme CodeBlocks est surtout pilotee a la souris, les raccourcis claviers
sont neanmoins moyen tres pratique pour accelerer et simplifier le travail. Les tableaux
ci-dessous regroupent quelques-uns des raccourcis claviers disponibles.
Codeblocks 23
Code::Blocks V1.1 1.13 Raccourcis
1.13.1 Editeur
Fonction Raccourci clavier
Defaire la derniere action Ctrl-Z
Refaire la derniere action Ctrl-Shift-Z
Permuter en-tetes / source F11
Commenter le code surligne Ctrl-Shift-C
Decommenter le code surligne Ctrl-Shift-X
Auto-complete / Abreviations Ctrl-Space/Ctrl-J
Bascule la marque Ctrl-B
Aller a la marque precedente Alt-PgUp
Aller a la marque suivante Alt-PgDown
Ceci est une liste des raccourcis fournis pas le composant editeur de CodeBlocks. Ces
raccourcis ne peuvent pas etre substitues.
Fonction Raccourci clavier
Creer ou supprimer un signet Ctrl-F2
Aller au signet suivant F2
Selectionner jusquau signet suivant Alt-F2
Rechercher la selection. Ctrl-F3
Rechercher la selection en arriere. Ctrl-Shift-F3
Recherche des conditions concordantes du preprocesseur, passer les imbriquees Ctrl-K
1.13.2 Files
Fonction Raccourci clavier
Nouveau fichier ou projet Ctrl-N
Ouvrir un fichier ou un projet existant Ctrl-O
Enregistrer le fichier courant Ctrl-S
Enregistrer tous les fichiers Ctrl-Shift-S
Fermer le fichier courant Ctrl-F4/Ctrl-W
Fermer tous les fichiers Ctrl-Shift-F4/Ctrl-Shift-W
1.13.3 Vue
Fonction Raccourci clavier
Afficher / masquer le panneau de Messages F2
Afficher / masquer le panneau de Gestion Shift-F2
Activer le precedent (dans larbre des projets) Alt-F5
Activer le suivant (dans larbre des projets) Alt-F6
Codeblocks 24
Code::Blocks V1.1 1.13 Raccourcis
1.13.4 Recherche
Fonction Raccourci clavier
Rechercher Ctrl-F
Rechercher le suivant F3
Rechercher le precedent Shift-F3
Rechercher dans les fichiers Crtl-Shift-F
Remplacer Ctrl-R
Remplacer dans les fichiers Ctrl-Shift-R
Aller a la ligne Ctrl-G
Aller a la ligne changee suivante Ctrl-F3
Aller a la ligne changee precedente Ctrl-Shift-F3
Aller au fichier Alt-G
Aller a la fonction Ctrl-Alt-G
Aller a la fonction precedente Ctrl-PgUp
Aller a la fonction suivante Ctrl-PgDn
Aller a la declaration Ctrl-Shift-.
Aller a limplementation Ctrl-.
Ouvrir le fichier inclus Ctrl-Alt-.
1.13.5 Generer
Fonction Raccourci clavier
Generer Ctrl-F9
Compiler le fichier courant Ctrl-Shift-F9
Executer Ctrl-F10
Generer et executer F9
Re-generer Ctrl-F11
Codeblocks 25
2 Extensions
2.1 Astyle
Artistic Style est un indentateur de code source, un formateur de code source, et rend le
code source des langages de programmation C, C++, C# plus beau. On peut lutiliser
pour selectionner differents styles de regles de codage dans CodeBlocks.
Quand on indente un code source, nous en tant que programmeurs avons tendance a
utiliser a la fois des espaces et des caracteres de tabulations pour creer lindentation
souhaitee. De plus, certains editeurs inserent par defaut des espaces a la place des tab-
ulations quand on appuie sur la touche Tab, alors que dautres editeurs ont la faculte
de rendre les lignes plus belles en ajoutant automatiquement des espaces en debut de
lignes, eventuellement en remplacant dans ce code les tabulations utilisees jusqualors
pour lindentation par des espaces.
Comme le nombre de caracteres affiches sur lecran pour chaque caractere de tabulation
change dun editeur a lautre, un des problemes courants auquel est confronte un pro-
grammeur qui passe dun editeur a un autre est quun code qui contient a la fois des
espaces et des tabulations et qui etait jusqua present bien indente, devient soudain dif-
ficile a regarder apres le changement dediteur. Meme si en tant que programmeur vous
Code::Blocks V1.1 2.2 CodeSnippets
faites attention a nutiliser QUE des espaces ou QUE des tabulations, recuperer un code
de quelquun dautre peut malgre tout etre problematique.
Cest pour resoudre ce probleme quArtistic Style a ete cree - un filtre ecrit en C++ qui
re-indente et reformate automatiquement les fichiers sources en C / C++ / C#.
Note:
Quand vous copiez du code, par exemple depuis Internet ou dun
manuel, ce code sera automatiquement adapte aux regles de codage
dans CodeBlocks.
2.2 CodeSnippets
Lextension CodeSnippets permet de structurer des modules de texte et des liens vers des
fichiers en fonction de categories dans une vue arborescente. Les modules sont utilises
pour stocker des fichiers frequemment utilises, des constructions de modules de texte, le
tout gere depuis un endroit centralise. Imaginez la situation suivante : Un certain nombre
de fichiers source frequemment utilises sont stockes dans divers repertoires du systeme de
fichiers. La fenetre de CodeSnippets vous donne lopportunite de creer des categories et,
a linterieur de ces categories, des liens vers les fichiers requis. Avec cette fonctionnalite,
vous pouvez controler lacces aux fichiers independamment de lendroit ou ils sont stockes
dans le systeme de fichiers, et vous pouvez rapidement naviguer entre ces fichiers sans
avoir besoin de les chercher un peu partout dans le systeme.
Note:
Vous pouvez utiliser les variables CodeBlocks ou les vari-
ables denvironnement dans les liens vers les fichiers comme
$(VARNAME)/name.pdf pour parametrer un lien dans le navigateur de
CodeSnippets.
La liste des modules de texte et des liens peut etre enregistree dans la fenetre des
CodeSnippets en cliquant sur le bouton droit de la souris et en selectionnant Enregistrer
lindex depuis le menu de contexte. Le fichier codesnippets.xml qui est alors cree par
cette procedure, se trouve dans le sous-repertoire codeblocks du repertoire Documents
and Settings\Application data. Sous Linux, cette information est enregistree dans le
sous-repertoire .codeblocks de votre repertoire HOME. Les fichiers de configuration de
CodeBlocks seront charges au demarrage suivant. Si vous souhaitez enregistrer le con-
tenu des CodeSnippets a un autre endroit, selectionnez lentree Enregistrer lindex sous.
Pour charger ce fichier, selectionnez Charger le fichier dindex lors du demarrage suivant
de CodeBlocks ou incluez le repertoire dans les Parametres du menu de contexte de
Repertoire des Snippets. Les parametrages sont enregistres dans le fichier correspondant
codesnippets.ini dans votre application data.
Pour inclure une categorie, utilisez le menu Ajouter une sous-categorie. Une categorie
peut contenir des Snippets (modules de texte) ou des Liens vers un fichier. Un module
de texte est cree via la commande Ajouter un Snippet depuis le menu de contexte. Le
Codeblocks 27
Code::Blocks V1.1 2.2 CodeSnippets
contenu est integre dans le module de texte comme un Nouveau snippet en selectionnant
un passage de texte dans lediteur de CodeBlocks et en le glissant-deposant sur le module
dont les proprietes saffichent. En double cliquant sur la nouvelle entree ou en selectionnant
Editer le Texte on en editera le contenu.
La sortie dun module de texte est geree dans CodeBlocks via la commande Appliquer
du menu de contexte ou en faisant un glisser-deposer dans lediteur. Sous Windows, le
contenu dun Snippet peut egalement etre glisse-depose dans dautres applications. Dans
le navigateur de CodeSnippets vous pouvez copier une selection par glisser-deposer vers
une categorie differente.
De plus, les modules de texte peuvent etre parametres par des variables <name> qui
peuvent etre accedees via $(name) (voir Figure 2.2 a la page 28). Les valeurs des variables
peuvent etre recuperees dans un champ dentree si le module de texte est appele via la
commande du menu de contexte Appliquer.
A cote des modules de texte, des liens vers des fichiers peuvent aussi etre crees. Si, apres
avoir cree un module de texte, vous cliquez sur la commande Proprietes du menu de
contexte, vous pouvez alors selectionner une cible de type lien en cliquant sur le bouton
Lien cible. Cette procedure convertira automatiquement le module de texte en un lien
vers un fichier. Dans CodeSnippets, tous les modules de texte sont marques par un symbole
T, les liens vers un fichier par un symbole F et les urls par un symbole U. Si vous
voulez ouvrir un fichier selectionne (lien) dans la vue des codesnippets, selectionnez tout
simplement le menu de contexte Ouvrir le fichier ou tout en maintenant enfoncee la
touche Alt effectuez un double clic sur le fichier.
Note:
Vous pouvez meme ajouter une url (comme
http://www.codeblocks.org) dans les modules de texte. Lurl
peut etre ouverte en utilisant le menu de contexte Ouvrir lUrl ou
en utilisant un glisser-deposer vers votre navigateur favori.
Avec un tel parametrage, si vous ouvrez un lien vers un fichier pdf depuis la vue des
codesnippets, un visualiseur de fichiers pdf sera automatiquement demarre. Cette methode
rend possible a lutilisateur lacces a des fichiers repartis un peu partout sur le reseau,
comme des donnees, mises en forme, documentations etc., a laide des applications com-
munes, simplement par le biais dun lien. Le contenu des codesnippets est enregistre dans le
Codeblocks 28
Code::Blocks V1.1 2.2 CodeSnippets
Codeblocks 29
Code::Blocks V1.1 2.3 Recherche Incrementale
Note:
Quand on utilise de volumineux modules de texte, le contenu de ces
modules devrait etre enregistre sous forme de fichiers via Convertir en
lien vers fichier de facon a reduire lutilisation memoire du systeme.
Si vous supprimez un codesnippet ou un lien vers un fichier il est en
fait deplace vers une categorie .trash; si vous maintenez enfoncee la
touche Maj cet element sera reellement detruit.
Si la chane de caractere recherchee ne peut pas etre trouvee dans le fichier courant, afin
dindiquer que cest ce qui se passe, le fond du masque de recherche est affiche en rouge.
ESC Quitte le module de Recherche Incrementale.
ALT-Suppr Efface lentree du champ de recherche incrementale.
Les icones de la barre doutil de Recherche Incrementale ont les significations suivantes :
Codeblocks 30
Code::Blocks V1.1 2.3 Recherche Incrementale
En cliquant sur ce bouton ce sont toutes les occurrences de la chane recherchee qui
sont surlignees en couleur, pas seulement la premiere.
Activer cette option reduit le champ de recherche au passage de texte marque dans
lediteur.
Cette option signifie que la recherche sera sensible a la casse (respect des majuscules
et minuscules).
Note:
Le parametrage standard de cette barre doutil peut etre configure
dans Parametres Editeur Recherche Incrementale .
Codeblocks 31
Code::Blocks V1.1 2.4 Liste des a faire
Note:
La liste des a faire peut etre ajoutee a la console de messages.
Selectionnez loption Inclure la liste des A faire dans le panneau
de messages a laide du menu Parametres Environnement .
Si les fichiers sources sont ouverts dans CodeBlocks, un a faire peut etre ajoute a la liste
via la commande Ajouter un element a faire du menu de contexte. Un commentaire
est ajoute dans le code sur la ligne selectionnee.
// TODO (user#1#): ajouter un nouveau dialogue pour la prochaine release
Quand on ajoute un a faire, une bote de dialogue apparat ou les parametrages suivants
peuvent etre faits (voir Figure 2.6 a la page 33).
Utilisateur Nom de lutilisateur <user> pour le systeme dexploitation. Les taches pour
dautres utilisateurs peuvent egalement etre creees ici. Pour cela, le nom de lutilisateur
correspondant doit etre cree par Ajouter un nouvel utilisateur. Lassignation dun
a faire est alors faite via une selection dentrees pour cet utilisateur.
Note:
Notez que les Utilisateurs ici nont rien a voir avec les profils (ou
personnalites) utilises dans CodeBlocks.
Codeblocks 32
Code::Blocks V1.1 2.5 Exporter du code Source
Priorite Dans CodeBlocks, limportance de la tache peut etre exprimee par des priorites
(1 - 9).
Position Ce parametre specifie si le commentaire doit etre inclus avant, apres ou bien a
la position exacte du curseur.
Style de commentaire Une selection de formats de commentaires (notamment doxygen).
Codeblocks 33
Code::Blocks V1.1 2.6 Thread Search
pdf Le format Portable Document qui peut etre ouvert par des applications comme Ac-
robat Reader.
Note:
Letendue des extensions de fichiers a inclure dans la recherche est
preconfigure et peut avoir besoin detre ajuste.
2.6.1 Fonctionnalites
Lextension ThreadSearch offre les fonctionnalites suivantes :
Recherche dans les fichiers multi taches (Multi-threaded).
Editeur interne en lecture seule pour voir les resultats
Fichier ouvert dans lediteur de type notebook
Menu contextuel Rechercher les occurrences pour commencer une recherche dans
les fichiers a partir du mot situe sous le curseur
2.6.2 Utilisation
1. Configurez vos preferences de recherche (voir Figure 2.8 a la page 35)
Une fois lextension installee, il y a 4 facons de conduire une recherche :
a) Tapez/Selectionnez un mot dans la bote de recherche combinee et appuyez
sur Entree ou cliquez sur Rechercher dans le panneau de Thread search de la
console de messages.
Codeblocks 34
Code::Blocks V1.1 2.6 Thread Search
2.6.3 Configuration
Pour acceder au panneau de configuration de lextension ThreadSearch cliquez sur (voir
Figure 2.8 a la page 35) :
Codeblocks 35
Code::Blocks V1.1 2.6 Thread Search
1. Bouton des Options du panneau de Thread search dans la console des messages.
2. Bouton des Options dans la barre doutils de Thread search.
3. Menu Parametres/Environnement puis choisir lelement Thread search dans la colonne
de gauche.
Note:
Les points 1, 2 et 3 peuvent ne pas etre disponibles en fonction de la
configuration courante.
2.6.4 Options
Mot entier si coche, lignes contenant lexpression recherchee si lexpression recherchee
est trouvee sans caracteres alphanumeriques +_ avant et apres.
Debut de mot si coche, lignes contenant lexpression recherchee si lexpression recherchee
est trouvee au debut dun mot sans caracteres alphanumeriques +_ avant et apres.
Respecter la casse si coche, la recherche est sensible a la casse (majuscules-minuscules).
Expression reguliere lexpression recherchee est une expression reguliere.
Note:
Si vous voulez chercher des expressions regulieres comme \n vous
devrez choisir loption Utiliser des recherches RegEx avancees via
le menu Parametres Editeur Parametres generaux .
Codeblocks 36
Code::Blocks V1.1 2.6 Thread Search
Codeblocks 37
Code::Blocks V1.1 2.7 Extensions FileManager et PowerShell
Codeblocks 38
Code::Blocks V1.1 2.7 Extensions FileManager et PowerShell
Note:
Les fichiers/repertoires selectionnes dans lexplorateur de fichiers peu-
vent etre accedes dans lextension PowerShell a laide de la variable
mpaths.
Codeblocks 39
Code::Blocks V1.1 2.7 Extensions FileManager et PowerShell
Celle-ci et toutes les commandes suivantes creeront un sous-menu, dans ce cas Extensions
SVN Ajouter . Le menu de contexte est etendu de meme. Cliquez sur la commande
du menu de contexte pour faire executer la commande SVN add sur les fichiers/repertoires
selectionnes.
TortoiseSVN est un programme SVN tres repandu qui sintegre dans lexplorateur. Le
programme TortoiseProc.exe de TortoiseSVN peut etre demarre en ligne de commande
et affiche une bote de dialogue pour y entrer les donnees de lutilisateur. Ainsi vous pouvez
lancer des commandes, disponibles en tant que menus de contexte dans lexplorateur,
egalement en ligne de commande. Vous pouvez donc lintegrer en tant quextension du
Shell dans CodeBlocks. Par exemple, la commande
TortoiseProc.exe /command:diff /path:$file
Note:
Pour les fichiers qui sont sous le controle de SVN lexplorateur de
fichier affiche des icones superposees qui sactivent via le menu Vue
SVN Decorators .
Exemple
Vous pouvez utiliser lexplorateur de fichiers pour afficher les differences sur des fichiers
ou des repertoires. Suivez les etapes suivantes :
1. Ajoutez le nom via le menu Parametres Environnement PowerShell . Cest
affiche comme une entree par linterpreteur de menu et le menu de contexte.
2. Selectionnez le chemin absolu de lexecutable Diff (notamment kdiff3). Le pro-
gramme est accede avec la variable $interpreter .
3. Ajoutez les parametres de linterpreteur
Codeblocks 40
Code::Blocks V1.1 2.7 Extensions FileManager et PowerShell
Diff;$interpreter $mpaths;;;
Cette commande sera executee en utilisant les fichiers ou repertoires selectionnes en tant
que parametres. La selection peut etre accedee via la variable $mpaths. Ceci est une facon
commode de differentier des fichiers ou des repertoires.
Note:
Lextension supporte lutilisation des variables de CodeBlocks dans
lextension du Shell.
$interpreter Appelle cet executable.
$fname Nom du fichier sans son extension.
$fext Extension du fichier selectionne.
$file Nom du fichier.
$relfile Nom du fichier sans linformation de chemin.
$dir Nom du repertoire selectionne.
$reldir Nom du repertoire sans linformation de chemin.
$path Chemin absolu.
$relpath Chemin relatif du fichier ou du repertoire
$mpaths Liste des fichiers et repertoires selectionnes actuellement
$inputstr{<msg>} Chane de caracteres qui est entree dans une fenetre de message.
$parentdir Repertoire Parent (../).
Codeblocks 41
Code::Blocks V1.1 2.8 Browse Tracker
Note:
Les entrees de lextension Shell sont egalement disponibles en tant
que menus de contexte dans lediteur de CodeBlocks.
Note:
NdT : certains menus ou affichages ne sont pas traduits car lauteur de
lextension na pas marque certaines chanes comme etant traduisibles
Mark Style (Styles des marques) Les marques de navigation sont affichees par defaut
comme des . . . dans la marge. Avec le choix Book Marks elles seront affichees
en tant que marque par une fleche bleue dans la marge. Loption hide supprime
laffichage des marques.
Codeblocks 42
Code::Blocks V1.1 2.9 Support de SVN
Toggle Browse Mark key Les marques peuvent etre activees ou supprimees soit par un
simple clic avec le bouton gauche de la souris soit avec un clic-gauche tout en
maintenant la touche Ctrl enfoncee.
Toggle Delay Duree pendant laquelle le bouton gauche de la souris est enfonce pour
entrer dans le mode de marquage de navigation.
Clear All BrowseMarks (Effacer toutes les marques) tout en maintenant enfoncee la
touche Ctrl soit par simple clic soit par double clic sur le bouton gauche de la
souris.
La configuration de lextension est enregistree dans votre repertoire application data dans
le fichier default.conf. Si vous utilisez la fonctionnalite des profils (ou personnalite) de
CodeBlocks la configuration est alors lue dans votre fichier <personality>.conf.
Le support du systeme de controle de version SVN est inclus dans lextension CodeBlocks
TortoiseSVN. Via le menu TortoiseSVN Plugin settings vous pouvez configurer les
commandes svn accessibles dans longlet Integration .
Menu integration Ajoute une entree TortoiseSVN dans la barre de menu avec differents
parametrages.
Project manager Active les commandes TortoiseSVN du menu de contexte de la gestion
de projet.
Editor Active les commandes TortoiseSVN du menu de contexte de lediteur.
Dans la configuration de lextension vous pouvez choisir quelles sont les commandes svn
qui sont accessibles dans le menu principal ou le menu de contexte. Longlet integration
fournit une entree Edit main menu et Edit popup menu pour parametrer ces com-
mandes.
Note:
LExplorateur de fichiers dans CodeBlocks utilise differentes icones
superposees afin dindiquer letat de svn. Les commandes de Tortois-
eSVN sont incluses dans le menu de contexte.
2.10 LibFinder
Si vous voulez utilisez des librairies dans votre application, vous devez configurer votre
projet pour cela. Un tel processus de configuration peut etre difficile et ennuyeux car
chaque librairie peut utiliser un schema doptions particulier. Un autre probleme est que
Codeblocks 43
Code::Blocks V1.1 2.10 LibFinder
cette configuration differe entre les plates-formes ce qui resulte en des incompatibilites
entre des projets Unix et Windows.
LibFinder propose deux fonctionnalites majeures :
Recherche des librairies installees sur votre systeme
Inclure les librairies dans votre projet en seulement quelques clics en rendant le
projet independant de la plate-forme
Quand LibFinder est a la recherche de librairies, il utilise des regles speciales pour detecter
leur presence. Chaque ensemble de regle est situe dans un fichier xml. Actuellement
LibFinder peut rechercher wxWidgets 2.6/2.8, CodeBlocks SDK et GLFW la liste sera
etendue dans le futur.
Codeblocks 44
Code::Blocks V1.1 2.10 LibFinder
Note:
Pour obtenir davantage de details sur comment ajouter un support
de librairie dans LibFinder, lisez dans les sources de CodeBlocks
src/plugins/contrib/lib finder/lib finder/readme.txt.
Apres avoir termine lanalyse, LibFinder affiche les resultats (voir Figure 2.12 a la page 45).
Dans la liste, vous cochez les librairies qui doivent etre enregistrees dans la base de donnees
de LibFinder. Notez que chaque librairie peut avoir plus dune configuration valide et les
parametrages ajoutes en premier sont plutot destines a etre utilises lors de la generation
de projets.
Au-dessous de la liste, vous pouvez selectionner ce quil faut faire avec les resultats des
analyses precedentes :
Ne pas effacer les resultats precedents Cette option travaille comme une mise a jour
des resultats existants Cela ajoute les nouveaux et met a jour ceux qui existent
deja. Cette option nest pas recommandee.
Seconde option (Effacer les resultats precedents des librairies selectionnees) effacera
Codeblocks 45
Code::Blocks V1.1 2.10 LibFinder
tous les resultats des recherches precedentes des librairies selectionnees avant dajouter
les nouveaux resultats. Cest loption recommandee.
Effacer toutes les configurations precedentes des librairies quand vous selectionnez cette
option, la base de donnees de LibFinder sera effacee avant dy ajouter les nouveaux
resultats. Cest utile quand vous voulez nettoyer une base de donnees LibFinder
contenant des resultats invalides.
Une autre option de ce dialogue est Configurer les Variables Globales . Quand vous
cochez cette option, LibFinder essaiera de configurer des Variables Globales qui sont
aussi utilisees pour aider a traiter les librairies.
Si vous avez pkg-config dinstalle sur votre systeme (Cest installe automatiquement sur
la plupart des versions de systemes linux) LibFinder proposera des librairies venant de
cet outil. Il nest pas necessaire de faire une analyse specifique pour celles-ci elles seront
automatiquement chargees au demarrage de CodeBlocks.
Vous pouvez filtrer les librairies connues de LibFinder en fournissant un filtre de recherche.
La case a cocher Afficher comme un arbre permet de basculer antre des vues sans
categories et des vues avec categories.
Codeblocks 46
Code::Blocks V1.1 2.11 AutoVersioning
Si vous voulez ajouter une librairie qui nest pas disponible dans la base de donnees de
LibFinder, vous pouvez utiliser le champ Librairie inconnue . Notez que vous devriez
entrer le librarys shortcode (nom court, qui habituellement correspond au nom de
variable globale) ou le nom de librairie dans pkg-config. Vous trouverez une liste de noms
courts suggeres dans le Wiki de CodeBlocks dans Global Variables. Lusage de cette
option nest recommande que lorsquon prepare un projet qui doit etre genere sur dautres
machines ou ce type de librairie existe et y est correctement detectee par LibFinder. Vous
pouvez acceder a une variable globale dans CodeBlocks comme :
$(#GLOBAL_VAR_NAME.include)
2.11 AutoVersioning
Une application de suivi de versions qui incremente les numeros de version et de con-
struction de votre application a chaque fois quun changement est effectue et lenregistre
dans un fichier version.h avec des declarations de variables faciles a utiliser. Possede
egalement une option pour proposer des changements dans un style a la SVN, un editeur
de schemas de versions, un generateur de journal des changements, et bien dautres choses
encore . . .
2.11.1 Introduction
Lidee de developper lextension AutoVersioning est venue lors du developpement dun
logiciel en version pre-alpha qui exigeait des informations de version et detat. Trop oc-
cupe par le codage, sans temps disponible pour maintenir la numerotation des versions,
lauteur a decide de developper une extension qui puisse faire le travail avec aussi peu
dinterventions que possible.
Codeblocks 47
Code::Blocks V1.1 2.11 AutoVersioning
2.11.2 Fonctionnalites
Voici resumee la liste des fonctions couvertes par lextension :
Supporte C et C++.
Genere et incremente automatiquement des variables de versions.
Editeur de letat du logiciel.
Editeur de schema integre pour changer le comportement de lauto incrementation
des valeurs de versions.
Declaration des dates en mois, jour et annee.
Style de version Ubuntu.
Controle des revisions Svn.
Generateur de journal des changements.
Fonctionne sous Windows et Linux.
2.11.3 Utilisation
Aller simplement dans le menu Projet Autoversioning . Une fenetre popup comme
celle-ci apparatra :
Codeblocks 48
Code::Blocks V1.1 2.11 AutoVersioning
Ici vous entrez simplement les valeurs de version adequates ou laissez lextension Autover-
sioning le faire pour vous (see Figure 2.15 a la page 49).
Version Majeure Incremente de 1 quand le numero mineur atteint son maximum
Version mineure Incremente de 1 quand le numero de generation depasse la barriere
de nombre de generations, la valeur etant remise a 0 quand il atteint sa valeur
maximale.
Numero de generation (egalement equivalent a numero de Release) - Incremente de 1
chaque fois que le numero de revision est incremente.
Revision Incremente aleatoirement quand le projet a ete modifie puis compile.
2.11.4.2 Etat
Quelques champs pour garder une trace de letat de votre logiciel avec une liste de valeurs
predefinies usuelles (voir Figure 2.16 a la page 50).
Etat du logiciel Un exemple typique pourrait etre v1.0 Alpha
Abreviation Idem a letat du logiciel mais comme ceci : v1.0a
Codeblocks 49
Code::Blocks V1.1 2.11 AutoVersioning
2.11.4.3 Schema
Vous permet dediter comment lextension incrementera les valeurs de version (voir Fig-
ure 2.17 a la page 51).
Valeur max pour numero mineur Valeur maximale que peut atteindre la valeur mineure.
Une fois cette valeur atteinte, le numero Majeur est incremente de 1 et a la compi-
lation suivante le numero mineur sera remis a 0.
Nombre max de generations Quand cette valeur est atteinte, le compteur sera remis a
0 a la generation suivante. Mettre a 0 pour ne pas limiter.
Revision maximale Comme Nombre max de generations. Mettre a 0 pour ne pas limiter.
Revision aleatoire maximale Les revisions sincrementent par un nombre aleatoire que
vous decidez. Si vous mettez 1, les revisions sincrementeront evidemment par 1.
Nombre de generations avant dincrementer Mineur Apres des changements de code
et des compilations avec succes, lhistorique des generations sincremente, et quand
cette valeur est atteinte alors la valeur Mineure sincremente.
2.11.4.4 Parametres
Ici vous pouvez entrer certains parametres du comportement dAutoversioning (voir Fig-
ure 2.18 a la page 51).
Codeblocks 50
Code::Blocks V1.1 2.11 AutoVersioning
Codeblocks 51
Code::Blocks V1.1 2.11 AutoVersioning
Ceci vous permet dentrer chaque changement effectue au projet afin de generer un fichier
ChangesLog.txt (voir Figure 2.19 a la page 52).
Afficher les changements quand la version sincremente Affichera une fenetre popup
dedition de journal quand la version est incrementee.
Codeblocks 52
Code::Blocks V1.1 2.11 AutoVersioning
void main(){
std::cout<<AutoVersion::Major<<endl;
}
namespace AutoVersion{
//Software Status
static const char STATUS[] = "Pre-alpha";
static const char STATUS_SHORT[] = "pa";
}
#endif //VERSION_h
Codeblocks 53
Code::Blocks V1.1 2.11 AutoVersioning
//Software Status
static const char STATUS[] = "Pre-alpha";
static const char STATUS_SHORT[] = "pa";
#endif //VERSION_h
Codeblocks 54
Code::Blocks V1.1 2.11 AutoVersioning
Change log:
-Fixed: pointer declaration
-Bug: blah blah
02 September 2007
released version 0.7.32 of AutoVersioning-Linux
Codeblocks 55
Code::Blocks V1.1 2.12 Code statistics
Change log:
-Documented some areas of the code
-Reorganized the code for readability
01 September 2007
released version 0.7.30 of AutoVersioning-Linux
Change log:
-Edited the change log window
-If the change log windows is leave blank no changes.txt is modified
Basee sur les caracteristiques dun masque de configuration, cette simple extension detecte
les pourcentages de codes, commentaires et lignes blanches dun projet. Levaluation se
lance via la commande de menu Extensions Code statistics .
Codeblocks 56
Code::Blocks V1.1 2.15 Extension Symbol Table
Cliquer sur Rechercher demarre la recherche. Les resultats du programme NM sont alors
affiches dans une fenetre separee nommee SymTabs Result. Les noms des fichiers objets
et des librairies contenant les symboles sont listes avec comme titre Sortie de NM.
Codeblocks 57
3 Expansion de Variables
CodeBlocks fait la difference entre plusieurs types de variables. Ces types peuvent servir a
configurer lenvironnement de creation dun programme, mais aussi a accrotre la mainten-
abilite et la portabilite. Lacces aux variables de CodeBlocks sobtient grace a $<name>.
Variables dEnvironnement sont configurees au demarrage de CodeBlocks. Elles peuvent
modifier les variables denvironnement du systeme telles que PATH. Cela peut etre
utile dans les cas ou une variable denvironnement specifique est necessaire a la
creation de projets. La configuration des variables denvironnement dans CodeBlocks
se fait a laide de Parametres Environnement Variables denvironnement .
Variables internes sont predefinies dans CodeBlocks, et peuvent etre accedees via leurs
noms (voir les details dans section 3.2 a la page 59).
Macros Commandes Ce type de variables est utilise pour controler le processus de
generation. Pour de plus amples informations se referer a section 3.4 a la page 63.
Variables Utilisateur sont des variables definies par lutilisateur qui peuvent etre specifiees
dans les options de generation dun projet. Ici vous pouvez, par exemple definir votre
type de processeur comme une variable MCU et lui assigner une valeur correspon-
dante. Puis entrer dans les options de compilation -mcpu=$(MCU), et CodeBlocks
le remplacera automatiquement par le contenu. Par cette methode, la configuration
dun projet peut etre largement parametree.
Variables Globales sont surtout utilisees pour creer CodeBlocks a partir des sources ou
pour le developpement dapplications wxWidgets. Ces variables ont une signification
bien particuliere. Par rapport a toutes les autres, si vous configurez de telles vari-
ables et partagez votre fichier projet avec dautres qui eux nont *pas* configure ces
variables glogales (ou GV), CodeBlocks demandera a lutilisateur de les configurer.
Cest un moyen pratique de dassurer quun autre developpeur sait facilement ce
quil doit configurer. CodeBlocks posera la question pour tous les chemins usuelle-
ment necessaires.
3.1 Syntaxe
CodeBlocks traite de facon equivalente, en tant que variables, les sequences de caracteres
suivantes dans les etapes de pre-generation, post-generation ou generation :
$VARIABLE
$(VARIABLE)
${VARIABLE}
%VARIABLE%
Les noms de variables doivent etre composes de caracteres alphanumeriques et sont in-
sensibles a la casse (minuscules-majuscules). Les variables commencant par un seul signe
Code::Blocks V1.1 3.2 Liste des variables internes
diese (#) sont interpretees comme des variables utilisateur globales (voir les details dans
la section 3.7 a la page 64). Les noms listes ci-dessous sont interpretes comme des types
de variables internes.
Les variables qui ne sont ni de type utilisateur globales ni de type interne, seront rem-
placees par une valeur fournie dans le fichier projet, ou par une variable denvironnement
si ce dernier echoue.
Note:
Les definitions par-cible sont prioritaires par rapport aux definitions
par-projet.
Codeblocks 59
Code::Blocks V1.1 3.2 Liste des variables internes
$(ACTIVE_EDITOR_STEM)
Le nom de base (sans extension) du fichier actif courant.
$(ACTIVE_EDITOR_EXT)
Lextension du fichier actif courant.
$(ALL_PROJECT_FILES)
Une chane contenant les noms de tous les fichiers du projet courant.
$(MAKEFILE) Le nom de fichier du makefile.
$(CODEBLOCKS), $(APP_PATH), $(APPPATH), $(APP-PATH)
Le chemin de linstance courante de CodeBlocks en cours dexecution.
$(DATAPATH), $(DATA_PATH), $(DATA-PATH)
Le repertoire partage de linstance courante de CodeBlocks en cours
dexecution.
$(PLUGINS) Le repertoire des plugins (ou extensions) de linstance courante de
CodeBlocks en cours dexecution.
$(TARGET_COMPILER_DIR)
Le repertoire dinstallation du compilateur appele aussi chemin matre.
Codeblocks 60
Code::Blocks V1.1 3.2 Liste des variables internes
Levaluation Conditionnelle sera consideree comme vraie dans les cas suivants
la condition est un caractere non vide autre que 0 ou false
la condition est une variable non vide qui ne se resout pas en 0 ou false
Codeblocks 61
Code::Blocks V1.1 3.3 Expansion de script
la condition est une variable qui est evaluee a true (implicite par une condition
precedente)
Levaluation Conditionnelle sera consideree comme fausse dans les cas suivants
la condition est vide
la condition est 0 ou false
la condition est une variable qui est vide ou evaluee a 0 ou false
Note:
Notez SVP que les variantes de syntaxe de variable %if (...) ou
$( if )(...) ne sont pas supportees dans ce type de construction.
Exemple
Par exemple : vous utilisez plusieurs plateformes et vous voulez configurer differents
parametres en fonction du systeme dexploitation. Dans le code suivant, la commande
de script [[ ]] est evaluee et la <commande> sera executee. Ce peut etre utile dans une
etape de post-generation.
[[ if (PLATFORM == PLATFORM_MSW) { print (_T("cmd /c")); } else { print (_T("sh ")); }
Note:
La manipulation detats de CodeBlocks devrait etre implementee dans
des etapes de pre-generations plutot que dans un script.
Lexpression entre backticks (ou apostrophes inversees) retourne une liste de tous les
executables *.elf des sous-repertoires. Le resultat de cette expression peut etre utilise
directement par objdump. Au final, la sortie est redirigee vers un fichier nomme name.dis.
Codeblocks 62
Code::Blocks V1.1 3.4 Macros Commandes
Ainsi, des processus peuvent etre automatises simplement sans avoir recours a aucune
boucle.
Exemple utilisant un Script
Le texte du script est remplace par toute sortie generee par votre script, ou ignore en cas
derreur de syntaxe.
Comme levaluation conditionnelle est executee avant lexpansion de scripts, levaluation
conditionnelle peut etre utilisee pour les fonctionnalites de type pre-processeur. Les vari-
ables internes (et les variables utilisateur) sont etendues en sortie de scripts, aussi on peut
referencer des variables dans les sorties dun script.
[[ print(GetProjectManager().GetActiveProject().GetTitle()); ]]
Codeblocks 63
Code::Blocks V1.1 3.6 Edition de fichiers objets en executable
Codeblocks 64
Code::Blocks V1.1 3.10 Contraintes
3.10 Contraintes
Les noms de variables de configuration ou de compilateur ne peuvent pas etre vides,
ne peuvent pas contenir de caracteres blancs (ou espaces), doivent commencer par
une lettre et ne contenir que des caracteres alphanumeriques. Les lettres Cyrilliques
ou Chinoises ne sont pas des caracteres alphanumeriques. Si CodeBlocks rencontre
une sequence de caracteres non valides dans un nom, il peut la remplacer sans le
demander.
Toutes les variables necessitent que leur base soit definie. Tout le reste est optionnel,
mais la base est absolument obligatoire. Si vous ne definissez pas la base dune
variable, elle ne sera pas sauvegardee (et ce meme si les autres champs ont ete
definis).
Vous ne pouvez pas definir un nom de membre utilisateur qui a le meme nom quun
membre predefini. Actuellement, le membre utilisateur ecrasera le membre predefini,
mais en general, le comportement est indefini dans ce cas.
Les valeurs des variables et des membres peuvent contenir un nombre arbitraire de
sequences de caracteres, mais doivent respecter les contraintes suivantes :
Vous ne pouvez pas definir une variable par une valeur qui se reference a la
meme variable ou a nimporte lequel de ses membres
Vous ne pouvez pas definir un membre par une valeur qui se reference a ce
meme membre
Vous ne pouvez pas definir un membre ou une variable par une valeur qui se
reference a la meme variable ou membre par une dependance cyclique.
Codeblocks 65
Code::Blocks V1.1 3.11 Utilisation des Variables Globales du Compilateur
CodeBlocks detectera les cas de definitions recursives les plus evidentes (ce qui peut arriver
par accident), mais il ne fera pas danalyse en profondeur de tous les cas possibles abusifs.
Si vous entrez nimporte quoi, alors vous obtiendrez nimporte quoi; vous etes avertis
maintenant.
Exemples
Definir wx.include comme $(#wx)/include est redondant, mais parfaitement legal.
Definir wx.include comme $(#wx.include) est illegal et sera detecte par CodeBlocks.
Definir wx.include comme $(#cb.lib) qui est lui meme defini comme $(#wx.include) creera
une boucle infinie.
Limage ci-contre montre a la fois les variables par-projet et globales. WX_SUFFIX est
defini dans le projet, mais WX est une variable utilisateur globale.
Codeblocks 66
Code::Blocks V1.1 3.12 Ensembles de Variables
Codeblocks 67
4 Generer CodeBlocks a partir des Sources
4.1 Introduction
Cet article decrit le processus de creation des nightly builds (generations nocturnes !),
et peut etre utilise comme un guide si vous voulez generer CodeBlocks vous-meme. La
description suivante est une sequence dactions.
Afin de proceder a notre tache de generation, nous aurons besoin de plusieurs outils.
Creons dabord une liste dingredients pour notre recette de cuisine.
un compilateur
un systeme de generation initial (une version precedente deja fonctionnelle)
les sources de CodeBlocks
un programme zip
svn (systeme de controle de versions)
wxWidgets
4.1.1 WIN32
Comme les developpeurs de CodeBlocks generent CodeBlocks en utilisant GCC, nous
ferons de meme sous Windows. Le portage le plus facile et le plus propre est MinGW.
Cest le compilateur distribue avec CodeBlocks quand vous telechargez le package officiel.
Ici, on sen tiendra a la version 3.4.5, qui fonctionne bien.
Dabord, une breve explication des composants de MinGW :
gcc-core le coeur de la suite GCC
gcc-g++ le compilateur c++
mingw Runtime limplementation des librairies run time
mingw utils plusieurs utilitaires (implementation de petits programmes que GCC utilise
lui-meme)
win32Api lAPI (Interface de Programmation dApplication) pour creer des programmes
Windows
binutils plusieurs utilitaires utilises dans lenvironnement de generation
make le programme make de Gnu, ainsi vous pouvez generer a partir de fichiers make
GDB le debogueur Gnu
Code::Blocks V1.1 4.1 Introduction
Je vous suggere dextraire (et dinstaller pour GDB) le tout dans un repertoire C:\MinGW.
Le reste de cet article supposera que cest la que vous lavez mis. Si vous avez deja une
installation de CodeBlocks qui a ete fournie avec MinGW, je vous recommande malgre tout
dinstaller MinGW comme decrit ici. Un compilateur na pas a etre dans larborescence
dun Environnement de Developpement Integre (IDE); ce sont deux choses bien distinctes.
CodeBlocks le fournit avec les versions officielles afin que lutilisateur standard nait pas
a se preoccuper de ce genre de choses.
Vous pouvez avoir besoin dajouter le repertoire bin de votre installation MinGW a votre
variable path. Un moyen simple de faire cela est dentrer la commande suivante dans une
fenetre DOS :
set path=%PATH%;C:\MinGW\bin;C:\MinGW\mingw32\bin;
Codeblocks 69
Code::Blocks V1.1 4.1 Introduction
4.1.4 wxWidgets
[,Wxwidgets] est une abstraction de plateforme qui fourni une API supportant de nom-
breuses choses comme une Interface Graphique Utilisateur (GUI), des sockets, fichiers,
fonctionnalites de registres. En utilisant cette API, vous pouvez creer des programmes
independants des plateformes.
CodeBlocks est une application wxWidgets (soit apres : wx), ce qui signifie que pour
executer CodeBlocks vous avez besoin des fonctionnalites wx. Cela peut se faire de deux
facons. Soit par une .dll soit par une librairie statique. CodeBlocks utilise wx en tant
que dll et cette dll peut aussi se telecharger depuis la section nightly builds du forum.
Neanmoins, si nous voulons generer une application wx, nous devons inclure les headers
(ou en-tetes) des sources wx. Elles donnent au compilateur les informations sur les fonc-
tionnalites de wx. En plus de ces fichiers de headers, notre application a besoin detre liee
aux librairies dimportation wx. Bien, voyons cela pas a pas.
Wx est fourni sous forme de fichiers sources dans un fichier zip, aussi, nous devons le
generer par nous-memes. Nous avons deja le compilateur MinGW, donc nous avons tous
les outils necessaires sous la main.
Dezippez maintenant les sources wx dans C:\Projets et ainsi nous aurons au final un
repertoire wx de base comme celui-ci : C:\Projets\wxWidgets-2.8.9. Ensuite, dezippez
les patchs (sil y en a !) dans le meme sous repertoire afin de remplacer les fichiers modifies.
Notez que nous allons referencer le repertoire wx de base a partir de maintenant comme
<wxDir>
Maintenant, nous allons generer les wxWidgets. Voici comment faire :
Premierement, assurez-vous que C:\MingGW\bin est dans votre variable path, car durant
la generation quelques programmes residant dans le repertoire MinGW\bin seront appeles.
De plus, Make doit etre en version 3.80 ou superieure.
Il est temps maintenant de compiler les wxWidgets. Ouvrir une fenetre de commande
DOS et se placer dans le repertoire des wxWidgets :
Codeblocks 70
Code::Blocks V1.1 4.1 Introduction
cd <wxDir>\build\msw
Nous sommes maintenant au bon endroit. Nous allons dabord nettoyer les sources :
mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 clean
Maintenant que tout est propre, nous pouvons compiler les wxWidgets :
mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1
Compiler par
mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=debug UNICODE=1
4.1.5 Zip
Durant la generation de CodeBlocks, plusieurs ressources seront compressees dans des
fichiers zip. Aussi, le processus de generation doit pouvoir acceder a un zip.exe. Nous
devons telecharger ce zip.exe et le mettre quelque part dans notre path. MingW\bin est
un bon endroit pour cela.
Vous pouvez depuis ce site (http://www.info-zip.org/pub/infozip/Zip.html) telecharger
zip.exe gratuitement et ceci (http://switch.dl.sourceforge.net/sourceforge/infozip/zip232.zip)
est un lien direct(32bit) vers la plus recente version au moment de la redaction de cet
article.
Une fois telecharge, extraire simplement zip.exe vers lendroit approprie.
Codeblocks 71
Code::Blocks V1.1 4.1 Introduction
4.1.7 WIN32
Maintenant, ouvrez le projet CodeBlocks.cbp dans CodeBlocks. Generez CodeBlocks en
lancant le processus de generation. Apres la creation de CodeBlocks, les fichiers generes
avec les informations de debogage se trouvent dans le sous-repertoire devel. En appelant
le fichier batch update.bat depuis le repertoire source, les fichiers sont copies dans le
sous-repertoire output et les informations de debogage sont retirees.
4.1.8 LINUX
Quand on genere sous Linux, les etapes suivantes sont necessaires. Dans cet exemple nous
supposons que vous etes dans le repertoire source de CodeBlocks. Sous Linux, la variable
denvironnement PKG_CONFIG_PATH doit etre configuree. Le repertoire <prefix> doit
contenir le fichier codeblocks.pc. (NdT : Cette section ne semble pas a jour avec les
dernieres versions)
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:<prefix>
sh update_revsion.sh
./bootstrap
./configure --with-contrib=[all | noms des plugins separes par des virgules]
--prefix=<install-dir>
make
make install (root)
Variable wx
Pour la variable wx, entrer dans base le repertoire source de wx (par ex.
C:\Programme\wxWidgets-2.8.9
Dans le projet CodeBlocks, la variable projet WX_SUFFIX est configuree a u. Cela sig-
nifie que pendant la generation de CodeBlocks ledition de liens se fera avec la librairie
*u gcc custom.dll. Les generations officielles des nightly de CodeBlocks seront liees avec
gcc cb.dll. Pour ce faire, il faut faire comme suit.
gcc_<VENDOR>.dll
Codeblocks 72
Code::Blocks V1.1 4.1 Introduction
4.1.10 Linux
Configurez la variable wx a laide des variables globales.
base /usr
include /usr/include/wx-2.8
lib /usr/lib
deboguer CodeBlocks. Demarrez CodeBlocks dans le repertoire output et chargez CodeBlocks.cbp
en tant que projet. Entrer le point darret et demarrer par Debug and Run (f8).
Mais, creons un espace de travail contenant lensemble. Placons cet espace de travail dans
le repertoire matre <cbDir> (NdT : la ou il y a deja CodeBlocks.cbp et ContribPlug-
ins.workspace). Utiliser simplement un editeur de texte normal et creer un fichier dont le
nom est CbProjects.workspace puis le remplir avec le contenu suivant (NdT : le fichier
ci-dessous est different de la version originale anglaise, car mis a jour au moment de la
traduction. En fait, il sagit tout simplement du fichier ContribPlugins.workspace auquel
on a change le titre du Workspace (3eme ligne), ajoute une ligne, la 4eme, pour generer
en tout premier le projet CodeBlocks.cbp et deplace loption active=1) :
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_workspace_file>
<Workspace title="Workspace">
<Project filename="CodeBlocks.cbp" active="1" />
<Project filename="plugins\contrib\AutoVersioning\AutoVersioning.cbp" />
<Project filename="plugins\contrib\BrowseTracker\BrowseTracker.cbp" />
<Project filename="plugins\contrib\Cccc\Cccc.cbp" />
<Project filename="plugins\contrib\CppCheck\CppCheck.cbp" />
<Project filename="plugins\contrib\codesnippets\codesnippets.cbp" />
<Project filename="plugins\contrib\codestat\codestat.cbp" />
<Project filename="plugins\contrib\copystrings\copystrings.cbp" />
<Project filename="plugins\contrib\Cscope\Cscope.cbp" />
<Project filename="plugins\contrib\devpak_plugin\DevPakPlugin.cbp" />
<Project filename="plugins\contrib\DoxyBlocks\DoxyBlocks.cbp" />
<Project filename="plugins\contrib\dragscroll\dragscroll.cbp" />
<Project filename="plugins\contrib\EditorTweaks\EditorTweaks.cbp" />
<Project filename="plugins\contrib\envvars\envvars.cbp" />
Codeblocks 73
Code::Blocks V1.1 4.1 Introduction
Codeblocks 74
Code::Blocks V1.1 4.1 Introduction
Codeblocks 75
URL catalog
[,7Z] 7z zip homepage.
http://www.7-zip.org