<chapter id="features">
<title
>Funzionalità dello script</title>

<sect1 id="features-overview">
<title
>Panoramica delle funzionalità</title>

<para
>Le funzionalità di &kdesrc-build; includono: </para>

<itemizedlist>

<listitem
><para
>Puoi <quote
>far finta</quote
> di fare le operazioni. Se passi le opzioni <option
>--pretend</option
> o <option
>-p</option
> sulla riga di comando, lo script darà una descrizione dettagliata dei comandi che sta per eseguire, senza però eseguirli. Però, se non hai mai eseguito &kdesrc-build;, potresti dover usare prima il comando <command
>kdesrc-build <option
><link linkend="cmdline-metadata-only"
>--metadata-only</link
></option
></command
> in modo che <option
>--pretend</option
> funzioni. <tip
><para
>Per una descrizione ancora più prolissa di cosa sta facendo &kdesrc-build;, prova ad usare l'opzione <option
>--debug</option
>. </para
></tip>

</para
></listitem>

<listitem
><para
>&kdesrc-build; ti permette di ritirare i moduli rapidamente. Se il modulo che stai ritirando è già stato ritirato altre volte, &kdesrc-build; ne scaricherà una copia e la preparerà per l'uso sul tuo computer. </para>

<tip
><para
>In generale non c'è bisogno di alcun preparativo speciale per effettuare il ritiro iniziale di un modulo di &git;, visto che viene comunque scaricato tutto il deposito di &git;, quindi è facile per il server decidere cosa inviare.</para
></tip>

<para
>Ciò è più veloce per te, e aiuta a ridurre il carico sui server &git; anonimi di kde.org.</para>
</listitem>

<listitem
><para
>Un altro modo di fare più velocemente è avviare il processo di generazione di un modulo non appena il codice sorgente di quel modulo è stato scaricato (disponibile dalla versione 1.6). </para
></listitem>

<listitem
><para
>Supporto eccellente per la generazione delle librerie &Qt; (nel caso che i programmi di &kde; che stai generando dipendano su una versione recente delle &Qt;, non disponibile nella tua distribuzione). </para
></listitem>

<listitem
><para
>&kdesrc-build; non richiede un'interfaccia grafica per funzionare. Quindi, puoi generare software &kde; senza bisogno di un ambiente grafico. </para
></listitem>

<listitem
><para
>Supporta l'impostazione di opzioni predefinite per tutti i moduli (come le impostazioni di compilazione o le opzioni di configurazione). Queste opzioni possono anche essere cambiate per dei moduli specifici.</para>

<para
>Inoltre, &kdesrc-build; <link linkend="kdesrc-build-std-flags"
>aggiungerà dei flag standard</link
> appropriati per risparmiarti la fatica e i possibili errori derivanti dallo scriverli da te. NB: questo non si applica quando una toolchain (personalizzata) è configurata, per es., mediante: <link linkend="conf-cmake-toolchain"
>cmake-toolchain</link
> </para
></listitem>

<listitem
><para
>&kdesrc-build; può ritirare un <link linkend="using-branches"
>tag o ramo</link
> particolare di un modulo. Puoi anche assicurarti che sia ritirata una particolare <link linkend="conf-revision"
>revisione</link
> di un modulo. </para
></listitem>

<listitem
><para
>&kdesrc-build; può passare automaticamente a una cartella sorgente di un altro deposito, ramo o tag. Ciò viene fatto automaticamente quando cambi un'opzione che cambia l'&url; del deposito, ma devi usare l'opzione <link linkend="cmdline-src-only"
>--src-only</link
> per far sapere a &kdesrc-build; che è accettabile fare il passaggio. </para
></listitem>

<listitem
><para
>&kdesrc-build; può <link linkend="partial-builds"
>ritirare anche solo alcune porzioni di un modulo</link
>, per i casi in cui ti serve solo un programma da un grande modulo. </para
></listitem>

<listitem
><para
>Per gli sviluppatori: &kdesrc-build; vi <link linkend="ssh-agent-reminder"
>ricorderà</link
> se usate git+ssh:// ma <application
>ssh-agent</application
> non è in esecuzione, visto che ciò porterebbe a richieste di password multiple da &ssh;. </para
></listitem>

<listitem
><para
>Può <link linkend="deleting-build-dir"
>eliminare la cartella di generazione</link
> di un modulo dopo la sua installazione per risparmiare spazio a spese del tempo di una successiva compilazione. </para
></listitem>

<listitem
><para
>Gli indirizzi delle cartelle usate da &kdesrc-build; sono configurabili (anche per modulo). </para
></listitem>

<listitem
><para
>Può usare &sudo;, o un altro comando specificato dall'utente, per <link linkend="root-installation"
>installare i moduli</link
> in modo che &kdesrc-build; non richieda di essere eseguito dall'amministratore. </para
></listitem>

<listitem
><para
>&kdesrc-build;, come impostazione predefinita, gira a <link linkend="build-priority"
>priorità ridotta</link
> per permetterti di usare il computer mentre &kdesrc-build; sta lavorando. </para
></listitem>

<listitem
><para
>Ha supporto per usare <link linkend="using-branches"
>i tag e i rami</link
> di &kde;. </para
></listitem>

<listitem
><para
>C'è supporto per <link linkend="resuming"
>riprendere una generazione</link
> da un modulo dato. Puoi anche <link linkend="ignoring-modules"
>ignorare temporaneamente alcuni moduli</link
> di una certa generazione. </para
></listitem>

<listitem
><para
>&kdesrc-build; mostrerà <link linkend="build-progress"
>l'avanzamento della generazione</link
> quando si usa &cmake;, e terrà sempre conto del tempo di generazione, in modo da sapere quanto ci ha messo. </para
></listitem>

<listitem
><para
>Ha già un insieme di opzioni predefinite appropriate per generare un'installazione monoutente di &kde; dai depositi anonimi del codice sorgente. </para
></listitem>

<listitem
><para
>Espansione della tilde per le opzioni di configurazione. Per esempio, puoi specificare: <programlisting
>install-dir ~/kde/usr</programlisting>
</para
></listitem>

<listitem
><para
>Configura automaticamente un sistema di generazione, con la cartella sorgente non corrispondente alla cartella di generazione, in modo da tenere la prima pulita. </para
></listitem>

<listitem
><para
>Puoi specificare che le opzioni globali si applichino a ogni modulo da ritirare, e puoi anche specificare opzioni da applicare a singoli moduli. </para
></listitem>

<listitem
><para
>Rigenerazioni complete forzate, eseguendo &kdesrc-build; con l'opzione <option
>--refresh-build</option
>. </para
></listitem>

<listitem
><para
>Puoi specificare varie variabili d'ambiente da usare durante la generazione, incluse <envar
>DO_NOT_COMPILE</envar
> e <envar
>CXXFLAGS</envar
>. </para
></listitem>

<listitem
><para
>I registri dei comandi hanno data e ora, in modo da avere sempre un registro dell'esecuzione dello script. Inoltre, uno speciale collegamento simbolico chiamato <filename
>latest</filename
> viene creato e punta sempre al file più recente della cartella dei registri. </para
></listitem>

</itemizedlist>

</sect1
>&kdesrc-build-logging; </chapter>
