source: trunk/www/fr/variants.php @ 1668

Last change on this file since 1668 was 1636, checked in by matt, 17 years ago

2 occurences changed

  • Property svn:eol-style set to native
File size: 5.7 KB
Line 
1<?
2
3//
4// File     : variants.php
5// Version  : $Id: variants.php,v 1.2 2003/01/12 00:25:32 matt Exp $
6// Location : /projects/darwinports/variants.php
7//
8
9        include_once("$DOCUMENT_ROOT/includes/od_lib.inc.php");
10        od_print_header("Variantes des Portfile DarwinPorts", "fr", "iso-8859-1", "", 0);
11?>
12
13<h2>
14Variantes
15</h2>
16<pre><tt>
17Kevin Van Vechten | <a href="mailto:kevin@opendarwin.org">kevin@opendarwin.org</a>
189-Oct-2002
19</tt></pre>
20<a name="basictoc"></a><h4>Variantes</h4>
21<ul>
22<li><a href="#what_are_they">Qu'est-ce que les variantes ?</a></li>
23<li><a href="#additive_variants">Les variantes peuvent s'additionner</a></li>
24<li><a href="#ordering_variants">Agencer l'ordre des variantes</a></li>
25<!-- <li><a href="#conflicting_variants">Conflicting Variants</a></li> -->
26<li><a href="#default_variants">Variantes par défaut</a></li>
27<li><a href="#implicit_variants">Variantes implicites</a></li>
28</ul>
29<h3>
30<a name="what_are_they"></a>Qu'est-ce que les variantes ?
31</h3>
32<p>
33Beaucoup de logiciels ont des fonctionnalités optionnelles qui ont besoin d'être définies au moment de la compilation. Ces logiciels sont soit compilés avec ou sans le support de certaines fonctions. Un des exemples les plus flagrant est de compiler un logiciel avec ou sans le support d'X11.
34</p>
35<p>
36Les variantes furent créer pour pallier à ce besoin d'avoir ou non ces fonctionnalités supplémentaires. Souvent, compiler avec ou sans le support d'X11 est juste l'affaire de spécifier <tt>--with-x11</tt> ou <tt>--without-11</tt> dans la variable <tt>configure.args</tt>. En gros, une variante est l'équivalent de la déclaration <tt>if</tt> en Tcl. Donc si la variante a été spécifiée par l'utilisateur, le bloc de code est exécuté. Voici un exemple d'une variante pour X11 :
37</p>
38<pre><tt>
39configure.args --without-x11
40
41variant x11 {
42    configure.args-delete --without-x11
43    configure.args-append --with-x11
44}
45</tt></pre>
46<p>
47Normalement, le code se situant en dehors du bloc dédié à la variante est exécuté sans réserve avant que toute variante soit prise en compte. Cepdendant, si <tt>+x11</tt> a été spécifiée, les déclarations <tt>configure.args-delete</tt> et <tt>configure.args-append</tt> seront également prises en compte.
48</p>
49<h3>
50<a name="additive_variants"></a>Les variantes peuvent s'additionner
51</h3>
52<p>
53Si deux variantes sont définies, par exemple <tt>x11</tt> et <tt>kde</tt>, une des deux ou carrément les deux peuvent être choisies et utilisées par l'utilisateur. Spécifier <tt>+x11</tt> aura pour effet de prendre en compte la variante <tt>x11</tt>, et spécifier <tt>+kde</tt> aura pour effet la prise en compte de la variante <tt>kde</tt>. Si <tt>+x11 +kde</tt> est spécifiée, les deux variantes seront prises en compte. Il est également possible de définir des variantes contenant plusieurs termes. Par exemple :
54</p>
55<pre><tt>
56variant x11 kde {
57    # do something here, when both x11 and kde are selected
58}
59</tt></pre>
60<p>
61Dans cet exemple, la variante <tt>x11-kde</tt> sera exécutée uniquement si <tt>x11</tt> et <tt>+kde</tt> sont spécifiées. Cela permet aux conflits entre deux variantes "primitives" d'être résolues sans beaucoup d'efforts. Aussi, parce que ces variantes combinées sont le plus souvent utilisées pour résoudre des conflits, elles sont prises en compte après que chaque parties constituantes aient été prises en compte.
62</p>
63<h3>
64<a name="ordering_variants"></a>Agencer l'ordre des variantes
65</h3>
66<p>
67Parfois il est utile de garantir qu'une variante soit lancée après une autre variante. Cela peut rendre la manipulation des variables plus franche, plus souple, valable également pour d'autres opérations. L'agencement peut se faire grâce au mot-clé <tt>follows</tt>. (<b><i>Important :</i></b> le mot-clé <tt>follows</tt> n'a pas encore été implémenté.) Dans l'exemple suivant, la variante <tt>kde</tt> déclare que même si <tt>+kde</tt> et <tt>+x11</tt> sont spécifiées, la variante <tt>kde</tt> sera toujours prise en compte après la variante <tt>x11</tt>. La variante <tt>kde</tt> restera prise en compte même si seulement <tt>+kde</tt> est spécifiée.
68<pre><tt>
69variant kde follows x11 {
70    # do something here, after x11
71}
72</tt></pre>
73<p>
74D'un autre côté, il est possible d'autoriser <tt>kde</tt> a être une variante si et uniquement si <tt>x11</tt> a également été sélectionnée. Cela peut être fait en utilisant le mot-clé <tt>requires</tt>, utilisé de la manière suivante :
75</p>
76<pre><tt>
77variant kde requires x11 {
78    # do something here, only after x11
79}
80</tt></pre>
81<!--
82<h3>
83<a name="conflicting_variants"></a>Conflicting Variants
84</h3>
85<p>
86</p>
87-->
88<h3>
89<a name="default_variants"></a>Variantes par défaut
90</h3>
91<p>
92Un Portfile peut contenir un set par défaut de variantes, qui sera sélectionné lors de la prise en charge du Portfile, à moins que l'utilisateur ne les ait explicitement refusés. Cela peut être fait en utilisant la commande <tt>default_variants</tt> dans le Portfile, comme ci-dessous :
93</p>
94<pre><tt>
95default_variants    +x11 +kde
96</tt></pre>
97<p>
98Cela indique que les variantes <tt>x11</tt> et <tt>kde</tt> seront prises en compte à moins que l'utilisateur n'ait spécifié <tt>-kde -x11</tt> à la ligne de commande.
99</p>
100<h3>
101<a name="implicit_variants"></a>Variantes implicites
102</h3>
103<p>
104Quelques variantes sont implicitement spécifiées par le système. Comme les variantes par défaut, celles-ci peuvent être annulées à la ligne de commande. Actuellement la plateforme et l'architecture sont deux variantes implicites. Les variantes du même nom que les valeurs de <tt>os.platform</tt> et <tt>os.arch</tt> sont sélectionnées. <tt>os.platform</tt> contient la valeur d'<tt>uname -s</tt> comme <tt>darwin</tt> ou <tt>freebsd</tt>. <tt>os.arch</tt> contient la valeur d'<tt>uname -p</tt> comme <tt>ppc</tt> ou <tt>i386</tt>.
105</p>
106
107<?
108        od_print_footer("fr");
109?>
Note: See TracBrowser for help on using the repository browser.