Difference between revisions of "Conditional Compiler Options/fr"

From Free Pascal wiki
Jump to navigationJump to search
m
 
(2 intermediate revisions by the same user not shown)
Line 7: Line 7:
 
Pour les définitions conditionnelles, voir ici [[Macros_and_Conditionals/fr|Macros et définitions conditionnelles]].
 
Pour les définitions conditionnelles, voir ici [[Macros_and_Conditionals/fr|Macros et définitions conditionnelles]].
  
* * *  A  F I N I R * * *
+
Vous pouvez définir les macros de construction d'un paquet via [[IDE_Window:_Compiler_Options#Build_Macros|package editor / Compiler Options / Build Macros]].
  
You can set the build macros for a package via [[IDE_Window:_Compiler_Options#Build_Macros|package editor / Compiler Options / Build Macros]].
+
Vous pouvez définir les macros de construction d'un projet via [[IDE_Window:_Compiler_Options#Build_Macros|Project / Project Options / Compiler Options / Build Macros]].
  
You can set the build macros for a project via [[IDE_Window:_Compiler_Options#Build_Macros|Project / Project Options / Compiler Options / Build Macros]].
+
=Unités à cible spécifique - Réalisable avec des directives FPC, pas d'extra Lazarus demandé=
  
=Target specific units - Doable via FPC directives, no Lazarus extras needed=
+
Situation concrète : le paquet d'extensions LCL a une unité (OleUtils) qui implémente TOLEStream. Il n'a de sens que dans Windows.
 
+
Actuellement l'unité est ajoutée dans tous les jeux de widgets mais tout le code est enveloppé dans une définition $IFDEF WINDOWS ainsi il est vu comme une unité factice dans les autres jeux de widgets.
Concrete situation: LCL extensions package has a unit (OleUtils) that
 
implements TOLEStream. It only makes sense in Windows. Currently the unit
 
is added in all widgetsets but all code is wrapped around a ifdef
 
Windows define so is seen as a dummy unit in other widgetsets.
 
  
 
Notes:  
 
Notes:  
*All units should be added to the package, independent if they are used. If a unit should not always be compiled (not added to the uses section of the package), just unset the 'uses unit' checkbox and add for example {$IFDEF win32}uses oleutils{$ENDIF} to a package unit.
+
*Toutes les unités devraient être ajoutées au paquet qu'elles soient utilisées ou non. Si une unité ne doit pas toujours être compilée (pas ajoutée dans la section uses du paquet), décochez l'option 'uses unit' et ajoutez par exemple {$IFDEF win32}uses oleutils{$ENDIF} dans une unité du paquet.
*You can put units and include files specific to targets into sub directories as demonstrated in the Lazarus and FPC sources (units/$(TargetOS)).
+
*Vous pouvez mettre des unités ou des fichiers d'inclusion spécifiques à des cibles dans des sous-dossier comme montré dans les sources de Lazarus et FPC (units/$(TargetOS)).
*Since 0.9.31 multiple files with the same name can be added to packages.
+
*Depuis la version 0.9.31, les fichiers multiples portant le même nom peuvent ajoutés dans des paquets.
  
 
=Ce qui ne sera pas implémenté=
 
=Ce qui ne sera pas implémenté=
Line 29: Line 25:
 
*Unités conditionnelles. Cela est déjà faisable via les directives FPC et les macros de l'EDI.
 
*Unités conditionnelles. Cela est déjà faisable via les directives FPC et les macros de l'EDI.
  
=Développement futurs / Souhait=
+
=Développements futurs / Souhait=
 
*Utiliser un paquet uniquement sous une cible, p.ex. seulement sous Windows et OS X mais pas sous Linux ou BSD.
 
*Utiliser un paquet uniquement sous une cible, p.ex. seulement sous Windows et OS X mais pas sous Linux ou BSD.
  
 
{{Template:Directives, Defines and Conditionals/fr}}
 
{{Template:Directives, Defines and Conditionals/fr}}

Latest revision as of 00:04, 17 February 2017

English (en) français (fr)

Généralités

Depuis Lazarus 0.9.29 vous pouvez définir le mode de construction et les options conditionnelles de compilation. Ces options dépendent du système d'exploitation, du processeur, du jeu de widget cibles actuels et du mode de construction du projet.

Pour les définitions conditionnelles, voir ici Macros et définitions conditionnelles.

Vous pouvez définir les macros de construction d'un paquet via package editor / Compiler Options / Build Macros.

Vous pouvez définir les macros de construction d'un projet via Project / Project Options / Compiler Options / Build Macros.

Unités à cible spécifique - Réalisable avec des directives FPC, pas d'extra Lazarus demandé

Situation concrète : le paquet d'extensions LCL a une unité (OleUtils) qui implémente TOLEStream. Il n'a de sens que dans Windows. Actuellement l'unité est ajoutée dans tous les jeux de widgets mais tout le code est enveloppé dans une définition $IFDEF WINDOWS ainsi il est vu comme une unité factice dans les autres jeux de widgets.

Notes:

  • Toutes les unités devraient être ajoutées au paquet qu'elles soient utilisées ou non. Si une unité ne doit pas toujours être compilée (pas ajoutée dans la section uses du paquet), décochez l'option 'uses unit' et ajoutez par exemple {$IFDEF win32}uses oleutils{$ENDIF} dans une unité du paquet.
  • Vous pouvez mettre des unités ou des fichiers d'inclusion spécifiques à des cibles dans des sous-dossier comme montré dans les sources de Lazarus et FPC (units/$(TargetOS)).
  • Depuis la version 0.9.31, les fichiers multiples portant le même nom peuvent ajoutés dans des paquets.

Ce qui ne sera pas implémenté

  • Un mode de construction Debug/Verbeux global. Presque personne ne veut augmenter la verbosité de tous les paquets, ni déboguer tous les paquets. Mais vous pouvez en définir un pour vos propres paquets.
  • Unités conditionnelles. Cela est déjà faisable via les directives FPC et les macros de l'EDI.

Développements futurs / Souhait

  • Utiliser un paquet uniquement sous une cible, p.ex. seulement sous Windows et OS X mais pas sous Linux ou BSD.
Directives, Définitions et conditionnelles:
Conditionnelle de compilation | Options conditionnelles du compilateur | Directives globales du compilateur | Directives locales du compilateur | $IF | Macros et conditionnelles | Définitions pour les plateformes