<chapter id="adv-build-management">
<title
>Gestion avancée de la construction</title>
<indexterm zone="adv-build-management"
><primary
>&automake;</primary
></indexterm>

<sect1 id="buildconfigurations">
<title
>Configurations de construction multiples</title>
<indexterm zone="buildconfigurations"
><primary
>configurations de construction</primary
><secondary
>multiple</secondary
></indexterm>

<para
>(... à écrire ...) </para>

</sect1
> <!-- buildconfigurations -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="crosscompiling">
<title
>Compilation croisée</title>
<indexterm zone="crosscompiling"
><primary
>compilation croisée</primary
></indexterm>
<indexterm zone="crosscompiling"
><primary
>compilation</primary
><secondary
>croisée</secondary
></indexterm>
<indexterm zone="crosscompiling"
><primary
><option
>--host</option
></primary
></indexterm>

<para
>Quand vous disposez de compilateurs croisés appropriés, vous pouvez « cross-compiler » vos programmes pour des processeurs et des systèmes d'exploitation différents du système dans lequel fonctionnent &kdevelop; et le compilateur. La collection &gcc; des compilateurs de &GNU; peut être configurée et compilée comme un compilateur croisé si vous la compilez vous-même. Consultez les <ulink url="info://gcc/Cross-Compiler"
>pages info de GCC</ulink
> pour plus d'informations. Certaines distributions &Linux; fournissent également des paquetages de binaires. </para>

<para
>Un paquetage basé sur <application
>automake</application
> peut être facilement cross-compilé en spécifiant l'option <option
>--host</option
> au script « configure » et en positionnant les variables d'environnement <envar
>CC</envar
> et <envar
>CXX</envar
> sur les binaires du compilateur croisé correspondant. Souvent, vous êtes amené à commuter entre une version cross-compilée de votre application et une qui est compilée pour votre système de développement. Pour cela, il est avantageux d'employer la fonction de &kdevelop; de créer des configurations de construction multiples, comme décrit dans <xref linkend="buildconfigurations"/>. Une fois que vous avez créé une nouvelle configuration de construction pour la compilation croisée dans la boîte de dialogue <menuchoice
><guimenu
>Projet</guimenu
><guimenuitem
>Options du projet</guimenuitem
></menuchoice
>, ajoutez l'option </para>

<screen
><option
>--host=</option
><replaceable
>plate-forme</replaceable
></screen>

<para
>aux options de « configure ». Le nom <replaceable
>plate-forme</replaceable
> est un tuple de la forme </para>

<programlisting
>cpu-vendor-os</programlisting>
<para
>ou</para>
<programlisting
>cpu-vendor-kernel-os</programlisting>

<para
>Pour de nombreuses combinaisons, vous pouvez utiliser une forme abrégée, par exemple <wordasword
>i386-linux</wordasword
> ou <wordasword
>arm-elf</wordasword
>. </para>

</sect1
> <!-- crosscompiling -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="qtembedded">
<title
>Qt embarqué</title>
<indexterm zone="qtembedded"
><primary
>embarqué</primary
><secondary
>Qt</secondary
></indexterm>
<indexterm zone="qtembedded"
><primary
>Qt embarqué</primary
></indexterm>
<indexterm zone="qtembedded"
><primary
>Qtopia</primary
></indexterm>
<indexterm zone="qtembedded"
><primary
>tampon de trame</primary
></indexterm>

<para
>&qte; est une version de la bibliothèque &Qt; qui n'utilise pas le système X window mais dessine directement dans le tampon de trame sur les systèmes &Linux;. Il est donc intéressant pour les systèmes embarqués qui ont des restrictions contraignantes sur l'usage de la mémoire de tout le système. Son &API; est entièrement compatible avec celle de la version X11. </para>

<para
>Le développement d'une application pour &qte; avec &kdevelop; n'est pas très différent du développement d'un programme pour la version X11 de &Qt;. En fait, vous pouvez employer la même base de code (<foreignphrase
>codebase</foreignphrase
>) pour des deux versions. Si vous faites appel à la gestion de projet autoproject, vous basculez vers la version embarquée en passant l'argument <option
>--enable-embedded</option
> au script « configure ». Vous pouvez régler ce paramètre dans la boîte de dialogue <menuchoice
><guimenu
>Projet</guimenu
> <guimenuitem
>Options du projet</guimenuitem
></menuchoice
> sous <guilabel
>Options de « configure »</guilabel
>. Avec l'option <option
>--with-qt-dir=DIR</option
>, vous définissez le dossier dans lequel &qte; est installé. </para>

<para
>Après avoir configuré et compilé votre application avec ces options, elle se lie avec la bibliothèque <filename
>libqpe.so</filename
>. Cette version de votre application ne tournera normalement pas quand vous utiliserez X11. Pour pouvoir le tester, lancez-la sous le contrôle du programme <application
>qvfb</application
> (&Qt; Virtual Frame Buffer). Pour ce faire, démarrez <application
>qvfb</application
> puis votre application avec </para>

<screen
><command
>app <option
>-qws</option
> <option
>-display QVFb:0</option
></command
></screen>

<para
>Naturellement, quand vous aurez une version opérationnelle de votre application, vous serez amené à l'utiliser sur le processeur cible. Pour cela, il sera certainement pratique de créer des configurations de construction multiples, comme expliqué plus haut, de façon à pouvoir passer rapidement de la version tournant sur votre système de développement à la version active sur le système cible. </para>

<para
>Les applications pour &qte; s'exécutent en tant qu'applications uniques sur le périphérique pour lequel elles sont conçues. Trolltech prend également en charge Qtopia, qui est une collection d'applications pour le gestionnaire d'informations personnelles (<acronym
>PIM</acronym
>), la navigation web et diverses autres domaines qui fonctionnent de concert de manière cohérente. C'est l'environnement standard par exemple sur le Sharp Zaurus. Vous pouvez écrire des applications qui s'intègrent dans cet environnement en utilisant le SDK Qtopia. Cela implique de faire de votre classe d'application une sous-classe de <classname
>QPEApplication</classname
> et de la lier à la bibliothèque <filename
>libqpe.so</filename
>. Si vous développez votre application avec la gestion de projet autoproject, vous devez ajouter <option
>--enable-qtopia</option
> aux options de « configure ». </para>

</sect1
> <!-- qtembedded -->

</chapter
> <!-- adv-build-management -->
