<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
  <!--
    Documentation for kdesrc-build.
    Copyright (c) 2005-2008, 2010-2016 Michael Pyne <mpyne@kde.org>

    Copyright (c) 2005 Carlos Leonhard Woelz <carloswoelz@imap-mail.com>
    Copyright (c) 2009 Burkhard Lück <lueck@hube-lueck.de>
    Copyright (c) 2007, 2011 Federico Zenith <federico.zenith@members.fsf.org>
    Copyright (c) 2009-2011 Yuri Chornoivan <yurchor@ukr.net>
    ... and possibly others. Check the git source repository for specifics.

    Permission is granted to copy, distribute and/or modify this document under
    the terms of the GNU Free Documentation License, Version 1.2 or any later
    version published by the Free Software Foundation; with no Invariant
    Sections, no Front-Cover Texts, and no Back-Cover Texts.

    A copy of the license is included in COPYING.DOC. The license will be
    included in the generated documentation as well.
   -->
  <!ENTITY kappname "kdesrc-build">
  <!ENTITY package "kdesdk">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % Portuguese "INCLUDE"
> <!-- Change language only here -->
  <!ENTITY kdesrc-build "<application
>kdesrc-build</application
>">
  <!ENTITY BSD '<acronym
>BSD</acronym
>'>
  <!ENTITY git '<application
>Git</application
>'>
  <!ENTITY cmake '<application
>CMake</application
>'>
  <!ENTITY make '<application
>Make</application
>'>
  <!ENTITY ssh '<application
>SSH</application
>'>
  <!ENTITY cron '<application
>Cron</application
>'>
  <!ENTITY subversion '<application
>Subversion</application
>'>
  <!ENTITY sudo '<application
>Sudo</application
>'>
  <!ENTITY url '<acronym
>URL</acronym
>'>

  <!-- These define shortcut entities for some of the configuration options.
       Just add them as necessary.
  -->

  <!ENTITY configure-flags '<link linkend="conf-configure-flags"
>configure-flags</link
>'>
  <!ENTITY kdedir '<link linkend="conf-kdedir"
>kdedir</link
>'>
  <!ENTITY qtdir '<link linkend="conf-qtdir"
>qtdir</link
>'>
  <!ENTITY build-dir '<link linkend="conf-build-dir"
>build-dir</link
>'>
  <!ENTITY module-base-path '<link linkend="conf-module-base-path"
>module-base-path</link
>'>
  <!ENTITY override-url '<link linkend="conf-override-url"
>override-url</link
>'>
  <!ENTITY source-dir '<link linkend="conf-source-dir"
>source-dir</link
>'>
  <!ENTITY email-address '<link linkend="conf-email-address"
>email-address</link
>'>
  <!ENTITY email-on-compile-error '<link linkend="conf-email-on-compile-error"
>email-on-compile-error</link
>'>
  <!ENTITY colorful-output '<link linkend="conf-colorful-output"
>colorful-output</link
>'>
  <!ENTITY tag '<link linkend="conf-tag"
>tag</link
>'>
  <!ENTITY branch '<link linkend="conf-branch"
>branch</link
>'>
  <!ENTITY do-not-compile '<link linkend="conf-do-not-compile"
>do-not-compile</link
>'>
  <!ENTITY checkout-only '<link linkend="conf-checkout-only"
>checkout-only</link
>'>
  <!ENTITY svn-server '<link linkend="conf-svn-server"
>svn-server</link
>'>
  <!ENTITY make-install-prefix '<link linkend="conf-make-install-prefix"
>make-install-prefix</link
>'>
  <!ENTITY niceness '<link linkend="conf-niceness"
>niceness</link
>'>
  <!ENTITY set-env '<link linkend="conf-set-env"
>set-env</link
>'>
  <!ENTITY libpath '<link linkend="conf-libpath"
>libpath</link
>'>
  <!ENTITY binpath '<link linkend="conf-binpath"
>binpath</link
>'>

  <!-- These define shortcut entities for some of the command line options.
       Just add them as necessary.
  -->
  <!ENTITY cmd-nice '<link linkend="cmdline-nice"
>--nice</link
>'>
  <!ENTITY cmd-ignore-modules '<link linkend="cmdline-ignore-modules"
>--ignore-modules</link
>'>
  <!ENTITY cmd-resume-from '<link linkend="cmdline-resume-from"
>--resume-from</link
>'>
  <!ENTITY cmd-resume-after '<link linkend="cmdline-resume-after"
>--resume-after</link
>'>
  <!ENTITY cmd-reconfigure '<link linkend="cmdline-reconfigure"
>--reconfigure</link
>'>
  <!ENTITY cmd-refresh-build '<link linkend="cmdline-refresh-build"
>--refresh-build</link
>'>
]>

<book id="kdesrc-build" lang="&language;">

<bookinfo>
<title
>Manual do 'Script' &kdesrc-build;</title>

<authorgroup id="authors">
<author
><firstname
>Michael</firstname
><surname
>Pyne</surname
> <affiliation
><address
><email
>mpyne@kde.org</email
></address
></affiliation>
</author>
<author
><firstname
>Carlos</firstname
><surname
>Woelz</surname
> <affiliation
><address
><email
>carloswoelz@imap-mail.com</email
></address
></affiliation>
</author>


<othercredit role="translator"
><firstname
>José</firstname
><surname
>Pires</surname
><affiliation
><address
><email
>zepires@gmail.com</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
> 

</authorgroup>

<copyright>
<year
>2006</year>
<year
>2007</year>
<year
>2008</year>
<year
>2009</year>
<year
>2010</year>
<year
>2011</year>
<year
>2012</year>
<year
>2013</year>
<year
>2014</year>
<year
>2015</year>
<year
>2016</year>
<holder
>Michael Pyne</holder>
</copyright>

<copyright>
<year
>2005</year>
<holder
>Carlos Woelz</holder>
</copyright>

<legalnotice
>&FDLNotice;</legalnotice>

<date
>2016-05-02</date>
<releaseinfo
>&kdesrc-build; 16.08</releaseinfo>

<abstract>
<para
>O &kdesrc-build; é um programa que compila e instala o &kde; directamente a partir do código existente nos repositórios de código-fonte do &kde;.</para>
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdesdk</keyword>
<keyword
>SVN</keyword>
<keyword
>Subversion</keyword>
<keyword
>git</keyword>
<keyword
>gitorious</keyword>
<keyword
>Desenvolvimento KDE</keyword>
<!-- Older names for the software -->
<keyword
>kdesvn-build</keyword>
<keyword
>kdecvs-build</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title
>Introdução</title>

<sect1 id="brief-intro">
<title
>Uma breve introdução ao &kdesrc-build;</title>

<sect2 id="whatis-kdesrc-build">
<title
>O que é o &kdesrc-build;?</title>

<para
>O &kdesrc-build; é um programa que ajuda os utilizadores a instalar o <ulink url="https://www.kde.org/"
>&kde;</ulink
> a partir dos repositórios de código em <ulink url="http://subversion.tigris.org/"
>&subversion;</ulink
> e <ulink url="https://git-scm.com/"
>&git;</ulink
>. </para>

<para
>Para além de simplesmente instalar aplicações do &kde;, o programa também pode ser usado para actualizar os programas do &kde; instalados. Isto permite mantê-lo a par do desenvolvimento com o &kde;. </para>

<para
>O programa &kdesrc-build; pode ser usado para manter um módulo individual único ou um ambiente de trabalho completo do &kde;, dependendo de como estiver configurado. </para>
</sect2>

<sect2 id="operation-in-a-nutshell">
<title
>O funcionamento do  &kdesrc-build; <quote
>em resumo</quote
></title>

<para
>O &kdesrc-build; funciona de propósito com as mesmas ferramentas que estão disponíveis para o utilizador pela linha de comandos. Quando o &kdesrc-build; é executado, é seguida a sequência abaixo: </para>

<orderedlist>
<listitem
><para
>O &kdesrc-build; usa uma <link linkend="cmdline"
>linha de comandos</link
> e um <link linkend="configure-data"
>ficheiro de configuração</link
> para controlar os módulos que são compilados, onde são instalados, &etc;</para
></listitem>

<listitem
><para
>O &kdesrc-build; efectua uma actualização de código para cada <link linkend="module-concept"
>módulo</link
>. A actualização prossegue até que todos os módulos tenham sido actualizados. Os módulos que não consigam ser actualizados normalmente não param o processo &ndash; será notificado no fim sobre quais os módulos que não foram actualizados.</para
></listitem>
</orderedlist>

</sect2>
</sect1>

<sect1 id="intro-toc">
<title
>Introdução à Documentação</title>

<para
>Este guia é uma introdução para descrever os seguintes aspectos da operação do &kdesrc-build;: </para>

<itemizedlist>
<listitem
><para
>Uma <link linkend="getting-started"
>introdução</link
> aos passos necessários para começar.</para
></listitem>
<listitem
><para
><link linkend="features"
>Funcionalidades</link
> notórias.</para
></listitem>
<listitem
><para
>A sintaxe e as opções do <link linkend="configure-data"
>ficheiro de configuração</link
>.</para
></listitem>
<listitem
><para
>As <link linkend="cmdline"
>opções da linha de comandos</link
>.</para
></listitem>
</itemizedlist>

<para
>Também estão documentados os passos que deverá efectuar com as outras ferramentas (por outras palavras, os passos que não são executados automaticamente pelo &kdesrc-build;). </para>

</sect1>
</chapter>

<chapter id="getting-started">
<title
>Começar</title>

<para
>Neste capítulo, será apresentada a forma de utilização do &kdesrc-build; para obter os módulos do repositório do &kde; e os compilar. Será dada também uma explicação básica da estrutura do código-fonte do &kde; e os passos que terá de efectuar antes de executar o programa. </para>

<para
>Todos os tópicos presentes neste capítulo são cobertos com ainda mais detalhe na secção <ulink url="https://community.kde.org/Guidelines_and_HOWTOs"
> Guia de Compilação do Código do &kde; Passo-a-Passo</ulink
>, na <ulink url="https://community.kde.org/"
>Wiki da Comunidade do &kde;</ulink
>. Se estiver a compilar o &kde; pela primeira vez, é uma boa ideia lê-lo ou consultá-lo como fonte de referência. Irá encontrar informações detalhadas sobre as ferramentas de empacotamento e os requisitos, os problemas de compilação comuns e as estratégias e informações sobre a execução da instalação do seu novo &kde;. </para>

<sect1 id="before-building">
<title
>Preparar o Sistema para Compilar o &kde;</title>

<sect2 id="before-building-users">
<title
>Configurar uma conta nova do utilizador</title>

<para
>Recomenda-se que use um conta de utilizador diferente para compilar, instalar e executar o seu ambiente &kde;, dado que são necessárias menos permissões e para evitar interferências com os pacotes da sua distribuição. Se já tiver pacotes do &kde; instalados, a melhor escolha será criar um utilizador diferente (dedicado) para compilar e executar o novo &kde;. </para>

<tip
><para
>Se deixar o &kde; do seu sistema incólume, poderá ter uma manobra de emergência, no caso de o &kde; compilado for instável por uma razão qualquer. </para
></tip>

<para
>Mais tarde, poderá fazer uma instalação de sistema se o desejar. Este documento não cobre uma instalação a nível do sistema. Se estiver a efectuar uma instalação a nível do sistema, provavelmente já deverá saber o que está a fazer. Caso contrário, poderá querer consultar a documentação ou páginas de ajuda da sua distribuição, para saber como preparar e usar a instalação do sistema correctamente. </para>

</sect2>
<sect2 id="before-building-preparation">
<title
>Garanta que o seu sistema está pronto para compilar o código do &kde;</title>

<para
>Antes de usar o programa &kdesrc-build; (ou qualquer outra estratégia de compilação), deverá instalar as ferramentas de desenvolvimento e bibliotecas necessárias para o &kde;. A lista completa das ferramentas necessárias poderá ser encontrada nos <ulink url="https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source#Install_required_devel_packages"
>Requisitos de Compilação na Wiki da Comunidade do &kde;</ulink
>. </para>

<para
>Aqui está uma lista das coisas que irá necessitar:</para>
<itemizedlist>

<listitem
><para
>Irá necessitar do &cmake;. A versão necessária poderá variar de acordo com a versão do &kde; 4 que estiver a compilar; veja a Base Técnica para saber os detalhes específicos, mas um bom palpite será ter instalada a versão mais recente. O &cmake; é o programa usado pelo &kdesrc-build; para lidar com a configuração e compilação de facto da maioria das aplicações do &kde;. </para
></listitem>

<listitem
><para
>Deverá também instalar as aplicações-cliente usadas para extrair o código-fonte do &kde;. Isto significa que é necessário pelo menos o seguinte:</para>

<itemizedlist>
<listitem
><para
>O &subversion;, que costumava ser o único sistema de controlo de versões usado, e que ainda continua a ser usado para alguns módulos com grandes ficheiros de dados. Poderá verificar se o tem instalado se correr <userinput
><command
>svn <option
>--version</option
></command
></userinput
>.</para
></listitem>

<listitem
><para
>Também irá necessitar do <ulink url="https://git-scm.com/"
>gestor de controlo de versões Git</ulink
> instalado, para os projectos do &kde; <ulink url="https://commits.kde.org/"
>baseados em Git.</ulink
></para
></listitem>

<listitem
><para
>Ainda que não seja necessário o gestor de controlo de versões <ulink url="http://bazaar.canonical.com/"
>Bazaar</ulink
> é usado para um único módulo (libdbusmenu-qt) que é necessário para as bibliotecas do &kde;. A maioria dos utilizadores poderão instalar esta biblioteca através dos pacotes da sua distribuição, mas o &kdesrc-build; suporta a compilação do mesmo, se o desejar. Contudo, para compilar o 'libdbusmenu-qt', precisa de instalar o Bazaar.</para
></listitem>

</itemizedlist
></listitem>

<listitem
><para
>Irá precisar de um ambiente de desenvolvimento de C++ completo. Recomenda-se o GCC 4.6 ou posterior.</para
></listitem>

<listitem
><para
>Finalmente, irá necessitar de uma ferramenta <quote
>make</quote
>. O GNU Make é o recomendado e deverá estar disponível no seu gestor de pacotes. Depois de o <command
>cmake</command
> ter sido executado pelo &kdesrc-build;, o <command
>make</command
> lida de facto com o processo de compilação em si, pelo que é obrigatório.</para
></listitem>

</itemizedlist>

<note
><para
>A maioria das distribuições dos sistemas operativos incluem um método para instalar facilmente as ferramentas de desenvolvimento necessárias. Consulte a página <ulink url="https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source#Install_required_devel_packages"
>Required Packages from your Distribution (Pacotes Necessários da sua Distribuição)</ulink
> (Introdução) para ver se essas instruções já estão disponíveis.</para
></note>

<para
>Uma excepção às bibliotecas necessárias é a biblioteca &Qt;. O &kdesrc-build; irá instalar normalmente uma cópia do &Qt;, quer já o tenha instalado quer não, como tal não é necessário tê-la. Se não quiser usar a cópia do &Qt;, terá de fazer o seguinte:</para>

<itemizedlist>
<listitem>
  <para
>Certifique-se que remove o módulo 'qt' do seu <link linkend="configure-data"
>ficheiro de configuração</link
>, dado que não irá necessitar dele e, se o tiver, só vai adicionar mais tempo à sua compilação.</para>
</listitem>

<listitem>
  <para
>Mude a configuração da opção <link linkend="conf-qtdir"
>qtdir</link
> no seu <link linkend="configure-data"
>ficheiro de configuração</link
>, de modo a apontar para o seu &Qt; de sistema. A localização do seu &Qt; poderá ser encontrada com o comando <userinput
><command
>qmake</command
> <option
>-query</option
><option
>QT_INSTALL_PREFIX</option
></userinput
>.</para>

  <note
><para
>O comando <command
>qmake</command
> poder-se-á chamar <command
>qmake4</command
> ou <command
>qmake-qt4</command
> na sua distribuição.</para
></note>
</listitem>

<listitem>
  <para
>Se não tiver já o &Qt; instalado, instale-o, incluindo os pacotes -dev ou -devel necessários. Deverá ter pelo menos o &Qt; 4.7 se for compilar o &kde; 4.</para>
</listitem>
</itemizedlist>

<important
><para
>Alguns destes pacotes estão divididos em bibliotecas, programas ou utilitários e pacotes de desenvolvimento. Irá necessitar, pelo menos do programa ou biblioteca <emphasis
>e</emphasis
> do seu pacote de desenvolvimento. Se tiver dúvidas, instale tudo. As bibliotecas que necessita irão variar de acordo com os módulos que pretende compilar, dado que cada módulo tem os seus próprio requisitos. A <ulink url="https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source"
>Wiki da Comunidade do &kde;</ulink
> tem mais detalhes sobre as ferramentas e técnicas específicas usadas para instalar e encontrar o 'software' necessário. </para
></important>

</sect2>

<sect2 id="before-building-prepare-script">
<title
>Configurar o &kdesrc-build;</title>

<sect3 id="get-kdesrc-build">
<title
>Instalar o &kdesrc-build;</title>
<para
>Poderá já ter uma versão do programa &kdesrc-build; instalada no sue sistema. Contudo, se não o tiver, poderá obtê-lo na <ulink url="https://kdesrc-build.kde.org/"
>página pessoal do &kdesrc-build;</ulink
> ou podê-lo-á encontrar no seu local original, no repositório de código do &kde;.</para>

<tip
><para
>Se usar um &kdesrc-build; mais recente, através da transferência da sua página Web, dever-se-á lembrar de executar o programa &kdesrc-build; que transferiu. Poderá usar a opção <option
>--version</option
> do &kdesrc-build; como uma forma rápida de verificar isto.</para
></tip>

<orderedlist>
<listitem
><para
>Para obter o &kdesrc-build; a partir da sua página pessoal, basta ir à <ulink url="https://kdesrc-build.kde.org/"
>página pessoal do &kdesrc-build;</ulink
> e transferir a versão mais recente. A versão está dentro de um um pacote TAR comprimido, o qual poderá extrair com o &ark; ou o <command
>tar</command
>. O conteúdo do pacote inclui o programa &kdesrc-build; actual e um ficheiro de configuração de exemplo (<filename
>kdesrc-buildrc-sample</filename
>), bem como um programa de configuração rápida.</para
></listitem>

<listitem
><para
>Ou poderá obter o &kdesrc-build; a partir do seu repositório de origem, executando o comando:</para>
<programlisting
><prompt
>$ </prompt
><userinput
><command
>git <option
>clone</option
> <option
>git://anongit.kde.org/kdesrc-build</option
> <option
><filename class="directory"
><replaceable
>~/kdesrc-build</replaceable
></filename
></option
></command
></userinput
>
</programlisting>

<para
>Substitua o <option
><replaceable
>~/kdesrc-build</replaceable
></option
> pela pasta para onde deseja instalar tudo. </para
></listitem>
</orderedlist>

<para
>Não interessando a técnica que usar, deverá garantir que o ficheiro <filename
>kdesrc-build</filename
> é executável. Por conveniência, deverá garantir que está numa pasta definida na variável de ambiente <envar
>PATH</envar
>, caso contrário, poderá obter mensagens que indiquem que o comando não foi encontrado ou que está a correr uma versão errada por engano.</para>
</sect3>

<sect3 id="setup-rcfile">
<title
>Preparar o ficheiro de configuração</title>

<para
>O &kdesrc-build; usa um <link linkend="configure-data"
>ficheiro de configuração</link
> (localizado em <filename
>~/.kdesrc-buildrc</filename
>) para controlar os módulos que são compilados, onde são instalados, etc.</para>

<para
>Poderá usar um programa incluído com o &kdesrc-build;, chamado <application
>kdesrc-build-setup</application
>, para preparar uma configuração simples do 'kdesrc-build'. Poderá então editar o <filename
>~/.kdesrc-buildrc</filename
>, a partir daí, para efectuar as alterações que julgar necessárias.</para>

<para
>O próprio <application
>kdesrc-build-setup</application
> corre a partir de um terminal (em vez de usar uma interface gráfica), como acontece com o &kdesrc-build;, pelo que o poderá usar, mesmo que ainda não tenha disponível qualquer interface gráfica.</para>

<tip
><para
>Poderá usar a configuração de exemplo incluída no <filename
>kdesrc-buildrc-sample</filename
> para obter explicações sobre as várias opções disponíveis. </para
></tip>

<para
>Poderá encontrar mais informações sobre a sintaxe do <link linkend="configure-data"
>ficheiro de configuração</link
> em <xref linkend="configure-data"/> e em <xref linkend="kdesrc-buildrc"/>. </para>

</sect3>
</sect2>
</sect1>

<sect1 id="configure-data">
<title
>Definir os Dados de Configuração</title>

<para
>Para usar o &kdesrc-build;, deverá ter um ficheiro na sua pasta pessoal chamado <filename
>.kdesrc-buildrc</filename
>, que define as opções gerais e os módulos que deseja transferir e compilar. </para>

<note
><para
>É possível usar ficheiros de configuração diferentes para o &kdesrc-build;, que estão descritos em <xref linkend="kdesrc-buildrc"/>. Se necessitar de usar várias configurações, veja por favor essa secção. Aqui, assumir-se-á que a configuração está guardada em <filename
>~/.kdesrc-buildrc</filename
>.</para
></note>

<para
>A forma mais simples de prosseguir é usar o ficheiro <filename
>kdesrc-buildrc-sample</filename
> como modelo, definir as opções globais à sua necessidade e a lista dos módulos que deseja compilar. </para>

<para
>A configuração por omissão já deverá ser apropriada para efectuar uma compilação do &kde;. Algumas opções que poderá querer alterar incluem: <itemizedlist>
<listitem
><para
><link linkend="conf-use-stable-kde"
>use-stable-kde</link
> para alterar a versão por omissão dos módulos do &kde; a compilar. Por omissão, o &kdesrc-build; irá compilar a última versão do &kde;. Se quiser compilar a última versão estável do &kde;, em vez de usar os pacotes da sua distribuição, iria usar esta opção como <replaceable
>true</replaceable
>. </para>

<tip
><para
>Lembre-se que esta opção baseia-se em informações disponíveis na base de dados do projecto &kde;, pelo que esta funcionalidade só funciona nesses módulos. Veja também em <xref linkend="kde-projects-module-sets"/>. </para
></tip>
</listitem>

<listitem
><para
><link linkend="conf-kdedir"
>kdedir</link
>, que muda a pasta de destino para onde o &kde; será instalado. Esta é por omissão a <filename class="directory"
>~/kde</filename
>, que é uma instalação para um único utilizador.</para
></listitem>

<listitem
><para
><link linkend="conf-qtdir"
>qtdir</link
>, que controla o local da instalação do &Qt; a usar. Por omissão, usa o &Qt; compilado pelo &kdesrc-build;, usando o módulo especial 'qt-copy' do repositório e o último código-fonte disponível. (<filename class="directory"
>~/kdesrc/build/qt</filename
>).</para>

<note
><para
>Isto também controla onde instalar o 'qt'.</para
></note>
</listitem>

<listitem
><para
><link linkend="conf-svn-server"
>svn-server</link
>, que selecciona o URL de onde transferir o código. Isto é útil se você for um programador com uma <ulink url="https://community.kde.org/Infrastructure/First_Steps_with_your_Contributor_Account"
>conta de colaborador do &kde;</ulink
>.</para
></listitem>

<listitem
><para
>Poderá querer seleccionar módulos diferentes para compilar, os quais estão descritos em <xref linkend="selecting-modules"/>.</para
></listitem>
</itemizedlist>
</para>
</sect1>

<sect1 id="kde-modules-and-selection">
<title
>Organização e selecção dos módulos</title>

<sect2 id="kde-layers">
<title
>Organização do 'Software' do KDE</title>

<para
>As aplicações do &kde; estão divididas em diversos componentes, muitos dos quais poderão ser compilados pelo &kdesrc-build;. A compreensão desta organização ajudá-lo-á a seleccionar adequadamente os módulos de aplicações que deseja compilar. </para>

<orderedlist>
<listitem
><para
>No nível inferior vem a biblioteca &Qt;, que é uma <quote
>plataforma</quote
> multi-plataforma e muito poderosa. O &kde; baseia-se no &Qt; e algumas das bibliotecas fora do &kde; que são necessárias por este também se baseiam no &Qt;. O &kdesrc-build; poderá compilar o &Qt; ou usar o que já está instalado no seu sistema, caso seja uma versão recente o suficiente.</para
></listitem>

<listitem
><para
>No topo do &Qt; estão as bibliotecas necessárias para o sistema &kde; funcionar. Algumas destas bibliotecas não são consideradas como fazendo parte do &kde; propriamente dito, devido à sua natureza genérica, mas são à mesma essenciais para a Plataforma do &kde;. Estas bibliotecas costumavam estar reunidas sob um único módulo <literal
>kdesupport</literal
>.</para>

<note
><para
>Desde a Plataforma do &kde; 4.6, muitos desses módulos do 'kdesupport' estão a ser migrados para o <ulink url="https://commits.kde.org/"
>arquivo de Git do &kde;</ulink
>, ainda que continuem a não fazer parte da Plataforma.</para
></note>
</listitem>

<listitem
><para
>Sobre essas bibliotecas essenciais, vem a Plataforma do &kde;. Estas são as bibliotecas que são necessárias para que as aplicações do &kde; funcionem. Todavia, não é fornecido um ambiente de trabalho completo com esta plataforma. </para>

<para
>Para o &kdesrc-build;, a camada da Plataforma consiste nos módulos <literal
>kdelibs</literal
>, <literal
>kdepimlibs</literal
> e <literal
>kde-runtime</literal
>.</para>
</listitem>

<listitem
><para
>No topo da Plataforma, vêm diversas coisas diferentes:</para>
    <itemizedlist>
        <listitem
><para
>Aplicações de <quote
>terceiros</quote
>. Estas são aplicações que usam a Plataforma do &kde; mas não são da autoria ou estão associadas ao projecto &kde;.</para
></listitem>

        <listitem
><para
>Um ambiente e respectiva <quote
>área de trabalho</quote
> completos. Isto é o que os utilizadores normalmente vêem quando <quote
>se autenticarem no &kde;</quote
>. Isto é fornecido pelo Ambiente do &plasma;, maioritariamente em <literal
>kde-workspace</literal
>. </para
></listitem>

        <listitem
><para
>A Compilação de 'Software' do &kde; (SC). Esta é uma colecção de aplicações úteis que vem incluída na Plataforma e no Ambiente de Trabalho &plasma;, agrupada em módulos individuais. Estes são os módulos que têm nomes que começam por <literal
>kde</literal
>. Por exemplo, o <literal
>kdepim</literal
> é um componente da Compilação de 'Software' que contém aplicações de e-mail, leitura de notícias, organização e calendários, &etc;, enquanto o <literal
>kdegames</literal
> contém uma colectânea de jogos de alta qualidade para lhe ocupar o tempo.</para
></listitem>

        <listitem
><para
>Finalmente, existe uma colecção de aplicações (também agrupada em módulos) cujo desenvolvimento é suportado pelos recursos do &kde; (como as traduções, o controlo de código, o registo de erros, &etc;) mas que não é lançada pelo &kde; ou considerada como parte da Compilação de 'Software'. Estes módulos são conhecidos como <quote
>Extragear</quote
> e têm nomes do tipo <literal
>extragear/network</literal
>. Como no <literal
>kdesupport</literal
>, algumas dessas aplicações do Extragear estão a migrar para o <ulink url="https://commits.kde.org/"
>arquivo de Git do &kde;</ulink
>.</para
></listitem>
    </itemizedlist>
</listitem>
</orderedlist>
</sect2>

<sect2 id="selecting-modules">
<title
>Seleccionar os módulos a compilar</title>

<para
>A selecção de qual dos módulos possíveis a compilar é controlada pelo <link linkend="kdesrc-buildrc"
>ficheiro de configuração</link
>. Depois da secção <literal
>global</literal
>, existe uma lista com os módulos a compilar, delimitada pelas linhas 'module ... end module'. Aparece um item de exemplo para um módulo em <xref linkend="conf-module-example"/>.</para>

<example id="conf-module-example">
<title
>Item de exemplo de módulo no ficheiro de configuração</title>
<programlisting
>module <replaceable
>nome-módulo</replaceable>
    # As opções deste módulo vão aqui, por exemplo:
    <link linkend="conf-make-options"
>make-options</link
> -j4 # Correr 4 compilações de cada vez
end module
</programlisting>
</example>

<tip
><para
>É possível declarar um módulo sem opções. De facto, a maioria dos seus módulo serão provavelmente declarados desta forma.</para
></tip>

<para
>O &kdesrc-build; só compila os módulos que tiver apresentado no seu ficheiro de configuração. Para além disso, os módulos são compilados pela ordem indicada no ficheiro de configuração. Por essa razão, deverá garantir que a ordem dos módulos no seu ficheiro de configuração é consistente com a organização indicada em <xref linkend="kde-layers"/>.</para>

<para
>Existe um ficheiro de exemplo, que vem com o &kdesrc-build;, chamado <filename
>kdesrc-buildrc-sample</filename
>. Recomenda-se que copie este ficheiro para um outro chamado <filename
>~/.kdesrc-buildrc</filename
> (<emphasis
>Repare no ponto inicial à frente do 'kdesrc-buildrc'!</emphasis
>). Depois disso, edite o ficheiro novo para ajustar as opções predefinidas a seu gosto. (Cada opção está descrita com mais detalhe no <xref linkend="kdesrc-buildrc"/>). Os módulos predefinidos deverão ser suficientes para garantir a instalação de um &kde; relativamente completo; contudo, poderá remover muitos dos módulos que aparecem a seguir ao <literal
>kdebase</literal
>, caso queira poupar espaço em disco ou tempo de compilação.</para>

</sect2>

<sect2 id="module-sets">
<title
>Conjuntos de Módulos</title>

<para
>O &kdesrc-build; é normalmente capaz de adivinhar onde transferir o código-fonte para um dado módulo de forma bastante simples, usando a sua configuração do <link linkend="conf-svn-server"
>svn-server</link
> e o nome do módulo para criar um único URL do Subversion, que descreve exactamente de onde transferir o código-fonte.</para>

<para
>Com a passagem para o Git, muitos módulos maiores do Subversion foram sub-divididos por seu turno no processo, não existindo garantia de como encontrar um módulo com base no seu módulo. Devido a isto, foi desenvolvido um conceito chamado <quote
>conjuntos de módulos</quote
> para o &kdesrc-build; 1.12.1.</para>

<para
>Se usar um conjunto de módulos, poderá declarar rapidamente muitos módulos do Git para serem transferidos e compilados, como se tivesse definido uma declaração de módulo em separado para cada um. A opção <link linkend="conf-repository"
>repository</link
> é tratada de forma especial para definir de onde foi transferido cada módulo, sendo todas as outras opções existentes no conjunto de módulos copiadas para cada módulo gerado desta forma.</para>

<example id="example-using-module-sets">
<title
>Usar os conjuntos de módulos</title>
<programlisting
>global
    <option
><link linkend="conf-git-repository-base"
>git-repository-base</link
></option
> <replaceable
>kde-git</replaceable
> <replaceable
>kde:</replaceable>
end global

module <replaceable
>qt</replaceable>
    # Opções removidas para resumir
end module

module-set <replaceable
>kde-support-libs</replaceable>
    <option
><link linkend="conf-repository"
>repository</link
></option
> <replaceable
>kde-git</replaceable>
    <option
><link linkend="conf-use-modules"
>use-modules</link
></option
> <replaceable
>automoc</replaceable
> <replaceable
>attica</replaceable
> <replaceable
>akonadi</replaceable>
end module-set

# Outros módulos porventura necessários...
module <replaceable
>kdesupport</replaceable>
end module
</programlisting>
</example>

<para
>Em <xref linkend="example-using-module-sets"/>, aparece um breve conjunto de módulos. Quando o &kdesrc-build; encontrar este conjunto de módulos, irá actuar como se, para cada módulo indicado em <option
>use-modules</option
>, fosse declarado um módulo individual com o seu <option
>repository</option
> igual à opção <option
>repository</option
> do conjunto, seguida do nome do módulo indicado.</para>

<para
>Para além disso, poderá passar outras opções num conjunto de módulos, as quais são copiadas para os novos módulos que forem criados desta forma. Ao usar os conjuntos de módulos, é possível declarar rapidamente vários módulos do Git que se baseiam todos no mesmo URL de repositório. Para além disso, desde o &kdesrc-build; 1.13, é possível atribuir um nome aos conjuntos de módulos (como demonstrado no exemplo), o que lhe permite referenciar directamente o grupo inteiro de módulos a partir da linha de comandos.</para>

<note
><para
>Os conjuntos de módulos são usados no suporte para transferências de módulos a partir da base de dados de módulos do <ulink url="https://commits.kde.org/"
>arquivo de Git do &kde;</ulink
> para o &kde;. Veja também em <xref linkend="kde-projects-module-sets"/>. </para
></note>

<para
>Os conjuntos de módulos usam as opções <simplelist
><member
><link
linkend="conf-git-repository-base"
>git-repository-base</link
></member>
<member
><link
linkend="conf-use-modules"
>use-modules</link
></member
></simplelist
></para>
</sect2>

<sect2 id="kde-projects-module-sets">
<title
>Procurar automaticamente módulos da base de dados oficial do &kde;</title>

<para
>Com a migração do código-fonte do &kde; para se migrar para o git.kde.org, houve um crescimento explosivo no número de módulos (por exemplo, um único módulo do Subversion chamado <literal
>kdegraphics</literal
> transforma-se em 16 módulos diferentes no Git).</para>

<para
>Isto foi derivado principalmente por cada módulo do Git conter o histórico completo do projecto (isto desperdiça de facto menos espaço em disco do que acontece a maioria dos repositórios do &kde;, dado que o &git; é extremamente eficiente a gravar repositórios).</para>

<para
>O &kde; permite agrupar os repositórios do Git em colecções de módulos relacionados (p.eex., o 'kdegraphics'). Estes módulos poderão por sua vez ser agrupados (p.ex., Compilação de Software do &kde;). O Git não reconhece estes agrupamentos, mas o &kdesrc-build; pode ser configurado para lidar com estes grupos.</para>

<para
>A forma como isto é feito é através da utilização de <link linkend="module-sets"
>conjuntos de módulos</link
>. Em vez de usar um repositório específico <literal
>git://</literal
> ou o nome de um repositório criado pelo <link linkend="conf-git-repository-base"
>git-repository-base</link
>, é usado o nome de repositório especial <quote
><literal
>kde-projects</literal
></quote
>.</para>

<para
>O &kdesrc-build; irá reconhecer que o repositório <literal
>kde-projects</literal
> precisa de tratamento especial e ajustar o processo de compilação em conformidade. Entre outras coisas, o &kdesrc-build; irá:</para>

<itemizedlist>

<listitem
><para
>Obter a última base de dados de módulos do <ulink url="https://commits.kde.org/"
>arquivo de Git do &kde;</ulink
>.</para
></listitem>

<listitem
><para
>Tentar procurar um módulo com o nome indicado na opção <option
>use-modules</option
> do conjunto de módulos.</para
></listitem>

<listitem
><para
>Para cada módulo que encontrar, o &kdesrc-build; irá ver se existe uma opção do repositório para esse módulo na base de dados. Se existir um repositório, o &kdesrc-build; usá-la-á automaticamente para transferir ou actualizar o código-fonte. Se não estiver definido nenhum, o &kdesrc-build; irá tratar desse módulo como um grupo, tentando incluir todos os repositórios de código do &git; que encontrar nesse grupo.</para
></listitem>

</itemizedlist>

<note
><para
>Na base de dados actual, não só alguns grupos de módulos têm uma colecção de módulos, como <emphasis
>também</emphasis
> declaram o seu próprio repositório de &git;. Nestas situações, o &kdesrc-build; irá preferir o repositório de &git; do grupo em vez de incluir os repositórios dos filhos. </para
></note>

<para
>O seguinte exemplo demonstra como usar a base de dados de módulos do &kde; para instalar a biblioteca multimédia Phonon.</para>

<informalexample>
<programlisting
>module-set <replaceable
>media-support</replaceable>
    # Esta opção deverá ser 'kde-projects' para usar a base de dados de módulos.
    <option
><link linkend="conf-repository"
>repository</link
></option
> <literal
>kde-projects</literal>

    # Esta opção escolhe quais os módulos a procurar na base de dados.
    <option
><link linkend="conf-use-modules"
>use-modules</link
></option
> <replaceable
>phonon/phonon</replaceable
> <replaceable
>phonon-gstreamer</replaceable
> <replaceable
>phonon-vlc</replaceable>
end module-set
</programlisting>
</informalexample>

<tip
><para
>O <literal
>phonon/phonon</literal
> é usado porque (com a base de dados do projecto actual), o &kdesrc-build; teria de optar entre o grupo de projectos <quote
>phonon</quote
> ou o projecto individual <quote
>phonon</quote
>. De momento, o &kdesrc-build; iria escolher o primeiro, o qual iria compilar muitas mais infra-estruturas que as necessárias.</para
></tip>

<para
>O exemplo seguinte será porventura mais realista e demonstra uma funcionalidade que só está disponível na base de dados de módulos do &kde;: a compilação de todas as aplicações gráficas do &kde; com apenas uma única declaração.</para>

<informalexample>
<programlisting
>module-set <replaceable
>nunca-tente-isto</replaceable>
    # Esta opção deverá ser igual a 'kde-projects' para usar a base de dados de módulos
    <option
><link linkend="conf-repository"
>repository</link
></option
> <literal
>kde-projects</literal>

    # Esta opção escolhe os módulos a pesquisar na base de dados.
    <option
><link linkend="conf-use-modules"
>use-modules</link
></option
> <replaceable
>kdegraphics/libs</replaceable
> <replaceable
>kdegraphics/*</replaceable>
end module-set
</programlisting>
</informalexample>

<para
>Existem duas capacidades importantes aqui demonstradas:</para>

<orderedlist>

<listitem
><para
>O &kdesrc-build; permite-lhe definir módulos descendentes de um dado módulo, sem ter de compilar o módulo-pai, usando a sintaxe <userinput
><replaceable
>nome-módulo</replaceable
>/*</userinput
>. De facto, é obrigatório neste caso, dado que o módulo de base, o 'kdegraphics', está marcado como inactivo, para que não seja compilado por acaso, em conjunto com os seus módulos-filhos. A indicação dos módulos descendentes permite ao &kdesrc-build; saltar os módulos inactivos. </para
></listitem>

<listitem
><para
>O &kdesrc-build; também não irá adicionar um módulo indicado à lista de compilação mais que uma vez. Isto permite-lhe configurar manualmente o <literal
>kdegraphics/libs</literal
> para ser compilado em primeiro lugar, antes do resto do <literal
>kdegraphics</literal
>, sem ter de tentar compilar o <literal
>kdegraphics/libs</literal
> duas vezes. </para
></listitem>
</orderedlist>

<note
><para
>Convém apontar que o &kdesrc-build; irá tentar compilar os módulos pela ordem correcta (por exemplo, se só o  <literal
>kdegraphics/*</literal
> tiver sido incluído em cima), mas isso depende de manter as outras bases de dados actualizadas. Poderá fazer a coisa certa manualmente, se necessário, usando a técnica descrita acima. </para
></note>
</sect2>

<sect2 id="ignoring-project-modules">
<title
>Filtrar módulos do projecto do &kde;</title>

<para
>Poderá decidir que gostaria de compilar todos os módulos de um dado agrupamento de módulos do &kde;, <emphasis
>excepto</emphasis
> um dado programa.</para>

<para
>Por exemplo, o grupo <literal
>kdeutils</literal
> inclui um programa chamado <application
>kremotecontrol</application
>. Se o seu computador não tiver o 'hardware' adequado para receber os sinais enviados pelos comandos à distância, poderá optar por não transferir, compilar e instalar o <application
>kremotecontrol</application
> de cada vez que actualiza o <literal
>kdeutils</literal
>.</para>

<para
>Desde o &kdesrc-build; 1.16, poderá conseguir isto com a opção de configuração <link linkend="conf-ignore-modules"
>ignore-modules</link
>.</para>

<example id="example-ignoring-a-module">
<title
>Exemplo para excluir um módulo do projecto KDE num grupo</title>
<programlisting
>module-set <replaceable
>utils</replaceable>
    <option
><link linkend="conf-repository"
>repository</link
></option
> <literal
>kde-projects</literal>

    # Esta opção escolhe os módulos a pesquisar na base de dados.
    <option
><link linkend="conf-use-modules"
>use-modules</link
></option
> <replaceable
>kdeutils</replaceable>

    # Esta opção "retira" os módulos dos módulos escolhidos pelo "use-modules" acima.
    <option
><link linkend="conf-ignore-modules"
>ignore-modules</link
></option
> <replaceable
>kremotecontrol</replaceable>
end module-set

module-set <replaceable
>graphics</replaceable>
    <option
><link linkend="conf-repository"
>repository</link
></option
> <literal
>kde-projects</literal>

    # Esta opção escolhe os módulos a pesquisar na base de dados.
    <option
><link linkend="conf-use-modules"
>use-modules</link
></option
> <replaceable
>extragear/graphics</replaceable>

    # Esta opção "retira" os módulos dos escolhidos acima pelo "use-modules".
    # Neste caso, *tanto* o 'extragear/graphics/kipi-plugins' como o
    # 'extragear/graphics/kipi-plugins/kipi-plugins-docs' são ignorados
    <option
><link linkend="conf-ignore-modules"
>ignore-modules</link
></option
> <replaceable
>extragear/graphics/kipi-plugins</replaceable>
end module-set
</programlisting>
</example>

</sect2>

</sect1>

<sect1 id="building-and-troubleshooting">
<title
>Usar o 'script' &kdesrc-build;</title>

<para
>Agora está pronto para executar o programa. A partir de uma janela de termina, autentique-se com o utilizador que usa para compilar o &kde; e execute o programa: <screen
><prompt
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
></userinput
>
</screen>
</para>

<para
>Depois disso, deverá ver um resultado semelhante ao do <xref linkend="example-single-module"/>:</para>

<example id="example-single-module">
<title
>Resultado de exemplo da compilação de um único módulo</title>
<screen
><prompt
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>kdelibs</option
></userinput>
O programa iniciou o processamento às Qua Dez 22 13:21:45 2010
&lt;&lt;&lt;  Processo de Compilação  &gt;&gt;&gt;
A compilar o kdelibs (1/1)
        À espera da actualização do código-fonte.
        Actualização do código completa para o kdelibs: 48 ficheiros afectados.
        A verificar os conflitos de código...
        A compilar...
        A compilação foi bem sucedida ao fim de 13 minutos e 6 segundos.
        A instalar o kdelibs.
        O tempo global do kdelibs foi 13 minutos e 53 segundos.

&lt;&lt;&lt;  Compilação Completa  &gt;&gt;&gt;

&lt;&lt;&lt;  PACOTES COMPILADOS COM SUCESSO  &gt;&gt;&gt;
kdelibs

O programa terminou o processamento às Qua Dez 22 13:35:38 2010
Os seus registos são gravados em /home/kde-src/log-kdesrc-build/2010-12-22-01
</screen>
</example>

<para
>Agora, o &kdesrc-build; deverá começar a transferir o código e a compilá-lo. Dependendo dos módulos que obtiver, poderá ser possível que o &kdesrc-build; não consiga ser bem-sucedido da primeira vez que compilar o &kde;. Não desespere! </para>

<para
>O &kdesrc-build; regista o resultado de todos os comandos que executa. Por omissão, os ficheiros de registo são mantidos em <filename class="directory"
>~/kdesrc/log</filename
>. Para ver o que causou um determinado erro num módulo, no último comando do &kdesrc-build;, normalmente é suficiente ver o <filename
>~/kdesrc/log/latest/<replaceable
>nome-módulo</replaceable
>/error.log</filename
>.</para>

<tip
><para
>Talvez a forma mais simples de descobrir que erro provocou um problema na compilação de um módulo será pesquisar para trás sem distinção de maiúsculas/minúsculas, a partir do fim do ficheiro, pela palavra <literal
>erro</literal
>. Assim que a encontrar, suba um pouco para garantir que não existem outros erros por perto. A primeira mensagem de erro de um grupo é normalmente o problema subjacente.</para
></tip>

<para
>Nesse ficheiro, irá ver o erro que fez com que a compilação falhasse para esse módulo. Se o ficheiro disser (no fim) que lhe faltam alguns pacotes, tente instalar o pacote (incluindo os pacotes -dev apropriados) antes de tentar compilar esse módulo. Certifique-se que executa o &kdesrc-build; de novo para passar a opção <link linkend="cmdline-reconfigure"
>--reconfigure</link
>, para que o &kdesrc-build; force a verificação dos pacotes em falta por parte do módulo de novo.</para>

<para
>Por outro lado, se o erro parecer ser um erro de compilação do código do &kde; (como um erro de sintaxe, <quote
>protótipo incorrecto</quote
>, <quote
>tipo desconhecido</quote
> ou algo do género), pode ser que isso seja resolvido dentro de alguns dias. Se não for resolvido em tempo útil, sinta-se à vontade para enviar um e-mail para <email
>kde-devel@kde.org</email
> (poderá ser necessário inscrever-se) para comunicar o erro de compilação.</para>

<para
>Poderá encontrar mais exemplos comuns das coisas que poderão correr mal e as suas soluções, assim como algumas sugestões e estratégias gerais para compilar o &kde;, na secção <ulink url="https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source"
> Compilação a Partir do Código</ulink
>. </para>

<para
>Por outro lado, assumindo que tudo correu bem, deverá ter uma nova instalação do &kde; no seu computador, sendo agora apenas uma questão de o executar, sendo isto descrito a seguir em <xref linkend="environment"/>.</para>

<note
><para
>Para mais informações sobre as funcionalidades de registo do &kdesrc-build;, vá a <xref linkend="kdesrc-build-logging"/>.</para
></note>

</sect1>

<sect1 id="environment">
<title
>Configurar o Ambiente para Executar o seu &plasma; Novo no &kde;</title>

<para
>Assumindo que está a usar um utilizador dedicado para compilar o &kde; e já tem uma versão do &kde; instalada, a execução do seu &kde; novo poderá ter os seus truques, dado que o &kde; novo terá de ter precedência sobre o antigo. Mude as variáveis de ambiente para garantir que isso acontece. </para>

<sect2 id="session-driver">
<title
>Instalar automaticamente um controlador de autenticação</title>

<para
>Desde a versão 1.16, o &kdesrc-build; irá tentar instalar um controlador de autenticação apropriado, o que lhe permitirá iniciar a sua sessão no seu ambiente de trabalho &kde; compilado pelo &kdesrc-build; a partir do seu gestor de autenticação. Isto poderá ser desactivado com a opção <option
><link linkend="conf-install-session-driver"
>install-session-driver</link
></option
> do ficheiro de configuração.</para>

<note
><para
>A configuração da sessão não ocorre quando o &kdesrc-build; estiver a correr no modo simulado.</para
></note>

<para
>Este controlador funciona ao definir um tipo de sessão personalizado com o <quote
><literal
>xsession</literal
></quote
>. Este tipo de sessão deverá funcionar por omissão com o gestor de autenticação &kdm; (onde aparece como uma sessão <quote
>Personalizada</quote
>), mas os outros gestores de autenticação (como o <application
>LightDM</application
> e o <application
>gdm</application
>)  poderão necessitar de ficheiros adicionais instalados para activar o suporte para o <literal
>xsession</literal
>.</para>

<sect3 id="xsession-distribution-setup">
<title
>Adicionar o suporte da 'xessions' para as distribuições</title>

<para
>Os gestores de autenticação predefinidos de algumas autenticações poderão necessitar de pacotes adicionais instalados para suportar as autenticações via <literal
>xsession</literal
>.</para>

<itemizedlist>
<listitem
><para
>A distribuição de &Linux; <ulink url="https://getfedora.org/"
>Fedora</ulink
> precisa de ter instalado o pacote <literal
>xorg-x11-xinit-session</literal
> para o suporte personalizado de sessões do <literal
>xsession</literal
>.</para
></listitem>

<listitem
><para
>As distribuições de &Linux; <ulink url="https://www.debian.org/"
>Debian</ulink
> e derivadas deverão suportar as autenticações personalizadas com o <literal
>xsession</literal
>, mas precisam que defina a opção <option
><userinput
>allow-user-xsession</userinput
></option
> no ficheiro <filename
>/etc/X11/Xsession.options</filename
>. Veja também a documentação da Debian sobre <ulink url="https://www.debian.org/doc/manuals/debian-reference/ch07.en.html#_customizing_the_x_session_classic_method"
>como personalizar a sessão de X.</ulink
></para
></listitem>

<listitem
><para
>Para as outras distribuições, vá a <xref linkend="xsession-manual-setup"/>.</para
></listitem>
</itemizedlist>

</sect3>

<sect3 id="xsession-manual-setup">
<title
>Adicionar manualmente o suporte para a 'xession'</title>

<para
>Se não existirem instruções específicas para a sua distribuição em <xref linkend="xsession-distribution-setup"/>, poderá adicionar manualmente um  item de <quote
>Sessão personalizada do xsession</quote
>  na lista de tipos de sessões da sua distribuição da seguinte forma:</para>

<procedure id="proc-adding-xsession-type">
<title
>Adicionar um tipo de sessão no .xsession.</title>

<note
><para
>Este procedimento irá necessitar de privilégios de administração para terminar. </para
></note>

<step performance="required">
<para
>Crie o ficheiro <filename
>/usr/share/xsessions/kdesrc-build.desktop</filename
>.</para>
</step>

<step performance="required">
<para
>Garanta que o ficheiro acabado de criar tem o seguinte texto:</para>
<literallayout
><userinput>
Type=XSession
Exec=<co id="session-homedir"/><replaceable
>$HOME</replaceable
>/.xsession
Name=Área de Trabalho Plasma do KDE (instável; kdesrc-build)
</userinput
></literallayout>

<calloutlist>
<callout arearefs="session-homedir"
><para
>O item <replaceable
>$HOME</replaceable
> deverá ser substituído pela localização absoluta da sua pasta pessoal (por exemplo, <filename class="directory"
>/home/<replaceable
>utilizador</replaceable
></filename
>). A definição de itens 'desktop' não  permite ficheiros genéricos para os utilizadores. </para
></callout>

</calloutlist>
</step>

<step performance="optional"
><para
>Quando o gestor de autenticação é reiniciado, deverá mostrar um novo tipo de sessão, o <quote
>Área de Trabalho Plasma do KDE (instável; kdesrc-build)</quote
> na sua lista de sessões, que deverá então tentar executar o ficheiro <filename
>.xsession</filename
> instalado pelo &kdesrc-build;, caso o tenha seleccionado na sua autenticação.</para>

<note
><para
>Poderá ser mais simples reiniciar o computador para reiniciar o gestor de autenticação, caso este não acompanhar as actualizações na pasta <filename class="directory"
>/usr/share/xsessions</filename
>.</para
></note>

</step>

</procedure>

</sect3>

</sect2>

<sect2 id="old-profile-instructions">
<title
>Configurar manualmente o ambiente</title>
<para
>Esta documentação costumava incluir instruções sobre as variáveis de ambiente a definir para carregar o novo ambiente de trabalho. Estas instruções foram movidas para um apêndice (<xref linkend="old-profile-setup"/>).</para>

<para
>Se pretender configurar o  seu próprio suporte para autenticações, poderá consultar esse apêndice ou ver o ficheiro <filename
>sample-kde-env-master.sh</filename
>, que vem incluído com o código do &kdesrc-build;.</para>

</sect2>

</sect1>

</chapter>

<chapter id="features">
<title
>Funcionalidades do Programa</title>

<sect1 id="features-overview">
<title
>Introdução às Funcionalidades</title>

<para
>As funcionalidades do &kdesrc-build; incluem: </para>

<itemizedlist>

<listitem
><para
>Poderá <quote
>fingir</quote
> efectuar as operações. Se passar a opção <option
>--pretend</option
> ou <option
>-p</option
> na linha de comandos, o programa dar-lhe-á uma descrição mais extensiva dos comandos que estará prestes a executar, sem os executar de facto. Contudo, se nunca tiver executado antes o &kdesrc-build; antes, deverá querer executar o comando <command
>kdesrc-build <option
><link linkend="cmdline-metadata-only"
>--metadata-only</link
></option
></command
> primeiro para a opção <option
>--pretend</option
> funcionar. <tip
><para
>Para uma descrição ainda mais detalhada do que o &kdesrc-build; está a fazer, tente usar a opção <option
>--debug</option
>. </para
></tip>

</para
></listitem>

<listitem
><para
>O &kdesrc-build; pode, com o servidor de FTP do &kde;, permitir extracções rápidas de alguns módulos. Se o módulo que estiver a extrair já tiver um pacote equivalente na página Web, então o &kdesrc-build; irá transferir essa imagem e prepará-la para o seu computador. </para>

<tip
><para
>Normalmente não existe necessidade de qualquer preparação para a extracção inicial de um módulo do Git, dado que é necessário transferir o repositório do Git inteiro, de qualquer forma, pelo que é simples para o servidor determinar o que deve enviar.</para
></tip>

<para
>Isto é mais rápido para si, e ajuda a libertar alguma carga nos servidores anónimos de &subversion; do kde.org.</para>
</listitem>

<listitem
><para
>Outra melhoria de performance é conseguida ao iniciar o processo de compilação de um módulo assim que o código-fonte desse módulo tenha sido transferido. (Disponível desde a versão 1.6) </para
></listitem>

<listitem
><para
>Um excelente suporte para compilar a biblioteca &Qt; (no caso de o ambiente do &kde; que está a tentar compilar depender de uma versão recente do &Qt; que não esteja disponível na sua distribuição). </para
></listitem>

<listitem
><para
>O &kdesrc-build; não necessita de uma <acronym
>GUI</acronym
> presente para funcionar. Por isso, poderá compilar o &kde; sem necessitar de um ambiente gráfico alternativo. </para
></listitem>

<listitem
><para
>Suporta a definição de opções por omissão para todos os módulos (como as opções de  compilação ou de configuração). Essas opções também poderão ser modificadas normalmente para módulos específicos.</para>

<para
>Do mesmo modo, o &kdesrc-build; irá <link linkend="kdesrc-build-std-flags"
>adicionar opções normais</link
>, como for apropriado, para lhe poupar trabalho e alguns erros possíveis, definindo-as você mesmo. </para
></listitem>

<listitem
><para
>O &kdesrc-build; poderá transferir uma <link linkend="using-branches"
>marca ou ramificação específica</link
> de um módulo. Poderá também garantir que é usada uma <link linkend="conf-revision"
>versão</link
> específica em vez de um módulo. </para
></listitem>

<listitem
><para
>O &kdesrc-build; poderá mudar automaticamente a pasta de origem para transferir a partir de um repositório, ramificação ou marca diferentes. Isto acontece automaticamente quando mudar alguma opção que altere o &url; do repositório, se bem que deva usar a opção <link linkend="cmdline-src-only"
>--src-only</link
> para deixar que o &kdesrc-build; saiba que é aceitável efectuar a mudança. </para
></listitem>

<listitem
><para
>O &kdesrc-build; pode <link linkend="partial-builds"
>obter apenas partes de um módulo</link
>, naquelas situações em que só necessita de um programa de um módulo grande. </para
></listitem>

<listitem
><para
>Para os programadores: O &kdesrc-build; <link linkend="ssh-agent-reminder"
>recordá-lo-á</link
> se usar o svn+ssh:// mas o <application
>ssh-agent</application
> não estiver a correr, dado que isso irá levar a pedidos de senha repetidos do &ssh;. </para
></listitem>

<listitem
><para
>Pode <link linkend="deleting-build-dir"
>remover a pasta de compilação</link
> de um módulo, após a sua instalação, para poupar espaço, em detrimento de um maior tempo de compilação. </para
></listitem>

<listitem
><para
>Os locais das pastas usadas pelo &kdesrc-build; são configuráveis (mesmo por módulo). </para
></listitem>

<listitem
><para
>Pode usar o &sudo; ou um comando definido pelo utilizador para <link linkend="root-installation"
>instalar os módulos</link
>, para que o &kdesrc-build; não necessite de ser executado como super-utilizador. </para
></listitem>

<listitem
><para
>O &kdesrc-build; executa-se <link linkend="build-priority"
>com prioridade reduzida</link
>, por omissão, para lhe permitir usar à mesma o seu computador, enquanto o &kdesrc-build; estiver a funcionar. </para
></listitem>

<listitem
><para
>Tem suporte para usar as <link linkend="using-branches"
>marcas e ramificações</link
> do &kde;. </para
></listitem>

<listitem
><para
>Existe o suporte para <link linkend="resuming"
>prosseguir com uma compilação</link
> de um dado módulo. Pode até <link linkend="ignoring-modules"
>ignorar alguns módulos</link
> temporariamente para uma dada compilação. </para
></listitem>

<listitem
><para
>O &kdesrc-build; irá mostrar o <link linkend="build-progress"
>progresso da sua compilação</link
> ao usar o &cmake;, e irá medir sempre o tempo do processo de compilação, para que saiba no fim quanto tempo levou de facto. </para
></listitem>

<listitem
><para
>Vem incorporado com um conjunto seguro de opções predefinidas, apropriadas para compilar uma instalação mono-utilizador de base do &kde; a partir do repositório de código-fonte anónimo. </para
></listitem>

<listitem
><para
>Expansão do til (~) para as suas opções de configuração. Por exemplo, poderá indicar: <programlisting
>qtdir ~/kdesrc/build/qt</programlisting>
</para
></listitem>

<listitem
><para
>Configura automaticamente um sistema de compilação, onde a pasta de código não é a mesma que a pasta de compilação, para que mantenha as suas pastas de origem limpas. </para
></listitem>

<listitem
><para
>Poderá indicar as opções globais a aplicar a todos os módulos a obter, assim como poderá indicar opções para se aplicar aos módulos individuais. </para
></listitem>

<listitem
><para
>Pode forçar compilações completas do zero, caso execute o &kdesrc-build; com a opção <option
>--refresh-build</option
>. </para
></listitem>

<listitem
><para
>Poderá indicar vários valores de ambiente a usar durante a compilação, incluindo o <envar
>KDEDIR</envar
>, o <envar
>QTDIR</envar
>, o <envar
>DO_NOT_COMPILE</envar
> e o <envar
>CXXFLAGS</envar
>. </para
></listitem>

<listitem
><para
>Registo dos comandos. Os ficheiros de registo são datados e numerados, para que tenha sempre um relatório de execução de um programa. Do mesmo modo, é criada uma ligação simbólica 'latest' para apontar sempre para o item de registo mais recente na pasta respectiva. </para
></listitem>

<listitem
><para
>Poderá obter apenas uma parte de um módulo do &kde; no &subversion;. Por exemplo, poderá obter apenas a biblioteca <application
>taglib</application
> do <application
>kdesupport</application
>. </para
></listitem>

</itemizedlist>

</sect1>

<sect1 id="kdesrc-build-logging">
<title
>Registo de compilação do &kdesrc-build;</title>

<sect2 id="logging-overview">
<title
>Introdução ao registo</title>

<para
>O registo é uma funcionalidade do &kdesrc-build; que consiste no facto do resultado de todos os comandos que o &kdesrc-build; executa serem gravados num ficheiro para serem posteriormente examinados, se necessário. Isto é feito, porque muitas vezes é necessário ter o resultado destes programas quando houver um erro de compilação, dado que poderão existir várias razões para a compilação falhar, em primeiro lugar.</para>

<sect3 id="log-directory-layout">
<title
>Disposição da pasta de registo</title>

<para
>Os registos são sempre gravados sob a pasta de registo. O destino da pasta em questão é controlado pela opção <link linkend="conf-log-dir"
>log-dir</link
>, que é por omissão igual a <filename class="directory"
><symbol
>${source-dir}</symbol
>/log</filename
> (onde o <symbol
>${source-dir}</symbol
> é o valor da opção <link linkend="conf-source-dir"
>source-dir</link
>. No resto desta secção, este valor será referido como <symbol
>${log-dir}</symbol
>).</para>

<para
>Sob a <symbol
>${log-dir}</symbol
>, existe um conjunto de pastas, uma por cada vez que o &kdesrc-build; foi executado. Cada pasta tem como nome a data e o número da execução. Por exemplo, a segunda vez que o &kdesrc-build; foi executado a 26 de Maio de 2004 irá criar uma pasta chamada <filename
>2004-05-26-02</filename
>, onde o 2004-05-26 corresponde à data e o -02 é o número da execução.</para>

<para
>Por questões de conveniência, o &kdesrc-build; irá também criar uma ligação aos registos da sua última execução, chamada <filename class="directory"
>latest</filename
>. Assim, os registos da última execução mais recente do &kdesrc-build; deverão estar sempre sob a <filename class="directory"
><symbol
>${log-dir}</symbol
>/latest</filename
>. </para>

<para
>Agora, cada pasta de uma execução do &kdesrc-build; irá conter, por sua vez, um conjunto de pastas, uma por cada módulo &kde; que o &kdesrc-build; tentará compilar. Do mesmo modo, irá conter um ficheiro chamado <filename
>build-status</filename
> nessa pasta, que lhe permitirá determinar quais os módulos que compilaram bem e os que falharam.</para>

<note
><para
>Se um módulo em si tiver um sub-módulo (como o extragear/multimedia, playground/utils ou KDE/kdelibs), então, só irá existir uma disposição equivalente na pasta de registos. Por exemplo, os registos do KDE/kdelibs, após a última execução do &kdesrc-build;, irão aparecer em <filename class="directory"
><symbol
>${log-dir}</symbol
>/latest/KDE/kdelibs</filename
> e não em <filename class="directory"
><symbol
>${log-dir}</symbol
>/latest/kdelibs</filename
>. </para
></note>

<para
>Na pasta de registo de cada módulo, irá encontrar um conjunto de ficheiros para cada operação que o &kdesrc-build; efectuar. Se o &kdesrc-build; actualizar um módulo, irá ver ficheiros chamados <filename
>svn-co.log</filename
> (para um módulo extraído por completo) ou <filename
>svn-up.log</filename
> (ao actualizar um módulo que já tinha sido extraído). Se o comando <command
>configure</command
> foi executado, então será de esperar ver um ficheiro <filename
>configure.log</filename
> nessa pasta.</para>

<para
>Se ocorreu um erro, deverá ser capaz de ver uma explicação da razão num dos ficheiros. Para o ajudar a determinar qual o ficheiro que contém o erro, o &kdesrc-build; irá criar uma ligação do ficheiro que contém o erro (do tipo <filename
>build-1.log</filename
> para um ficheiro chamado <filename
>error.log</filename
>).</para>

<para
>A vantagem de tudo isto é que, para ver onde é que um ficheiro falhou na compilação, após a sua última execução do &kdesrc-build;, o ficheiro que deverá ver primeiro é o <filename
><symbol
>${log-dir}</symbol
>/latest/<replaceable
>nome-módulo</replaceable
>/error.log</filename
>. </para>

<tip
><para
>Se o ficheiro <filename
>error.log</filename
> estiver em branco (especialmente após uma instalação), então provavelmente não houve qualquer erro. Algumas das ferramentas usadas pelo sistema de compilação do &kde; irão comunicar por engano um erro quando não ocorreu nada.</para>

<para
>Do mesmo modo, alguns comandos poderão fugir ao redireccionamento do resultado do &kdesrc-build; e passar ao lado do ficheiro de registo em certas circunstâncias (normalmente ao obter o conteúdo do &subversion; da primeira vez), onde o resultado do erro, nesse caso, não está no ficheiro de registo mas sim no &konsole; ou no terminal onde executou o &kdesrc-build;.</para>
</tip>

</sect3>
</sect2>
</sect1>

</chapter>

<chapter id="kdesrc-buildrc">
<title
>Configurar o &kdesrc-build;</title>

<sect1 id="kdesrc-buildrc-overview">
<title
>Introdução à configuração do &kdesrc-build;</title>

<para
>Para usar o programa, deverá ter um ficheiro na sua pasta pessoal <filename
>.kdesrc-buildrc</filename
>, que descreve os módulos que deseja obter e compilar, assim como todas as opções ou parâmetros de configuração a usar para esses módulos. </para>

<sect2 id="kdesrc-buildrc-layout">
<title
>Formato do ficheiro de configuração</title>

<sect3 id="kdesrc-buildrc-layout-global">
<title
>Configuração global</title>

<para
>O ficheiro de configuração começa com as opções globais, indicadas da seguinte forma: </para>

<programlisting
>global
<replaceable
>nome-opção valor-opção</replaceable>
<replaceable
>[...]</replaceable>
end global
</programlisting>

</sect3>
<sect3 id="kdesrc-buildrc-layout-modules">
<title
>Configuração do módulo</title>

<para
>Segue-se então uma ou mais secções dos módulos, organizadas de uma das duas formas seguintes: </para>

<itemizedlist>
<listitem>
<programlisting
>module <replaceable
>nome-módulo</replaceable>
<replaceable
>nome-opção valor-opção</replaceable>
<replaceable
>[...]</replaceable>
end module
</programlisting>
</listitem>

<listitem>
<programlisting
>module-set <replaceable
>nome-conjunto-módulos</replaceable>
  repository <userinput
>kde-projects</userinput
> ou <userinput
><replaceable
>git://maquina.org/local/do/repositório.git</replaceable
></userinput>
  use-modules <replaceable
>nomes-módulos</replaceable>

# Também poderá definir outras opções
<replaceable
>nome-opção valor-opção</replaceable>
<replaceable
>[...]</replaceable>
end module-set
</programlisting>
</listitem>
</itemizedlist>

<important
><para
>Lembre-se que a segunda forma, os conjuntos de módulos, <emphasis
>só funciona para os módulos baseados no Git</emphasis
>.</para
></important>

<para
>Para os módulos do Subversion, o <replaceable
>nome-módulo</replaceable
> deverá ser um módulo do repositório de &subversion; do &kde; (por exemplo, o 'kdeartwork' ou o 'kde-wallpapers'), ainda que seja possível contornar isto, caso <link linkend="conf-override-url"
>indique manualmente o URL do &subversion;</link
>. </para>

<para
>Para os módulos do Git, o nome do módulo poderá ser o que desejar, desde que não seja um duplicado de outro nome de módulo qualquer na configuração. Lembre-se que a disposição das pastas de código e da compilação serão baseadas no nome d módulo, caso não use a opção <link linkend="conf-dest-dir"
>dest-dir</link
>. </para>

<para
>Contudo, para os <emphasis
>conjuntos de módulos</emphasis
> do Git, os <replaceable
>nomes-módulos</replaceable
> deverão corresponder aos módulos actuais do Git no <option
>repository</option
> escolhido. Veja as opções <link linkend="conf-git-repository-base"
>git-repository-base</link
> ou <link linkend="conf-use-modules"
>use-modules</link
> para mais informações. </para>

</sect3>

<sect3 id="kdesrc-buildrc-options-groups">
<title
>Módulos de <quote
>options</quote
></title>

<para
>Existe um tipo final de elemento do ficheiro de configuração, os grupos de <literal
>options</literal
>, que podem ser indicados sempre que um <literal
>module</literal
> ou <literal
>module-set</literal
> possa ser usado.</para>

<programlisting
>options <replaceable
>nome-módulo</replaceable>
<replaceable
>nome-opção valor-opção</replaceable>
<replaceable
>[...]</replaceable>
end options
</programlisting>

<para
>Um grupo de <literal
>options</literal
> pode ter opções definidas para ele, como na declaração de um módulo, estando associado a um módulo existente. Todas as opções definidas desta forma serão usadas para <emphasis
>substituir</emphasis
> as opções definidas para o módulo associado.</para>

<important
><para
>O nome do módulo associado <emphasis
>deve</emphasis
> corresponder ao nome indicado na declaração <literal
>options</literal
>. Tenha cuidado com os erros na escrita do nome.</para
></important>

<para
>Isto é útil para permitir declarar um <literal
>module-set</literal
> inteiro composto por vários módulos, todos com as mesmas opções, usando então os grupos de <literal
>options</literal
> para fazer alterações individuais.</para>

<para
>Os grupos <literal
>options</literal
> também se podem aplicar aos conjuntos de módulos com nome. Isto permite aos utilizadores mais experientes usarem um ficheiro de configuração comum (que inclui as declarações <literal
>module-set</literal
>) como referência de base, podendo então fazer as alterações às opções usadas por esses conjuntos de módulos nos ficheiros de configuração que usam o comando <literal
><link linkend="kdesrc-buildrc-including"
>include</link
></literal
> para referenciar a configuração de base.</para>

<example id="ex-options-group">
<title
>Exemplo de utilização do 'options'</title>

<para
>Neste exemplo optámos por compilar todos os módulos do grupo de aplicações multimédia do &kde;. Contudo, queremos usar uma versão diferente da aplicação &kmix; (talvez para testar uma correcção de erros). Isto funciona da seguinte forma:</para>

<programlisting
>module-set <replaceable
>kde-multimedia-set</replaceable>
  repository <userinput
>kde-projects</userinput>
  use-modules <replaceable
>kde/kdemultimedia</replaceable>
  branch <replaceable
>master</replaceable>
end module-set

# o kmix é uma parte do grupo kde/kdemultimedia, ainda que nunca tenhamos
# nomeado o 'kmix' anteriormente, o &kdesrc-build; irá perceber a alteração.
options <replaceable
>kmix</replaceable>
  branch <replaceable
>KDE/4.12</replaceable>
end options
</programlisting>

<para
>Agora quando executar o &kdesrc-build;, todos os programas multimédia do &kde; serão compilados a partir da ramificação <quote
>master</quote
> do repositório de código, mas o &kmix; será compilado a partir da ramificação mais antiga <quote
>KDE/4.12</quote
>. Ao usar o <literal
>options</literal
>, não teve de listar individualmente todos os <emphasis
>outros</emphasis
> programas multimédia do &kde; para lhes dar a opção de ramificação correcta.</para>

</example>

<note>
<para
>De notar que esta funcionalidade só está disponível a partir da versão 1.16 do &kdesrc-build; ou da versão em desenvolvimento do &kdesrc-build; após a data de 2014-01-12.</para
></note>

</sect3>

</sect2>

<sect2 id="kdesrc-buildrc-including">
<title
>Incluir outros ficheiros de configuração</title>

<para
>Dentro do ficheiro de configuração, poderá referenciar outros ficheiros, usando a instrução <literal
>include</literal
> com um ficheiro, o qual irá funcionar como se o ficheiro referenciado tivesse sido introduzido no ficheiro de configuração nesse ponto. </para>

<informalexample
><para
>Por exemplo, poderá fazer algo do género:</para>
<programlisting
>global
    include <replaceable
>~/opções-comuns-kdesrc-build</replaceable>
    # Indique as opções específicas aqui.
end global
</programlisting>
</informalexample>

<note
><para
>Se não indicar a localização completa do ficheiro a incluir, então o ficheiro será pesquisado a começar na pasta que contém o ficheiro de origem. Isto funciona também de forma recursiva.</para
></note>

</sect2>

<sect2 id="kdesrc-buildrc-common">
<title
>Opções de configuração mais usadas</title>

<para
>Segue-se uma lista ordenada alfabeticamente das opções que poderá usar. Carregue na opção para descobrir mais sobre ela. Para ver a lista de opções completa, veja em <xref linkend="conf-options-table"/>. </para>

<itemizedlist>
<listitem
><para
><link linkend="conf-cmake-options"
>cmake-options</link
> para definir as opções com que um módulo poderá ser configurado com o &cmake;.</para
></listitem>
<listitem
><para
><link linkend="conf-branch"
>branch</link
>, para obter uma dada ramificação, em vez da '/trunk' (para o &subversion;) ou do <literal
>master</literal
> (para o Git).</para
></listitem>
<listitem
><para
><link linkend="conf-configure-flags"
>configure-flags</link
> para definir as opções com que será configurado o &Qt;.</para
></listitem>
<listitem
><para
><link linkend="conf-kdedir"
>kdedir</link
>, para indicar a pasta onde o &kde; será instalado.</para
></listitem>
<listitem
><para
><link linkend="conf-make-options"
>make-options</link
>, para passar opções ao programa &make; (como o número de CPU's a usar).</para
></listitem>
<listitem
><para
><link linkend="conf-qtdir"
>qtdir</link
>, para definir a localização do &Qt;.</para
></listitem>
<listitem
><para
><link linkend="conf-source-dir"
>source-dir</link
>, para mudar o local onde colocar o código transferido.</para
></listitem>
</itemizedlist>

</sect2>
</sect1>
<sect1 id="conf-options-table">
<title
>Tabela com as opções de configuração disponíveis</title>

<para
>Aqui está uma tabela com as várias opções, contendo a seguinte informação:</para>

<itemizedlist>

<listitem
><para
>O nome da opção</para
></listitem>

<listitem
><para
>Um descrição de como responde o &kdesrc-build; se a opção for definida tanto na secção global como na secção do módulo do <link linkend="configure-data"
>ficheiro de configuração</link
> ao compilar um módulo.</para
></listitem>

<listitem
><para
>Comentários especiais sobre o objectivo e utilização da opção.</para
></listitem>

</itemizedlist>

<table id="option-table">
<title
>Tabela de Opções</title>
<tgroup cols="3">

<thead>
<row>
<entry
>Nome da Opção</entry>
<entry
>Comportamento do Módulo -&gt; Global</entry>
<entry
>Notas</entry>
</row>
</thead>

<tbody>

<row>
<entry
>apidox</entry>
<entry
></entry>
<entry
><para
>Esta opção foi usada para permitir compilar a documentação da API do módulo do KDE. Ela foi removida do &kdesrc-build; 1.6.3 devido a não ser suportada no KDE 4. A documentação 'online' da API está disponível em <ulink url="https://api.kde.org/"
>kde.org</ulink
>. Para além disso, é possível compilar a documentação da API do KDE 4 com um programa que vem incluído no módulo 'kde-dev-scripts'. Veja o <ulink url="https://techbase.kde.org/Development/Tools/apidox"
>TechBase do KDE</ulink
> para mais detalhes.</para>
</entry>
</row>

<row>
<entry
>apply-qt-patches</entry>
<entry
></entry>
<entry
>Esta opção foi removida no kdesrc-build 1.10. Para obter o mesmo efeito, veja o <xref linkend="using-qt"/> e a opção <link linkend="conf-repository"
>repository</link
>.</entry>
</row>

<row id="conf-async">
<entry
>async</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
><para
>Esta opção activa o modo assíncrono da operação, onde a actualização do código-fonte e o processo de compilação serão efectuados em paralelo, em vez de esperar por todas as actualizações de código-fonte antes do início do processo de compilação. Esta opção está activa por omissão para o modo assíncrono. Para a desactivar, defina esta opção como <userinput
>false</userinput
></para>
<para
>Esta opção está disponível desde a versão 1.6.</para
></entry>
</row>

<row id="conf-binpath">
<entry
>binpath</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Active esta opção para modificar a variável de ambiente PATH durante a compilação. Não poderá sobrepor esta opção numa opção do módulo. O valor por omissão é a $<envar
>PATH</envar
>. Esta variável de ambiente deverá incluir os locais, separados por dois-pontos das suas ferramentas de desenvolvimento. Os locais <filename class="directory"
>$<envar
>KDEDIR</envar
>/bin</filename
> e <filename class="directory"
>$<envar
>QTDIR</envar
>/bin</filename
> são adicionados automaticamente. Poderá usar o til (~) para os locais que adicionar com esta opção.</para>
</entry>
</row>

<row id="conf-branch">
<entry
>branch</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Altere esta opção para obter uma ramificação do &kde;, em vez do valor por omissão <replaceable
>master</replaceable
> (para os módulos de &git;) ou o <replaceable
>trunk</replaceable
> (para o &subversion;), onde o desenvolvimento do &kde; está em curso.</para>

<para
>Por exemplo, para obter a versão 4.6 do &kde;, iria configurar esta opção como <replaceable
>4.6</replaceable
>.</para>

<para
>Se o &kdesrc-build; não conseguir obter adequadamente uma ramificação com esta opção, poderá ter de indicar manualmente o &url; de onde transferir, com as opções <link linkend="conf-module-base-path"
>module-base-path</link
> ou <link linkend="conf-override-url"
>override-url</link
>.</para>

<note
><para
>Para a maioria dos módulos do &kde;, provavelmente irá querer usar a opção <link linkend="conf-branch-group"
>branch-group</link
> em alternativa, usando esta opção para excepções pontuais.</para
></note>

</entry>
</row>

<row id="conf-branch-group">
<entry
>branch-group</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry>

<para
>Configure esta opção para um grupo geral de onde deseja escolher os módulos.</para>

<para
>Para os tipos de módulos do &git; suportados, o &kdesrc-build; irá determinar a ramificação actual a usar automaticamente, com base nas regras codificadas pelos programadores do &kde; (estas regras poderão ser vistas no repositório de código <literal
>kde-build-metadata</literal
> da sua pasta de código). Depois de determinar uma ramificação, essa será usada como se a tivesse indicado você mesmo com a opção <link linkend="conf-branch"
>branch</link
>. </para>

<para
>Isto é útil se estiver apenas a tentar manter-se actualizado sobre algum trajecto normal de desenvolvimento, sem ter de prestar atenção a todas as mudanças de nomes das ramificações.</para>

<para
>Os grupos de ramificações actuais (em 2013-08-11) são:</para>

<itemizedlist>

<listitem
><para
><literal
>stable-qt4</literal
>, para seguir as correcções de erros das bibliotecas e aplicações do &kde;, baseado no &Qt; 4.</para
></listitem>

<listitem
><para
><literal
>stable-qt4</literal
>, para seguir o desenvolvimento e as novas funcionalidades das bibliotecas e aplicações do &kde;, baseado no &Qt; 4.</para
></listitem>

<listitem
><para
><literal
>kf5-qt5</literal
>, para seguir o desenvolvimento <quote
>na crista da onda</quote
> para as próximas plataformas do &kde; 5, baseadas no &Qt; 5, a Área de Trabalho &plasma; 2, &etc;</para
></listitem>

</itemizedlist>

<para
>Lembre-se que, se escolher <emphasis
>de facto</emphasis
> um <literal
>branch</literal
> você mesmo, isto irá substituir esta opção. O mesmo também se aplica para outras opções de selecção da ramificação, como a <link linkend="conf-tag"
>tag</link
>.</para>

<para
>Esta opção foi adicionada no &kdesrc-build; 1.16-pre2.</para>

<note
><para
>Esta opção aplica-se apenas aos módulos de &git; do <literal
>kde-projects</literal
> (o caso comum). Veja também em <xref linkend="kde-projects-module-sets"/>. </para
></note>

</entry>
</row>

<row id="conf-build-dir">
<entry
>build-dir</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
>Use esta opção para mudar a pasta que contém o código compilado. Existem três formas diferentes de o usar: <itemizedlist
> <listitem
><para
>Relativa à pasta de código do &kde; no &subversion; (ver a <link linkend="conf-source-dir"
>opção 'source-dir'</link
>). Esta é a opção predefinida e este modo fica seleccionado se escrever o nome de uma pasta que não comece por um til (~) ou uma barra (/).</para
> <para
>O valor por omissão é <filename class="directory"
>build</filename
>.</para
></listitem
> <listitem
><para
>Um local absoluto. Se indicar um local que comece por um /, então será usado esse local directamente. Por exemplo, o <filename class="directory"
>/tmp/kde-obj-dir/</filename
>.</para
></listitem
> <listitem
><para
>Relativo à sua pasta pessoal. Se indicar uma pasta que comece com um '~', então o local será usado em relação à sua pasta pessoal, de forma semelhante à expansão do til da linha de comandos. Por exemplo, o <filename class="directory"
>~/builddir</filename
>.</para
></listitem
> </itemizedlist
> Talvez de forma surpreendente, esta opção poderá alterada por módulo. </entry>
</row>

<row id="conf-build-when-unchanged">
<entry
>build-when-unchanged</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Use esta opção para controlar se o &kdesrc-build; irá tentar sempre compilar um módulo que ainda não tenha quaisquer actualizações do código-fonte.</para>

<para
>Ao configurar o <option
>build-when-unchanged</option
> como <userinput
>true</userinput
> (verdadeiro), o &kdesrc-build; irá tentar sempre a fase de compilação para um módulo, mesmo que este não tenha tido quaisquer actualizações do código-fonte. Esta é a opção por omissão, dado que é a que leva mais provavelmente a uma compilação correcta.</para>

<para
>Ao configurar o <option
>build-when-unchanged</option
> como <userinput
>false</userinput
> (falso), o &kdesrc-build; só irá tentar executar a fase de compilação para um módulo, caso este tenha tido uma actualização do código-fonte ou noutras situações em que seja realmente necessária uma compilação de novo. Isto poderá poupar tempo, especialmente se você executa o &kdesrc-build; diariamente ou ainda com mais frequência.</para>

<important
><para
>Esta funcionalidade é oferecida apenas como uma optimização. Como todas as optimizações, existem compromissos face à correcção da sua instalação. Por exemplo, as alterações nos módulo 'qt' ou 'kdelibs' poderão provocar uma recompilação necessária de outros módulos, mesmo que o código-fonte não tenha sido de todo alterado.</para
></important>
</entry>
</row>

<row id="conf-checkout-only">
<entry
>checkout-only</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Altere esta opção para obter o código do &subversion; passo-a-passo. O valor desta opção deverá ser uma lista separada por espaços das pastas a transferir. Ainda que esta opção se sobreponha à global, tenha em atenção que esta opção, como global, não faz sentido. </para>

<para
>Lembre-se que esta opção não fará efeito nos módulos do &git;, devido ao modo de operação do sistema de controlo de código &git;.</para>

<para
>Veja um exemplo em <xref linkend="checking-out-parts"/>.</para
></entry>
</row>

<row id="conf-cmake-options">
<entry
>cmake-options</entry>
<entry
>Adiciona às opções globais para o sistema de compilação predefinido; substitui as globais para outros sistemas de compilação.</entry>
<entry
><para
>Use esta opção para indicar quais as opções a passar ao &cmake; quando criar o sistema de compilação do módulo. Quando isto é usado como uma opção global, é aplicada a todos os módulos onde este programa se compila. Quando é usado como uma opção de um módulo, é adicionada ao fim das opções globais. Isto permite-lhe definir opções comuns do &cmake; na secção global.</para>

<para
>Esta opção não se aplica ao 'qt' (que não usa o &cmake;). Use o <link linkend="conf-configure-flags"
>configure-flags</link
> em alternativa.</para>

<para
>Dado que estas opções são passadas directamente à linha de comandos do &cmake;, deverão ser indicados como seriam passados no &cmake;. Por exemplo:</para>

<screen
>cmake-options -DCMAKE_BUILD_TYPE=RelWithDebInfo
</screen>

<para
>Dado que isto é muito trabalhoso, o &kdesrc-build; faz tudo para que as restantes opções são definidas correctamente, pelo que poderá deixar esta opção em branco. (Por outras palavras, os parâmetros <emphasis
>obrigatórios</emphasis
> do &cmake; são definidos para si automaticamente)</para
></entry>
</row>

<row id="conf-colorful-output">
<entry
>colorful-output</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
>Configure esta opção como <userinput
>false</userinput
> para desactivar o resultado colorido do &kdesrc-build;. Por omissão é <replaceable
>true</replaceable
>. Lembre-se que o &kdesrc-build; não irá mostrar os códigos de cores em nada que não seja um terminal (como o 'xterm', o &konsole; ou a consola normal do &Linux;). </entry>
</row>

<row id="conf-configure-flags">
<entry
>configure-flags</entry>
<entry
>Adiciona às opções globais para o sistema de compilação predefinido; substitui as globais para outros sistemas de compilação.</entry>
<entry
><para
>Use esta opção para indicar quais as opções a passar ao './configure' quando criar o sistema de compilação do módulo. Quando isto é usado como uma opção global, é aplicada a todos os módulos onde este programa se compila. <emphasis
>Esta opção só funciona para o 'qt'.</emphasis
></para>

<para
>Para mudar a configuração para os módulos do KDE 4, veja o <link linkend="conf-cmake-options"
>cmake-options</link
>. </para>
</entry>
</row>

<row id="conf-custom-build-command">
<entry
>custom-build-command</entry>
<entry
>A configuração do módulo sobrepõe-se à global (opção do sistema de compilação)</entry>
<entry>
    <para
>Esta opção pode ser usada para definir um comando diferente (que não o <command
>make</command
>, por exemplo) para efectuar o processo de compilação. O &kdesrc-build; deverá fazer a coisa certa, de um modo geral. Contudo, poderá ser útil usar sistemas de compilação alternativos. </para>

    <para
>O valor desta opção é usado como a linha de comandos a executar, modificado pela opção <link linkend="conf-make-options"
>make-options</link
> como de costume. </para>
</entry>
</row>

<row id="conf-cxxflags">
<entry
>cxxflags</entry>
<entry
>Adiciona às opções globais para o sistema de compilação predefinido; substitui as globais para outros sistemas de compilação.</entry>
<entry
><para
>Use esta opção para definir as opções que serão usadas para compilar o módulo. Esta opção é definida aqui em vez de ser com o <link linkend="conf-configure-flags"
>configure-flags</link
> ou o <link linkend="conf-cmake-options"
>cmake-options</link
>, dado que esta opção irá também definir a variável de ambiente <envar
>CXXFLAGS</envar
> durante o processo de compilação.</para>

<para
>Lembre-se que, para o &kde; 4 e para os outros módulos que usam o &cmake;, é necessário definir a opção CMAKE_BUILD_TYPE como sendo <userinput
>none</userinput
> ao configurar o módulo. Isto pode ser feito com a opção <link linkend="conf-cmake-options"
>cmake-options</link
>. </para>
</entry>
</row>

<row id="conf-dest-dir">
<entry
>dest-dir</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
>Use esta opção para mudar o nome de um módulo no disco. Por exemplo, se o seu módulo era 'extragear/network', pode mudá-lo para 'extragear-network' com esta opção. Repare que, ainda que isto mude o nome do módulo no disco, não é uma boa ideia incluir pastas ou separadores de pastas no nome, dado que isso irá interferir com as opções <link linkend="conf-build-dir"
>build-dir</link
> ou <link linkend="conf-source-dir"
>source-dir</link
>. </entry>
</row>

<row id="conf-disable-agent-check">
<entry
>disable-agent-check</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
>Normalmente, se estiver a usar o &ssh; para obter o código do &subversion; (se, por exemplo, estiver a usar o protocolo 'svn+ssh'), o &kdesrc-build; irá tentar certificar-se que, se estiver a usar o 'ssh-agent', ele está de facto a gerir algumas identidades do &ssh;. Isto é para tentar e evitar que o &ssh; pergunte a sua frase-senha para todos os módulos. Poderá desactivar esta opção se activar a opção <option
>disable-agent-check</option
> como <userinput
>true</userinput
>. </entry>
</row>

<row id="conf-do-not-compile">
<entry
>do-not-compile</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Use esta opção para seleccionar um conjunto específico de pastas a compilar num módulo (em vez de serem todas). As pastas a compilar deverão estar separadas por espaços.</para>

<para
>Lembre-se que o código dos programas será à mesma transferido. Poderá usar a instrução <link linkend="conf-checkout-only"
>checkout-only</link
> para escolher as pastas que deseja obter.</para>

<para
>Por exemplo, para manter o &juk; e o &kscd; no módulo 'kdemultimedia' sem serem compilados, poderá adicionar "do-not-compile juk kscd" no seu módulo 'kdemultimedia'.</para>

<para
>Veja um exemplo em <xref linkend="not-compiling"/>.</para>
</entry>
</row>

<row id="conf-email-address">
<entry
>email-address</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry>
<para
>Esta opção foi removida no &kdesrc-build; 1.14. </para>
</entry>
</row>

<row id="conf-email-on-compile-error">
<entry
>email-on-compile-error</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry>
<para
>Esta opção foi removida no &kdesrc-build; 1.14. </para>
</entry>
</row>

<row>
<entry
>inst-apps</entry>
<entry
></entry>
<entry
>Esta opção foi removida na versão 1.10 </entry>
</row>

<row id="conf-git-desired-protocol">
<entry
>git-desired-protocol</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
><para
>Esta opção só se aplica aos módulos de um repositório do <link linkend="kde-projects-module-sets"
>projecto &kde;</link
>.</para>

<para
>O que esta opção faz de facto é configurar qual o protocolo de rede preferido ao actualizar o código-fonte para esses módulos. Normalmente, é usado o protocolo eficiente <literal
>git</literal
>, mas este poderá estar bloqueado em algumas redes (p.ex., redes internas empresariais, redes Wi-Fi públicas). Um protocolo alternativo e muito melhor suportado é o protocolo <literal
>HTTP</literal
>, usado nas páginas Web da Internet.</para>

<para
>Se estiver a usar uma dessas redes restritas, poderá configurar esta opção como <userinput
>http</userinput
> para preferir as comunicações por <literal
>HTTP</literal
> em alternativa.</para>

<tip
><para
>Poderá também necessitar da opção <link linkend="conf-http-proxy"
>http-proxy</link
> se for necessário um 'proxy' de HTTP também para o tráfego de rede.</para
></tip>

<para
>Em qualquer outra situação, não deverá definir esta opção, dado que o protocolo predefinido é mais eficiente.</para>

<para
>Esta opção foi adicionada no &kdesrc-build; 1.16.</para>
</entry>
</row>

<row id="conf-git-repository-base">
<entry
>git-repository-base</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
><para
>Esta opção, adicionada na versão 1.12.1, é usada para criar um nome curto que referencia o URL de base de um dado repositório de Git, no caso das declarações de <link linkend="module-sets"
>conjuntos de módulos</link
>, o qual é útil para declarar rapidamente diversos módulos do Git para compilar.</para>

<para
>Deverá indicar duas coisas (separadas por espaço): O nome a atribuir ao URL de base e o URL de base propriamente dito. Por exemplo:</para>

<para>
<informalexample>
<programlisting
>global
   # outras opções

   # Este é o local comum a todos os módulos anónimos do servidor Git.
   git-repository-base <replaceable
>kde-git</replaceable
> <replaceable
>kde:</replaceable>
end global

# Declarações dos módulos

module-set
   # Agora poderá usar o nome alternativo que definiu antes, mas <emphasis
>somente</emphasis>
   # num conjunto de módulos.
   repository <replaceable
>kde-git</replaceable>

   <link linkend="conf-use-modules"
>use-modules</link
> <replaceable
>modulo1.git</replaceable
> <replaceable
>modulo2.git</replaceable>
end module-set
</programlisting>
</informalexample>
</para>

<para
>A opção <literal
>use-modules</literal
> do conjunto de módulos criou dois módulos a nível interno, com o &kdesrc-build; a comportar-se como se tivesse lido:</para>

<programlisting
>module modulo1
    repository kde:<replaceable
>modulo1.git</replaceable>
end module

module modulo2
    repository kde:<replaceable
>modulo2.git</replaceable>
end module
</programlisting>

<para
>O prefixo do repositório &git; <literal
>kde:</literal
>, usado acima, é um atalho que será configurado automaticamente pelo &kdesrc-build;. Veja o artigo sobre a <ulink url="https://techbase.kde.org/Development/Git/Configuration#URL_Renaming"
>Mudança de Nomes dos URL's</ulink
> da TechBase para mais informações. Lembre-se que, ao contrário da maioria das opções, esta pode ser indicada várias vezes, de modo a criar o máximo de nomes alternativos necessários.</para>

<tip
><para
>Não é necessário usar esta opção para tirar partido de um conjunto de módulos, esta opção existe para simplificar a utilização do mesmo repositório por vários conjuntos de módulos diferentes.</para
></tip>
</entry>
</row>

<row id="conf-git-user">
<entry
>git-user</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry>
<para
>Esta opção destina-se aos programadores do &kde;. Se estiver definida, será usada para configurar automaticamente a informação de identidade do 'software' de controlo de versões &git; para os módulos <emphasis
>recém-transferidos</emphasis
> do &git; (incluindo a grande maioria dos módulos do &kde;).</para>

<para
>De forma específica, os campos do nome e e-mail do utilizador, para cada repositório de &git; novo, são preenchidos com os valores definidos com esta opção.</para>

<para
>O valor deverá ser indicado no formato <option
><replaceable
>Nome do Utilizador</replaceable
> &lt;<replaceable
>email@exemplo.com</replaceable
>&gt;</option
>.</para>

<para>
<informalexample>
<para
>Por exemplo, um programador chamado <quote
>Zé Maria</quote
> com o endereço de e-mail <quote
>xpto@abc.xyz</quote
> iria usar:</para>

<screen
><symbol
>git-user</symbol
> <replaceable
>Zé Maria</replaceable
> &lt;<replaceable
>xpto@abc.xyz</replaceable
>&gt;
</screen>
</informalexample>
</para>

<para
>Esta opção foi introduzida no &kdesrc-build; 15.09. </para>
</entry>
</row>

<row id="conf-http-proxy">
<entry
>http-proxy</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>

<entry
><para
>Esta opção, se estiver definida, usa o URL indicado como servidor 'proxy' para usar em quaisquer comunicações de rede por HTTP (por exemplo, ao transferir as imagens dos novos módulos ou para a <link linkend="kde-projects-module-sets"
>base de dados do projecto KDE</link
>).</para>

<para
>Para além disso, o &kdesrc-build; irá tentar garantir que as ferramentas das quais depende irão também usar esse servidor 'proxy', se possível, definindo a variável de ambiente <envar
>http_proxy</envar
> com o servidor indicado, <emphasis
>se essa variável de ambiente não estiver já definida</emphasis
>.</para>

<para
>Esta opção foi introduzida no &kdesrc-build; 1.16.</para>
</entry>
</row>

<row id="conf-ignore-kde-structure">
<entry
>ignore-kde-structure</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Esta opção é usada para guardar os ficheiros de código e de compilação directamente no nome do módulo. Por exemplo, o <literal
>source/extragear/network/telepathy/ktp-text-ui</literal
> torna-se <literal
>source/ktp-text-ui</literal
>. Esta opção está desactivada por omissão. Se quiser activá-la, terá de a configurar como <userinput
>true</userinput
>.</para>

<para
>Esta opção foi introduzida no &kdesrc-build; 1.16.</para>
</entry>
</row>

<row id="conf-ignore-modules">
<entry
>ignore-modules</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
><para
>Os módulos indicados com esta opção, que deveriam ser escolhidos pelo &kdesrc-build; com uma opção <link linkend="conf-use-modules"
>use-modules</link
>, são assim excluídos por completo. Use esta opção quando quiser compilar um agrupamento de projectos <link linkend="kde-projects-module-sets"
>kde-projects</link
> inteiro, <emphasis
>exceptuando</emphasis
> alguns módulos específicos.</para>

<para
>O valor da opção não tem necessariamente de dar o nome directamente ao módulo. Qualquer módulo que tenha partes consecutivas completas da <link linkend="kde-projects-module-sets"
>localização do módulo nos projectos do &kde;</link
> que correspondam a um dos valores da opção será ignorado, pelo que poderá ignorar vários módulos desta forma.</para>

<para
>Por exemplo, um valor de opção <replaceable
>libs</replaceable
> iria resultar na exclusão tanto do <symbol
>kde/kdegraphics/libs</symbol
> como do <symbol
>playground/libs</symbol
> (ainda que não o <symbol
>kde/kdelibs</symbol
>, dado que a parte completa <quote
>kdelibs</quote
> é que é comparada).</para>

<tip
><para
>Veja também o <xref linkend="example-ignoring-a-module"/>.</para
></tip>

<para
>Esta opção foi introduzida no &kdesrc-build; 1.16.</para>
</entry>
</row>

<row id="conf-include-dependencies">
<entry
>include-dependencies</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry>
<para
>Esta opção, quando configurada como <userinput
>true</userinput
> (verdadeiro), pede ao &kdesrc-build; para incluir também as dependências conhecidas destes módulo na sua compilação, sem o utilizador ter de mencionar essas dependências (mesmo indirectamente).</para>

<note
><para
>Esta opção só funciona para os <link linkend="kde-projects-module-sets"
>módulos baseados no <literal
>kde-project</literal
></link
> e necessita que os meta-dados mantidos pelos programadores do &kde; estejam correctos para o seu <link linkend="conf-branch-group"
>branch-group</link
> seleccionado.</para
></note>

<para
>Esta opção está desactivada por omissão, para evitar seleccionar inadvertidamente um grupo de módulos não desejados. Foi adicionada com o &kdesrc-build; 1.16 em 2015.</para>
</entry>
</row>

<row id="conf-install-after-build">
<entry
>install-after-build</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
>Esta opção é usada para instalar o pacote depois de este ser compilado com sucesso. Esta opção está activa por omissão. Se quiser desactivá-la, terá de configurar esta opção como <userinput
>false</userinput
> no <link linkend="configure-data"
>ficheiro de configuração</link
>. Poderá também usar a opção da linha de comandos <link linkend="cmdline-no-install"
><option
>--no-install</option
></link
>. </entry>
</row>

<row id="conf-install-session-driver">
<entry
>install-session-driver</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
><para
>Por omissão, o &kdesrc-build; irá tentar instalar um controlador para o gestor  de autenticações gráfico, permitindo-lhe autenticar-se no seu ambiente de trabalho &kde; compilado pelo &kdesrc-build;.</para>

<para
>Este controlador irá alterar os seguintes ficheiros:</para>

<itemizedlist>
<listitem
><para
><filename
>~/.xsession</filename
></para
></listitem>
<listitem
><para
><filename
>$XDG_CONFIG_HOME/kde-env-master.sh</filename
> (normalmente encontrado em <filename
>~/.config/kde-env-master.sh</filename
>).</para
></listitem>
<listitem
><para
><filename
>$XDG_CONFIG_HOME/kde-env-user.sh</filename
> (normalmente encontrado em <filename
>~/.config/kde-env-user.sh</filename
>).</para
></listitem>
</itemizedlist>

<para
>Se continuar com o seu próprio controlador de autenticação, então poderá desactivar esta funcionalidade se configurar esta opção como <replaceable
>false</replaceable
>.</para>

<para
>Esta opção foi introduzida no &kdesrc-build; 1.16.</para>

<tip
><para
>O &kdesrc-build; não irá substituir os seus ficheiros existentes (se estiverem presentes) a menos que também passe a opção <option
><link linkend="cmdline-delete-my-settings"
>--delete-my-settings</link
></option
> da linha de comandos.</para
></tip>
</entry>
</row>

<row id="conf-kdedir">
<entry
>kdedir</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
>Esta opção define a pasta em que o &kde; será instalado após a compilação. Por omissão, será em <filename class="directory"
>~/kde</filename
>. Se mudar isto para uma pasta que necessite do acesso do 'root', poderá ter de ler acerca da opção <link linkend="conf-make-install-prefix"
>make-install-prefix</link
> também.</entry>
</row>

<row id="conf-kde-languages">
<entry
>kde-languages</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
><para
>Esta opção permite-lhe escolher os pacotes transferidos e instalados de traduções em conjunto com o &kde;. Poderá fazer isto se não viver nos Estados Unidos e quiser o &kde; traduzido para a sua língua nativa.</para>

<para
>Para usar esta opção, configure-a como uma lista separada por espaços das línguas a instalar. Cada língua tem um código associado a ele, o qual poderá encontrar nesta página: <ulink url="http://l10n.kde.org/teams-list.php"
>http://l10n.kde.org/teams-list.php</ulink
>. </para>

<para
>É aceitável escolher apenas uma língua. Por omissão, não é transferida nenhuma, o que significa que o &kde; irá aparecer em Inglês dos EUA.</para>

<para
>Por exemplo, para optar por instalar o Português, iria configurar a opção com algo do tipo: <userinput
><option
>kde-languages</option
> <replaceable
>pt</replaceable
></userinput
>. Terá à mesma de usar o &systemsettings; para escolher a língua Portuguesa, todavia.</para>
</entry>
</row>

<row id="conf-libpath">
<entry
>libpath</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
>Configure esta opção para definir a variável de ambiente <envar
>LD_LIBRARY_PATH</envar
>, enquanto efectua a compilação. Não poderá sobrepor esta opção num módulo. O valor por omissão está em branco, mas os locais <filename class="directory"
>$<envar
>KDEDIR</envar
>/lib</filename
> e <filename class="directory"
>$<envar
>QTDIR</envar
>/lib</filename
> são adicionados automaticamente. Poderá usar o til (~) para os locais que adicionar com esta opção. </entry>
</row>

<row id="conf-log-dir">
<entry
>log-dir</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
>Use esta opção para mudar a pasta que irá conter os ficheiros de registo gerados pelo programa. </entry>
</row>

<row id="conf-make-install-prefix">
<entry
>make-install-prefix</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
>Configure esta variável com uma lista separada por espaços, que será interpretada como um comando e as suas opções, para anteceder o comando <userinput
><command
>make</command
> <option
>install</option
></userinput
>, que é usado para instalar os módulos. Isto é útil para instalar os pacotes com o &sudo;, por exemplo, mas tenha cuidado enquanto lida com os privilégios do 'root'.</entry>
</row>

<row id="conf-make-options">
<entry
>make-options</entry>
<entry
>A configuração do módulo sobrepõe-se à global (opção do sistema de compilação)</entry>
<entry
>Configure esta variável para passar as opções da linha de comandos ao comando <command
>make</command
>. Isto é útil para programas como o <ulink url="https://github.com/distcc/distcc"
><application
>distcc</application
></ulink
> ou para os sistemas com mais que um núcleo de processamento. </entry>
</row>

<row id="conf-manual-build">
<entry
>manual-build</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
>Configure o valor da opção como <userinput
>true</userinput
> para evitar que o processo de compilação tente compilar este módulo. Será à mesma mantido actualizado ao actualizar a partir do &subversion;. Esta opção é exactamente equivalente à opção da linha de comandos <link linkend="cmdline-no-build"
><option
>--no-build</option
></link
>. </entry>
</row>

<row id="conf-manual-update">
<entry
>manual-update</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
>Configure o valor da opção como <userinput
>true</userinput
> para evitar que o processo de compilação tente actualizar (e, por conseguinte, compilar ou instalar) este módulo. Se definir esta opção para um módulo, também poderá tê-la comentada. </entry>
</row>

<row id="conf-module-base-path">
<entry
>module-base-path</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Configure esta opção para se sobrepor à pasta por omissão do &kdesrc-build; para o módulo em questão. Isto poderá ser usado, por exemplo, para usar ramificações ou marcas específicas de determinadas bibliotecas. O <ulink url="https://websvn.kde.org/"
>Visualizador de Código do &kde;</ulink
> é extremamente valioso para o ajudar a escolher o local correcto.</para>

<para
>Lembre-se que o &kdesrc-build; constrói o local final de acordo com o seguinte modelo: <varname
>$svn-server</varname
>/home/kde/<varname
>$module-base-path</varname
>/<varname
></varname
>. </para>

<para
>O valor por omissão é o <filename class="directory"
>trunk/<varname
>$módulo</varname
></filename
> ou <filename class="directory"
>trunk/KDE/<varname
>$módulo</varname
></filename
>, dependendo do nome do módulo.</para>

<tip
><para
>Use as opções <link linkend="conf-branch"
>branch</link
> ou <link linkend="conf-tag"
>tag</link
> em alternativa, sempre que forem aplicáveis. </para
></tip>
</entry>
</row>

<row id="conf-niceness">
<entry
>niceness</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
>Configure esta opção com um valor entre 20 e 0. Quanto mais alto o número, menor prioridade terá o &kdesrc-build; para si próprio, i.e., quanto maior o número, mais "simpático" (nice) será o programa. O valor por omissão é 10. </entry>
</row>

<row id="conf-no-svn">
<entry
>no-svn</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
>Se esta opção for igual a 'true', então o &kdesrc-build; não irá actualizar o código-fonte do módulo automaticamente. Irá tentar compilar o módulo à mesma, caso não o tenha já tentado anteriormente.</entry>
</row>

<row>
<entry
>no-rebuild-on-fail</entry>
<entry
></entry>
<entry
>Esta opção foi removida na versão 1.10, dado que este comportamento já não é mais útil, devido às correcções no sistema de compilação subjacente.</entry>
</row>

<row id="conf-override-build-system">
<entry
>override-build-system</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Esta é uma opção~avançada que foi adicionada no &kdesrc-build; 1.16.</para>

<para
>Normalmente o &kdesrc-build; irá detectar o sistema de compilação apropriado a usar para um dado módulo, depois de o transferir. Isto é feito ao verificar a existência de dados ficheiros na pasta de código-fonte do módulo.</para>

<para
>Alguns módulos poderão incluir mais que um conjunto de ficheiros obrigatório, o que poderia confundir a detecção automática. Nesse caso, poderá indicar manualmente o tipo de compilação correcto.</para>

<para
>Os tipos de compilação suportados actualmente que podem ser definidos são:</para>

<variablelist>
    <varlistentry>
        <term
>KDE</term>
        <listitem
><para
>Usado para compilar os módulos do &kde;. De facto, pode ser usado para compilar praticamente qualquer módulo que use o &cmake; mas é melhor não confiar nisso.</para
></listitem>
    </varlistentry>
    <varlistentry>
        <term
>Qt</term>
        <listitem
><para
>Usado para compilar a biblioteca &Qt; em si.</para
></listitem>
    </varlistentry>
    <varlistentry>
        <term
>qmake</term>
        <listitem
><para
>Usado para compilar módulos do &Qt; que usem os ficheiros <literal
>.pro</literal
> do <application
>qmake</application
>.</para
></listitem>
    </varlistentry>
    <varlistentry>
        <term
>generic</term>
        <listitem
><para
>Usado para compilar módulos que usem Makefile's simples e que não precisam de nenhuma configuração especial.</para
></listitem>
    </varlistentry>
    <varlistentry>
        <term
>autotools</term>
        <listitem
><para
>Esta é a ferramenta de configuração-padrão para a maioria das aplicações de código-aberto e que não se encaixa em nenhuma das outras categorias.</para
></listitem>
    </varlistentry>
</variablelist>

</entry>
</row>

<row id="conf-override-url">
<entry
>override-url</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
>Se configurar esta opção, o &kdesrc-build; irá usar o seu valor como o URL a passar ao &subversion;,  <emphasis
>sem qualquer alteração</emphasis
>. Deverá usar geralmente esta opção, se quiser obter uma versão específica, mas o &kdesrc-build; não conseguir descobrir o que queria dizer ao usar a opção <link linkend="conf-branch"
>branch</link
>. </entry>
</row>

<row id="conf-persistent-data-file">
<entry
>persistent-data-file</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
><para
>Use esta opção para alterar onde o &kdesrc-build; guarda os seus dados persistentes. Por omissão, guarda estes dados num ficheiro chamado <filename
>.kdesrc-build-data</filename
>, colocado na mesma pasta que o ficheiro de configuração em uso. Se tive várias configurações disponíveis na mesma pasta, poderá querer definir manualmente esta opção, para que as diferentes configurações não fiquem com dados persistentes em conflito.</para>

<para
>Esta opção foi removida no &kdesrc-build; 1.15.</para>
</entry>
</row>

<row id="conf-prefix">
<entry
>prefix</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Esta opção controla onde se irá instalar o módulo (normalmente em <option
><link linkend="conf-kdedir"
>kdedir</link
></option
>, se esta opção for usada). O uso desta opção permite-lhe instalar um módulo numa pasta diferente da pasta de instalação das bibliotecas da Plataforma do KDE; por exemplo, poderá estar a usar o &kdesrc-build; apenas para compilar as aplicações.</para>
<para
>Pode usar o <varname
>${MODULE}</varname
> ou <varname
>$MODULE</varname
> na localização para que estes valores se expandam para o nome do módulo.</para>
</entry>
</row>

<row id="conf-purge-old-logs">
<entry
>purge-old-logs</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Esta opção controla se as pastas de registo antigas são apagadas automaticamente ou não. O valor por omissão é <replaceable
>true</replaceable
> (verdadeiro).</para>
</entry>
</row>

<row id="conf-qmake-options">
<entry
>qmake-options</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>

<entry
><para
>Todas as opções aqui indicadas são passadas ao comando <command
>qmake</command
>, para os módulos que usam o sistema de compilação <symbol
>qmake</symbol
>. Por exemplo, poderá usar a opção <userinput
>PREFIX=/local/do/qt</userinput
> para substituir onde o 'qmake' instala o módulo. </para>
<para
>Esta opção foi adicionada no &kdesrc-build; 1.16.</para>
</entry>
</row>

<row id="conf-qtdir">
<entry
>qtdir</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
>Configure esta opção para definir a variável de ambiente QTDIR enquanto compila. Poderá sobrepor esta configuração numa opção de um módulo. Se não indicar esta opção, será por omissão a <filename class="directory"
><varname
>$(source-dir)</varname
>/build/qt</filename
>, que irá usar o módulo 'qt' que está incluído no repositório de código do &kde;. Poderá usar um til (~) que representa a sua pasta pessoal. </entry>
</row>

<row id="conf-remove-after-install">
<entry
>remove-after-install</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Se estiver com pouco espaço em disco, poderá querer usar esta opção para remover automaticamente a pasta de compilação (ou as pastas de compilação e de código, para instalações episódicas), após o módulo ter sido instalado com sucesso. </para>
<para
>Os valores possíveis para esta opção são: <itemizedlist>
<listitem
><para
>none - Não remove nada (Este é o valor por omissão).</para
></listitem>
<listitem
><para
>builddir - Remove a pasta de compilação, mas não o código.</para
></listitem>
<listitem
><para
>all - Remove tanto o código-fonte como a pasta de compilação.</para
></listitem>
</itemizedlist>
</para>

<para
>Lembre-se que a utilização desta opção poderá ter um grande impacto na utilização da sua largura de banda (se usar o <replaceable
>all</replaceable
>) e o tempo que dura a compilação do &kde;, dado que o &kdesrc-build; será incapaz de efectuar compilações incrementais.</para>
</entry>
</row>

<row id="conf-repository">
<entry
>repository</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Esta opção foi introduzida com a versão 1.10, e é usada para definir o repositório &git; de onde transferir o código-fonte do módulo. O &Qt; (e, por consequência, o 'qt') irão necessitar desta opção, assim como vários módulos do &kde; que estão no processo de conversão para o uso do git;.</para
></entry>
</row>

<row id="conf-revision">
<entry
>revision</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Se esta opção for configurada com um valor diferente de 0 (zero), o &kdesrc-build; irá obrigar a actualização do código a obter o módulo que tenha exactamente esse número de versão, mesmo que as opções como o <link linkend="conf-branch"
>branch</link
> estejam em efeito. Se o módulo já estiver na versão indicada, então não será mais actualizado, a menos que esta opção seja alterada ou removida da configuração.</para>

<note
><para
>Esta opção não funcionava para os módulos baseados no Git (incluindo os módulos <link linkend="kde-projects-module-sets"
>kde-projects</link
>) até à versão 1.16 do &kdesrc-build;.</para
></note>

</entry>
</row>

<row id="conf-run-tests">
<entry
>run-tests</entry>
<entry
>A configuração do módulo sobrepõe-se à global (opção do sistema de compilação)</entry>
<entry
>Se for igual a <userinput
>true</userinput
>, então o módulo será compilado com o suporte para executar o seu pacote de testes, sendo este executado como parte do processo de compilação. O &kdesrc-build; irá mostrar um relatório simples com os resultados dos testes. Isto é útil para os programadores ou para aqueles querem garantir que o seu sistema é configurado correctamente.</entry>
</row>

<row id="conf-set-env">
<entry
>set-env</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Esta opção aceita um conjunto de valores separados por espaços, onde o primeiro valor é a variável de ambiente a definir e o resto dos valores é o que deseja atribuir à sua variável. Por exemplo, para configurar a variável <envar
>RONALD</envar
> como McDonald, iria pôr este comando na secção apropriada:</para>
<screen
><command
>set-env</command
> <envar
>RONALD</envar
> <userinput
>McDonald</userinput
></screen>
<para
>Esta opção é especial, na medida em que poderá ser repetida sem sobrepor a configuração anterior do 'set-env' na mesma secção do <link linkend="configure-data"
>ficheiro de configuração</link
>. Desta forma, poderá definir mais que uma variável de ambiente por módulo (ou a nível global).</para>
</entry>
</row>

<row id="conf-source-dir">
<entry
>source-dir</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
>Esta opção é usada para definir a pasta do seu computador, onde será guardado o código-fonte do &subversion; do &kde;. Se não indicar este valor, será usado o valor por omissão <filename class="directory"
>~/kdesrc</filename
>. Se indicar de facto este valor, use um local absoluto. </entry>
</row>

<row id="conf-ssh-identity-file">
<entry
>ssh-identity-file</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry>
<para
>Defina esta opção para controlar qual o ficheiro com a chave privada de SSH que é passado ao comando <command
>ssh-add</command
> quando o &kdesrc-build; estiver a transferir código de repositórios que necessitem de autenticação. Ver também: <xref linkend="ssh-agent-reminder"/>.</para>

<para
>Esta opção foi adicionada na versão 1.14.2.</para>
</entry>
</row>

<row id="conf-stop-on-failure">
<entry
>stop-on-failure</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
>Configure o valor desta opção como <userinput
>true</userinput
> para fazer com que o programa pare a execução, após ocorrer um erro durante o processo de compilação ou instalação. Esta opção está desactivada por omissão. </entry>
</row>

<row id="conf-svn-server">
<entry
>svn-server</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Esta opção é usada para definir o servidor usado para obter o código do &subversion;. Por omissão, é usado o repositório anónimo de &subversion;, em <emphasis
>svn://anonsvn.kde.org/</emphasis
></para>
<note
><para
>Se estiver a programar para o KDE, use o repositório de &subversion;  que lhe foi fornecido quando recebeu a sua conta de programador, em vez do repositório anónimo.</para
></note>
</entry>
</row>

<row id="conf-tag">
<entry
>tag</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
><para
>Use esta opção para obter uma versão específica de um módulo.</para>
<para
><emphasis
>Nota:</emphasis
> As hipóteses serão muito boas quando <emphasis
>não quiser</emphasis
> usar esta opção. As versões do &kde; estão disponíveis em pacote comprimidos na <ulink url="https://download.kde.org/"
>página de transferências do &kde;</ulink
>.</para>

<note
><para
>Esta opção tem sido suportada apenas para os módulos baseados no Git desde o &kdesrc-build; 1.16.</para
></note>
</entry>
</row>

<row id="conf-use-clean-install">
<entry
>use-clean-install</entry>
<entry
>A configuração do módulo sobrepõe-se à global (opção do sistema de compilação)</entry>
<entry
><para
>Configure esta opção como <userinput
>true</userinput
> para que o &kdesrc-build; execute <command
>make uninstall</command
> directamente antes de executar o <command
>make install</command
>.</para>

<para
>Isto pode ser útil para garantir que não persistem ficheiros de bibliotecas antigas, meta-dados do &cmake;, etc. que possam causar problemas em instalações antigas do &kde;. Contudo, isto só funciona em sistemas de compilação que suportem o <command
>make uninstall</command
>.</para>

<para
>Esta opção foi adicionada no &kdesrc-build; 1.12, mas não estava documentada até ao &kdesrc-build; 1.16.</para>
</entry>
</row>

<row>
<entry
>use-cmake</entry>
<entry
></entry>
<entry
>Esta opção foi removida no &kdesrc-build; 1.4, dado que todos os módulos do &kde; 4 necessitam do &cmake; e a utilização do &cmake; não é permitida em mais nenhuns módulos. </entry>
</row>

<row id="conf-use-idle-io-priority">
<entry
>use-idle-io-priority</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
>Esta opção, adicionada no &kdesrc-build; 1.12, irá provocar a utilização de uma menor prioridade para o disco e para outra utilização de E/S, o que poderá melhorar significativamente a capacidade de resposta do resto do sistema, às custas de algum tempo mais alargado de execução do &kdesrc-build;. Por omissão, está desactivado; para activar a menor prioridade de disco, configure esta opção como <userinput
>true</userinput
> (verdadeira). </entry>
</row>

<row id="conf-use-modules">
<entry
>use-modules</entry>
<entry
>Só poderá usar no <link linkend="module-sets"
>module-set</link
></entry>
<entry
><para
>Esta opção, adicionada no &kdesrc-build; 1.12.1, permite-lhe indicar facilmente vários módulos diferentes para compilar ao mesmo tempo no <link linkend="kdesrc-buildrc"
>ficheiro de configuração</link
>.</para>

<para
>Esta opção <emphasis
>deverá</emphasis
> ser usada dentro de um <literal
>module-set</literal
>. Todos os identificadores passados a esta opção serão convertidos internamente para um módulo do &kdesrc-build;, com uma opção <link linkend="conf-repository"
><option
>repository</option
></link
> igual ao repositório do conjunto de módulos, em conjunto com o nome do identificador, para definir o repositório final de onde transferir os dados. Todas as outras opções que estão atribuídas no conjunto de módulos são também copiadas para os módulos gerados sem qualquer alteração.</para>

<para
>A ordem pela qual os módulos estão definidos nesta opção é importante, dado que será também a ordem com que o &kdesrc-build; irá processar os módulos gerados ao actualizar, compilar e instalar. todos os módulos definidos no conjunto indicado serão tratados antes de o &kdesrc-build; passar para o módulo seguinte após o conjunto de módulos.</para>

<para
>Se precisar de alterar as opções para um módulo gerado, basta declarar o módulo de novo após a sua definição no conjunto de módulos, definindo depois as opções que desejar. Ainda que vá alterar as opções definidas para o módulo desta forma, o módulo será à mesma actualizado e compilado pela ordem definida pelo conjunto de módulos (i.e., não poderá reordenar a sequência de compilação com isto).</para>

<important
><para
>O nome a usar para o módulo, caso o faça, é simplesmente o nome que indicou na opção <option
>use-modules</option
>, com a excepção de que será removido qualquer <literal
>.git</literal
>.</para
></important>

<para
>Veja o <xref linkend="module-sets"/> e o <link linkend="conf-git-repository-base"
>git-repository-base</link
> para obter uma descrição do seu uso e um exemplo.</para>
</entry>
</row>

<row id="conf-use-qt-builddir-hack">
<entry
>use-qt-builddir-hack</entry>
<entry
>A configuração do módulo sobrepõe-se à global</entry>
<entry
>Esta opção foi removida devido a melhorias no sistema de compilação do &Qt;. </entry>
</row>

<row id="conf-use-stable-kde">
<entry
>use-stable-kde</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry>
<para
>Esta opção está desactualizada e será removida (de novo) numa versão futura.</para>

<para
>Por favor use a opção <link linkend="conf-branch-group"
>branch-group</link
> em alternativa, que oferece mais hipóteses de escolha.</para>
</entry>
</row>

</tbody>

</tgroup>
</table>

</sect1>
</chapter>

<chapter id="cmdline">
<title
>Opções da Linha de Comandos e Variáveis de Ambiente</title>

<sect1 id="cmdline-usage">
<title
>Utilização da Linha de Comandos</title>

<para
>O &kdesrc-build; está desenhado para correr da seguinte forma:</para>

<cmdsynopsis
><command
>kdesrc-build</command
> <arg rep="repeat"
><replaceable
>--opções</replaceable
></arg
> <arg rep="repeat"
><replaceable
>módulos a compilar</replaceable
></arg
> </cmdsynopsis>

<para
>Se não indicar nenhuns módulos para compilar na linha de comandos, então o 'kdesrc-build' irá tentar compilar todos os módulos definidos no ficheiro de configuração, pela ordem indicada nesse mesmo ficheiro (ainda que isso possa ser modificado pelas várias opções do ficheiro de configuração).</para>

<sect2 id="cmdline-usage-options">
<title
>Opções da linha de comandos mais usadas</title>

<para
>A lista completa das opções da linha de comandos é apresentada em <xref linkend="supported-cmdline-params"/>. As opções mais comuns incluem:</para>

<variablelist>
  <varlistentry>
    <term
><option
>--pretend</option
> (ou <option
>-p</option
>)</term>
    <listitem
><para
>Esta opção faz com que o &kdesrc-build; indique as acções que iria efectuar, sem as executar de facto. Isto poderá ser útil para se certificar que os módulos que pensa estar a compilar o serão, de facto.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
><option
>--refresh-build</option
></term>
    <listitem
><para
>Esta opção obriga o &kdesrc-build; a compilar os módulos indicados a partir do total início. Todas as pastas de compilação existentes para esse módulo serão removidas e o mesmo será compilado do zero. Esta opção é útil se tiver erros a compilar um dado módulo, e normalmente também acontece quando as bibliotecas do &Qt; ou do &kde; mudam.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
><option
>--no-src</option
></term>
    <listitem
><para
>Esta opção salta o processo de actualização do código. Podê-la-á usar se tiver actualizado bastante recentemente o código-fonte (talvez por tê-lo feito manualmente ou por ter executado o &kdesrc-build;) mas queira à mesma compilar alguns módulos de novo.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
><option
>--no-build</option
></term>
    <listitem
><para
>Esta opção é semelhante à <option
>--no-src</option
>, descrita acima, mas desta vez é o processo de compilação que será ignorado.</para
></listitem>
  </varlistentry>
</variablelist>

</sect2>

<sect2 id="cmdline-usage-modules">
<title
>Indicar os módulos a compilar</title>

<para
>De um modo geral, a indicação dos módulos a compilar é tão simples como passar os seus nomes, tal como estão definidos no ficheiro de configuração. Também poderá passar módulos que façam parte de um conjunto maior, quer através da opção <link linkend="conf-use-modules"
>use-modules</link
> ou do nome do próprio conjunto de módulos, caso lhe tenha atribuído um nome.</para>

<para
>No caso específico dos conjuntos de módulos baseados na <link linkend="kde-projects-module-sets"
>base de dados do projecto KDE</link
>, o &kdesrc-build; irá expandir os componentes do nome do módulo para determinar o módulo exacto que deseja. Por exemplo, o item do projecto KDE para o &kdesrc-build; localiza o projecto em <literal
>extragear/utils/kdesrc-build</literal
>. Poderá indicar qualquer um dos seguintes comandos para compilar o &kdesrc-build;:</para>

<informalexample>
<screen
><prompt
>&percnt;</prompt
> <command
>kdesrc-build</command
> <option
><replaceable
>+extragear/utils/kdesrc-build</replaceable
></option>
<prompt
>&percnt;</prompt
> <command
>kdesrc-build</command
> <option
><replaceable
>+utils/kdesrc-build</replaceable
></option>
<prompt
>&percnt;</prompt
> <command
>kdesrc-build</command
> <option
><replaceable
>+kdesrc-build</replaceable
></option
>
</screen>
</informalexample>

<note
><para
>Os comandos no exemplo anterior antecedem o nome do módulo com um <symbol
>+</symbol
>. Isto obriga o nome do módulo a ser interpretado como um módulo da base de dados do projecto do KDE, mesmo que este módulo não tenha sido definido no seu ficheiro de configuração. </para
></note>

<para
>Tenha cuidado ao indicar projectos demasiado genéricos (p.ex., <literal
>extragear/utils</literal
> por si só), dado que isto poderá levar a um grande conjunto de módulos a compilar. Deverá usar a opção <option
>--pretend</option
>, antes de compilar um novo módulo, para garantir que só está a compilar os módulos que deseja.</para>

</sect2>
</sect1>

<sect1 id="supported-envvars">
<title
>Variáveis de Ambiente Suportadas</title>

<para
>O &kdesrc-build; não usa variáveis de ambiente. Se necessitar de definir variáveis de ambiente para o ambiente de compilação ou de instalação, veja a opção <link linkend="conf-set-env"
>set-env</link
>. </para>

</sect1>

<sect1 id="supported-cmdline-params">
<title
>Parâmetros suportados da linha de comandos</title>

<para
>O programa aceita as seguintes opções da linha de comandos: </para>

<variablelist>

<varlistentry id="cmdline-async">
<term
><parameter
>--async</parameter
></term>
<listitem
><para
>Activa o <link linkend="conf-async"
>modo assíncrono</link
> para actualizar e compilar ao mesmo tempo. Esta é a opção por omissão, e só necessita de ser definida se a tiver desactivado na configuração. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-help">
<term
><parameter
>--help</parameter
></term>
<listitem
><para
>Mostra apenas uma ajuda simples deste programa. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-version">
<term
><parameter
>--version</parameter
></term>
<listitem
><para
>Mostra a versão do programa. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-author">
<term
><parameter
>--author</parameter
></term>
<listitem
><para
>Mostra as informações de contacto do autor. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-color">
<term
><parameter
>--color</parameter
></term>
<listitem
><para
>Activar o resultado colorido. (Este é o valor por omissão para os terminais interactivos). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-nice">
<term
><parameter
>--nice=<replaceable
>valor</replaceable
></parameter
></term>
<listitem
><para
>Este valor ajusta a prioridade do CPU pedida pelo &kdesrc-build;, e deverá estar no intervalo 0-20. O 0 (zero) é a prioridade máxima (dado que é a menos <quote
>nice</quote
> (simpática)), enquanto o 20 é a prioridade mínima. O &kdesrc-build; usa o valor por omissão 10. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-async">
<term
><parameter
>--no-async</parameter
></term>
<listitem
><para
>Desactiva o <link linkend="conf-async"
>modo assíncrono</link
> de actualização. Em vez disso, a actualização será efectuada por completo antes de a compilação começar. Esta opção irá tornar o processo global mais lento; porém, se encontrar erros de IPC durante a execução do &kdesrc-build;, tente usar esta opção e enviar um <ulink url="https://bugs.kde.org/"
>relatório de erros</ulink
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-color">
<term
><parameter
>--no-color</parameter
></term>
<listitem
><para
>Desactiva o resultado do programa a cores. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-pretend">
<term
><parameter
>--pretend</parameter
> (ou <parameter
>-p</parameter
>)</term>
<listitem
><para
>O &kdesrc-build; irá executar o processo de actualização e compilação, mas em vez de executar quaisquer acções de actualização ou compilação, irá sim apresentar o resultado do que o programa teria feito (p.ex., os comandos a executar, os passos gerais efectuados, etc.).</para>

<note
><para
>Os comandos simples apenas para leitura (como a leitura da informação dos ficheiros) poderão ser à mesma executados para tornar o resultado mais relevante (como a simulação correcta se o código iria ser obtido por completo ou actualizado). </para
></note>

<important
><para
>Esta opção precisa de ter alguns meta-dados obrigatórios disponíveis, os quais são transferidos automaticamente, mas as transferências estão desactivadas no modo simulado. Se nunca tiver executado o &kdesrc-build; (e, como tal, não tiver estes meta-dados), deverá ser executar o comando <command
>kdesrc-build <option
>--metadata-only</option
></command
> para transferir os meta-dados obrigatórios primeiro. </para
></important>
</listitem>
</varlistentry>

<varlistentry id="cmdline-quiet">
<term
><parameter
>--quiet</parameter
> (ou <parameter
>-q</parameter
>)</term>
<listitem
><para
>Não é tão descritivo com o resultado à saída. Com esta opção, só as mensagens básicas são apresentadas. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-really-quiet">
<term
><parameter
>--really-quiet</parameter
></term>
<listitem
><para
>Só mostra as mensagens de avisos e erros. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-verbose">
<term
><parameter
>--verbose</parameter
> (ou <parameter
>-v</parameter
>)</term>
<listitem
><para
>Torna-se bastante descritivo com o que se passa e o que o &kdesrc-build; está a fazer. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-src-only">
<term
><parameter
>--src-only</parameter
> (ou <parameter
>--svn-only</parameter
>)</term>
<listitem
><para
>Só efectua a actualização do código. (O <parameter
>--svn-only</parameter
> só é suportado por razões de compatibilidade com os programas mais antigos). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-build-only">
<term
><parameter
>--build-only</parameter
></term>
<listitem
><para
>Efectua apenas o processo de compilação. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-install-only">
<term
><parameter
>--install-only</parameter
></term>
<listitem
><para
>Efectua apenas o processo de instalação. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-metadata-only">
<term
><parameter
>--metadata-only</parameter
></term>
<listitem
><para
>Só efectua o processo de transferência dos meta-dados. O &kdesrc-build; normalmente lida com isto automaticamente, mas poderá usar esta opção manualmente para permitir à opção <option
><link linkend="cmdline-pretend"
>--pretend</link
></option
> da linha de comandos funcionar. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-rebuild-failures">
<term
><parameter
>--rebuild-failures</parameter
></term>
<listitem
><para
>Use esta opção para compilar apenas os módulos que não conseguiram compilar numa execução anterior do &kdesrc-build;. Isto é útil se um conjunto significativo de falhas ocorreram em conjunto com compilações bem sucedidas. Depois de corrigir o erro que provocou os problemas de compilação, poderá então compilar facilmente apenas os módulos que falharam anteriormente.</para>

<note
><para
>Lembre-se que a lista de <quote
>módulos falhados anteriormente</quote
> é limpa de cada vez que uma execução do &kdesrc-build; termina com algumas falhas de módulos. Contudo, não é limpa com uma compilação completamente bem sucedida, pelo que poderá recompilar com sucesso um ou dois módulos e esta opção continuar a funcionar à mesma.</para
></note>

<para
>Esta opção foi adicionada no &kdesrc-build; 15.09.</para>
</listitem>
</varlistentry>

<varlistentry id="cmdline-ignore-modules">
<term
><parameter
>--ignore-modules</parameter
></term>
<listitem
><para
>Não inclui os módulos, passados no resto da linha de comandos, no processo de actualização/compilação (isto é útil se quiser compilar a maioria dos módulos no seu <link linkend="configure-data"
>ficheiro de configuração</link
> e apenas quiser saltar alguns). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-src">
<term
><parameter
>--no-src</parameter
> (ou <parameter
>--no-svn</parameter
>)</term>
<listitem
><para
>Salta o contacto com o servidor do &subversion;. (O parâmetro <parameter
>--no-svn</parameter
> só é suportado por razões de compatibilidade com as versões anteriores do programa). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-build">
<term
><parameter
>--no-build</parameter
></term>
<listitem
><para
>Salta o processo de compilação. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-metadata">
<term
><parameter
>--no-metadata</parameter
></term>
<listitem
><para
>Não transfere automaticamente os meta-dados extra que são necessários para os módulos de Git para o &kde;. As actualizações de código para os módulos propriamente ditos irá ocorrer à mesma, a menos que passe também a opção <link linkend="cmdline-no-src"
>--no-src</link
>. </para
><para
>Isto pode ser útil se estiver a executar de novo o &kdesrc-build; frequentemente, dado que os meta-dados não mudam assim com muita frequência. Lembre-se contudo que muitas outras funcionalidades precisam de ter os meta-dados disponíveis. Poderá querer considerar a execução do &kdesrc-build; com a opção <link linkend="cmdline-metadata-only"
>--metadata-only</link
> uma vez e depois usar esta opção para as execuções subsequentes. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-install">
<term
><parameter
>--no-install</parameter
></term>
<listitem
><para
>Não instala automaticamente os pacotes, após a sua compilação. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-build-when-unchanged">
<term
><parameter
>--no-build-when-unchanged</parameter
></term>
<term
><parameter
>--force-build</parameter
></term>
<listitem
><para
>Esta opção desactiva de forma explícita a eliminação do processo de compilação (uma optimização controlada pela opção <link linkend="conf-build-when-unchanged"
>build-when-unchanged</link
>). Isto é útil para fazer com que o &kdesrc-build; corra a compilação, caso tenha alterado algo que o &kdesrc-build; não consegue verificar.</para>

<para
>O <parameter
>--force-build</parameter
> efectua exactamente a mesma função, sendo talvez mais fácil de recordar.</para>
</listitem>
</varlistentry>

<varlistentry id="cmdline-debug">
<term
><parameter
>--debug</parameter
></term>
<listitem
><para
>Activa o modo de depuração para o programa. De momento, isto significa que todo o resultado será enviado para o STDOUT, para além de ficar registado na pasta de registo como normal. Do mesmo modo, muitas das funções tornar-se-ão mais descritivas sobre o que estão fazer no modo de depuração. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-query">
<term
><parameter
>--query</parameter
>=<userinput
><replaceable
>modo</replaceable
></userinput
></term>
<listitem
><para
>Isto faz com que o &kdesrc-build; consulte um parâmetro dos módulos na lista de compilações (quer passada pela linha de comandos, quer lida a partir do ficheiro de configuração), apresentando o resultado no ecrã (um módulo por linha).</para>

<para
>Esta opção deverá receber um <quote
>modo de pesquisa</quote
>, que deverá ser um dos seguintes:</para>
    <itemizedlist>
    <listitem
><para
><option
>source-dir</option
>, que faz com que o &kdesrc-build; devolva a localização completa onde se encontra o código-fonte do módulo. </para
></listitem>
    <listitem
><para
><option
>build-dir</option
>, que faz com que o &kdesrc-build; devolva a localização completa onde ocorre o processo de compilação do módulo. </para
></listitem>
    <listitem
><para
><option
>install-dir</option
>, que faz com que o &kdesrc-build; devolva a localização completa onde o módulo será instalado. </para
></listitem>
    <listitem
><para
><option
>project-path</option
>, que faz com que o &kdesrc-build; devolva a localização do módulo dentro da hierarquia dos repositórios de código-fonte do KDE. Veja mais informações sobre esta hierarquia em <xref linkend="kde-projects-module-sets"/>. </para
></listitem>
    <listitem
><para
>Esta opção faz com que o &kdesrc-build; apresente a ramificação do 'git' resolvida e que será usada para cada módulo, com base nas definições <link linkend="conf-branch"
>branch</link
>, <link linkend="conf-tag"
>tag</link
> ou <link linkend="conf-branch-group"
>branch-group</link
> em efeito. </para
></listitem>
    <listitem
><para
>Caso contrário, podem ser usados os nomes das opções que sejam válidos para os módulos no <link linkend="configure-data"
>ficheiro de configuração</link
>, sendo que o valor resolvido para cada módulo será apresentado. </para
></listitem>
    </itemizedlist>

<para
>Se for passado um único módulo na linha de comandos, então o resultado será simplesmente o valor do parâmetro a ser consultado. Se forem passados vários (ou nenhuns) módulos na linha de comandos, então cada linha será antecedida do nome do módulo. Em qualquer dos casos, o &kdesrc-build; pára de correr assim que cada valor for apresentado. </para>

<para
>Esta opção foi adicionada no &kdesrc-build; 16.05.</para>

<informalexample>
<para
>Por exemplo, o comando <quote
><command
>kdesrc-build</command
> <parameter
>--query</parameter
> <parameter
><replaceable
>ramificação</replaceable
></parameter
> <parameter
><replaceable
>kactivities</replaceable
></parameter
> <parameter
><replaceable
>kdepim</replaceable
></parameter
></quote
> poderá devolver um resultado como o seguinte:</para>
<screen
>kactivities: master
kdepim: master
</screen>
</informalexample>
</listitem>
</varlistentry>

<varlistentry id="cmdline-no-rebuild-on-fail">
<term
><parameter
>--no-rebuild-on-fail</parameter
></term>
<listitem
><para
>Não tenta compilar de novo os módulos que não conseguiram ser compilados do zero. O &kdesrc-build; nunca irá tentar fazer isto num módulo que já se tentou compilar do zero. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-refresh-build">
<term
><parameter
>--refresh-build</parameter
></term>
<listitem
><para
>Volta a criar o sistema de compilação e a compilar do zero. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-reconfigure">
<term
><parameter
>--reconfigure</parameter
></term>
<listitem
><para
>Executa o <command
>cmake</command
> (para os módulos do &kde;) ou o <command
>configure</command
> (para o &Qt;) mais uma vez, sem limpar a pasta de compilação. Normalmente não terá de definir isto, dado que o &kdesrc-build; irá detectar quando alterar as opções relevantes e executar de novo automaticamente a configuração da compilação. Esta opção é implícita se for usado o <parameter
><link linkend="cmdline-refresh-build"
>--refresh-build</link
></parameter
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-resume-from">
<term
><parameter
>--resume-from</parameter
></term>
<listitem
><para
>Esta opção é usada para prosseguir com a compilação a partir do módulo indicado, o qual é o parâmetro seguinte na linha de comandos. Não deverá indicar os nomes dos outros módulos na linha de comandos. </para>

<note
><para
>Esta opção antigamente adicionava o <link linkend="cmdline-no-src"
><parameter
>--no-src</parameter
></link
>, mas já não o faz mais (desde o &kdesrc-build; 1.13). Se quiser evitar as actualizações de código ao prosseguir, basta passar <option
><userinput
>--no-src</userinput
></option
> para além das outras opções. </para
></note>

<para
>Veja também: <xref linkend="cmdline-resume-after"/> e <xref linkend="resuming-failed"/>. Irá preferir usar esta opção da linha de comandos se tiver corrigido o erro de compilação e quiser que o &kdesrc-build; termine a compilação.</para
></listitem>
</varlistentry>

<varlistentry id="cmdline-resume-after">
<term
><parameter
>--resume-after</parameter
></term>
<listitem
><para
>Esta opção é usada para prosseguir com a compilação a partir do módulo indicado, o qual é o parâmetro seguinte na linha de comandos. Não deverá indicar os nomes dos outros módulos na linha de comandos. </para>

<note
><para
>Esta opção antigamente adicionava o <link linkend="cmdline-no-src"
><parameter
>--no-src</parameter
></link
>, mas já não o faz mais (desde o &kdesrc-build; 1.13). Se quiser evitar as actualizações de código ao prosseguir, basta passar <option
><userinput
>--no-src</userinput
></option
> para além das outras opções. </para
></note>

<para
>Veja também: <xref linkend="cmdline-resume-from"/> e <xref linkend="resuming-failed"/>. Irá preferir usar esta opção da linha de comandos se tiver corrigido o erro de compilação e tiver também compilado e instalado o módulo você mesmo, e ainda se quiser que o &kdesrc-build; comece de novo com o módulo seguinte.</para
></listitem>
</varlistentry>

<varlistentry id="cmdline-resume">
<term
><parameter
>--resume</parameter
></term>
<listitem
><para
>Esta opção pode ser usada para executar o &kdesrc-build; depois de ter tido um problema de compilação. </para
><para
>Prossegue com a compilação a partir do módulo que falhou, usando a lista de módulos que estavam à espera de ser compilados anteriormente, desactivando também as actualizações de código e de meta-dados. O caso de uso é quando um erro simples ou uma dependência em falta provocar o erro na compilação. Assim que corrigir o erro, poderá voltar rapidamente atrás à compilação dos módulos que estava a compilar antes, sem ter de andar às voltas com as opções <option
><link linkend="cmdline-resume-from"
>--resume-from</link
></option
> e <option
><link linkend="cmdline-stop-before"
>--stop-before</link
></option
>. </para
><para
>Isto ainda é mais útil com a opção da linha de comandos <option
><link linkend="cmdline-stop-on-failure"
>--stop-on-failure</link
></option
>, especialmente se estiver inicialmente a configurar o seu ambiente de desenvolvimento. </para
><para
>Esta opção foi adicionada no &kdesrc-build; 1.16. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-stop-before">
<term
><parameter
>--stop-before</parameter
></term>
<listitem
><para
>Esta opção da linha de comandos é usada para interromper o processo normal de compilação logo <emphasis
>antes</emphasis
> da compilação normal de um dado módulo. </para
><para
>Por exemplo, se a lista normal de compilações fosse <simplelist type="inline"
> <member
>móduloA</member
><member
>móduloB</member
><member
>móduloC</member
></simplelist
>, então o <option
>--stop-before=<replaceable
>móduloB</replaceable
></option
> faria com que o &kdesrc-build; compilasse apenas o <literal
>móduloA</literal
>. </para
><para
>Esta opção foi adicionada no &kdesrc-build; 1.16. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-stop-after">
<term
><parameter
>--stop-after</parameter
></term>
<listitem
><para
>Esta opção da linha de comandos é usada para interromper o processo normal de compilação logo <emphasis
>a seguir</emphasis
> à compilação normal de um dado módulo. </para
><para
>Por exemplo, se a lista normal de compilações fosse <simplelist type="inline"
> <member
>móduloA</member
><member
>móduloB</member
><member
>móduloC</member
></simplelist
>, então o <option
>--stop-after=<replaceable
>móduloB</replaceable
></option
> faria com que o &kdesrc-build; compilasse o <literal
>móduloA</literal
> e o <literal
>móduloB</literal
>. </para
><para
>Esta opção foi adicionada no &kdesrc-build; 1.16. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-stop-on-failure">
<term
><parameter
>--stop-on-failure</parameter
></term>
<listitem
><para
>Esta opção faz com que a compilação seja interrompida assim que ocorrer algum erro. É útil quando estiver a configurar o seu ambiente de desenvolvimento inicial. Sem esta opção, o &kdesrc-build; irá tentar pressionar os restantes módulos na compilação para evitar perder tempo, caso o problema ocorra apenas num único módulo. </para
><para
>Esta opção foi adicionada no &kdesrc-build; 1.16. Veja também a opção <link linkend="conf-stop-on-failure"
>stop-on-failure</link
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-rc-file">
<term
><parameter
>--rc-file</parameter
></term>
<listitem
><para
>Isto interpreta o próximo parâmetro da linha de comandos como o ficheiro de onde ler as opções de configuração. O valor por omissão para este parâmetro é <filename
>kdesrc-buildrc</filename
> (verificado na pasta actual), caso esteja presente, ou então o <filename
>~/.kdesrc-buildrc</filename
> em caso contrário. Veja também o <xref linkend="kdesrc-buildrc"/>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-print-modules">
<term
><parameter
>--print-modules</parameter
></term>
<listitem>
<para
>Efectua todas as acções até à reordenação das dependências - inclusive - para os módulos indicados na linha de comandos (ou ficheiro de configuração), imprime os módulos que seriam processados, um por cada linha, e sai então sem mais nenhuma acção. </para>
<para
>Os meta-dados do <literal
>kde-project</literal
> são transferidos em primeiro lugar (porém, veja as opções <link linkend="cmdline-pretend"
><option
>--pretend</option
></link
> ou <link linkend="cmdline-no-src"
><option
>--no-src</option
></link
>). </para>
<para
>O resultado não é totalmente compatível com a utilização pelos programas, dado que as outras mensagens do resultado podem ser geradas até que seja apresentada a lista dos módulos. </para>
<para
>Isto é principalmente apenas útil para determinar rapidamente o que o &kdesrc-build; reconhece como sendo as dependências de um módulo, o que significa que é apenas útil para os módulos do <link linkend="kde-projects-module-sets"
><literal
>kde-projects</literal
></link
>. Esta opção também é compatível com as opções <link linkend="cmdline-resume-from"
><option
>--resume-from</option
></link
>, <link linkend="cmdline-resume-after"
><option
>--resume-after</option
></link
>, <link linkend="cmdline-stop-before"
><option
>--stop-before</option
></link
>, <link linkend="cmdline-stop-after"
><option
>--stop-after</option
></link
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-run">
<term
><parameter
>--run</parameter
></term>
<listitem
><para
>Esta opção interpreta o item seguinte na linha de comandos como um programa a executar, pelo que o &kdesrc-build; irá acabar de ler o ficheiro de configuração normalmente e depois irá executar o programa indicado.</para>

<para
>Isto não irá funcionar para iniciar uma linha de comandos com o ambiente do &kdesrc-build;, contudo, dado que as linhas de comando interactivas limpam  tipicamente alguma parte das variáveis de ambiente (como a <envar
>PATH</envar
> e a <envar
>KDEDIRS</envar
>) na sequência de arranque. </para>

<tip
><para
>Se quiser ver o ambiente usado pelo &kdesrc-build;, poderá executar o comando <command
>printenv</command
>:</para>
<informalexample>
<screen
>$ <command
>kdesrc-build</command
> <parameter
>--run</parameter
> <parameter
>printenv</parameter>
KDE_SESSION_VERSION=4
SDL_AUDIODRIVER=alsa
LANGUAGE=
XCURSOR_THEME=Oxygen_Blue
LESS=-R -M --shift 5
QMAIL_CONTROLDIR=/var/qmail/control
... etc.
</screen>
</informalexample
></tip>
</listitem>
</varlistentry>

<varlistentry id="cmdline-prefix">
<term
><parameter
>--prefix=&lt;/localização/do/kde&gt;</parameter
></term>
<listitem
><para
>Isto permite-lhe mudar a pasta onde o &kde; será instalado na linha de comandos. Esta opção implica a <link linkend="cmdline-reconfigure"
><option
>--reconfigure</option
></link
>, mas a utilização do <link linkend="cmdline-refresh-build"
><parameter
>--refresh-build</parameter
></link
> poderá à mesma ser necessária. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-revision">
<term
><parameter
>--revision</parameter
></term>
<listitem
><para
>Esta opção faz com que o &kdesrc-build; transfira uma <link linkend="using-branches"
>marca ou ramificação específica</link
> de um módulo do &subversion;, substituindo-se a qualquer das opções <link linkend="conf-branch"
>branch</link
>, <link linkend="conf-tag"
>tag</link
> ou <link linkend="conf-revision"
>revision</link
> já definidas para estes módulos.</para>

<para
>Esta opção não será provavelmente uma boa ideia, sendo apenas suportado por razões de compatibilidade com os programas mais antigos. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-build-system-only">
<term
><parameter
>--build-system-only</parameter
></term>
<listitem
><para
>Esta opção faz com que o &kdesrc-build; interrompa a compilação de um módulo, logo antes de o comando <command
>make</command
> ter sido executado. Isto é suportado por razões de compatibilidade com as versões mais antigas, sendo que este efeito não é útil para o sistema de compilação actual do &kde;. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-install"
><term
><parameter
>--install</parameter
></term>
<listitem
><para
>Se esta for a única opção da linha de comandos, irá tentar instalar todos os módulo incluídos em <filename
>log/latest/build-status</filename
>. Se as opções da linha de comandos forem indicadas após o <option
>--install</option
>, então assumem-se que são módulos para instalar (mesmo que não tenham sido compilados com sucesso na última execução). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-snapshots"
><term
><parameter
>--no-snapshots</parameter
></term>
<listitem
><para
>Se indicar esta opção, fará com que o &kdesrc-build; efectue sempre uma extracção inicial normal de um módulo, em vez de usar uma imagem inicial rápida (só está disponível para os módulos do Git para o repositório <literal
>kde-projects</literal
>). Lembre-se que esta opção só deverá ser usada caso exista um erro a usar as imagens, dado que a imagem inicial reduz a carga nos repositórios de código do KDE. </para>

<note
><para
>As amostras de módulos <emphasis
>são</emphasis
> extracções reais do repositório. Não deverá ter de definir esta opção, por ser apenas uma ajuda de resolução de problemas.</para
></note>
</listitem>
</varlistentry>

<varlistentry id="cmdline-delete-my-patches">
<term
><parameter
>--delete-my-patches</parameter
></term>
<listitem
><para
>Esta opção é usada para  permitir ao &kdesrc-build; apagar as pastas de código que possam conter dados do utilizador, para que o módulo possa ser transferido de novo. Isto normalmente só seria útil para os programadores do &kde; (que poderiam ter alterações locais que seriam removidas).</para>

<para
>Isto só é usado de momento para obter os módulos que foram  convertidos do &subversion; para o &git;. Não deverá usar esta opção normalmente; o &kdesrc-build; irá pedir para ser executado com ela, caso seja necessário.</para>
</listitem>
</varlistentry>

<varlistentry id="cmdline-delete-my-settings">
<term
><parameter
>--delete-my-settings</parameter
></term>
<listitem
><para
>Esta opção é usada para permitir ao &kdesrc-build; substituir os ficheiros existentes que possam conter dados do utilizador.</para>

<para
>Isto só é usado normalmente para a configuração do 'xsession' para o gestor de autenticação. Não deverá usar esta opção normalmente; o &kdesrc-build; irá pedir para ser executado com ela, caso seja necessário.</para>
</listitem>
</varlistentry>

<varlistentry id="cmdline-global-option">
<term
><parameter
>--<replaceable
>&lt;nome-opção&gt;</replaceable
>=</parameter
></term>
<listitem
><para
>Poderá usar esta opção para sobrepor outra opção no seu <link linkend="configure-data"
>ficheiro de configuração</link
> para todos os módulos. Por exemplo, para sobrepor a opção <link linkend="conf-log-dir"
>log-dir</link
>, deverá escrever: <userinput
><parameter
>--log-dir=<filename class="directory"
>/local/da/pasta</filename
></parameter
></userinput
>. </para>

<note
><para
>Esta funcionalidade só pode ser usada para os nomes de opções já reconhecidos pelo &kdesrc-build; e que não sejam já suportados pelas opções relevantes da linha de comandos. Por exemplo, a opção <link linkend="conf-async"
>async</link
> do ficheiro de configuração tem opções <link linkend="cmdline-async"
>--async</link
> e <link linkend="cmdline-no-async"
>--no-async</link
> específicas na linha de comandos que são preferidas pelo &kdesrc-build;. </para
></note>

</listitem>
</varlistentry>

<varlistentry id="cmdline-module-option">
<term
><parameter
>--set-module-value-option=<replaceable
>&lt;nome-módulo&gt;</replaceable
>,<replaceable
>&lt;nome-opção&gt;</replaceable
>,<replaceable
>&lt;valor-opção&gt;</replaceable
></parameter
></term>
<listitem
><para
>Ou poderá usar esta opção para substituir outra no seu <link linkend="configure-data"
>ficheiro de configuração</link
>, para um dado módulo. </para
></listitem>
</varlistentry>

</variablelist>

<para
>Todas as outras opções da linha de comandos assumem-se como sendo módulos para actualizar e compilar. Por favor, não misture a compilação com a instalação. </para>

</sect1>

</chapter>

<chapter id="using-kdesrc-build">
<title
>Usar o &kdesrc-build;</title>

<sect1 id="using-kdesrc-build-preface">
<title
>Prefácio</title>

<para
>Normalmente, a utilização do &kdesrc-build; após ter passado pelo <xref linkend="getting-started"/> é tão simples como fazer o seguinte, a partir de uma linha de comandos:</para>

<screen
><prompt
>&percnt;</prompt
> <command
><userinput
>kdesrc-build</userinput
></command
>
</screen>

<para
>O &kdesrc-build; irá então transferir o código do &kde;, tentará configurá-lo e compilá-lo e, no fim, irá tentar instalá-lo.</para>

<para
>Leia mais para saber como é que o &kdesrc-build; faz isso, assim como o que poderá fazer com esta ferramenta.</para>

</sect1>

<sect1 id="basic-features">
<title
>Funcionalidades básicas do &kdesrc-build;</title>

<sect2 id="using-qt">
<title
>Suporte para o 'qt'</title>
<para
>O &kdesrc-build; suporta a compilação da plataforma &Qt;, usada pelo &kde;, como conveniência para os utilizadores. Este suporte é tratado por um módulo especial chamado 'qt'.</para>

<note
><para
>O &Qt; é desenvolvido num repositório separado do sistema &kde;, localizado em <ulink url="http://code.qt.io/cgit/qt/"
>http://code.qt.io/cgit/qt/</ulink
>.</para
></note>

<para
>Para poder compilar o &Qt;, dever-se-á certificar que a opção <link linkend="conf-qtdir"
>qtdir</link
> está configurada com a pasta onde gostaria de instalar o  &Qt;, como está descrito em <xref linkend="configure-data"/>.</para>

<para
>Dever-se-á então certificar que o módulo 'qt' está adicionado no seu <filename
>.kdesrc-buildrc</filename
>, antes de quaisquer outros módulos no ficheiro. Se estiver a usar o ficheiro de configuração de exemplo, poderá simplesmente descomentar o item do módulo 'qt'.</para>

<para
>Agora deverá verificar se a opção <link linkend="conf-repository"
>repository</link
> e as opções <link linkend="conf-branch"
>branch</link
> estão definidas apropriadamente:</para>

<orderedlist>
<listitem
><para
>A primeira opção é compilar o &Qt;, usando uma réplica mantida nos repositórios de código do &kde; (não serão aplicadas nenhumas outras alterações, dado ser apenas uma cópia do código oficial). Isto é altamente recomendado, devido a problemas ocasionais com a replicação do módulo total do &Qt; a partir do seu repositório oficial.</para>

<para
>Poderá definir a opção <option
>repository</option
> do módulo 'qt' como <userinput
>kde:qt</userinput
> para usar esta opção.</para>
</listitem>

<listitem
><para
>Caso contrário, para compilar o &Qt;-padrão, configure a sua opção <option
>repository</option
> como sendo <userinput
>git://gitorious.org/qt/qt.git</userinput
>. Lembre-se que poderá ter problemas a efectuar a replicação inicial do &Qt; a partir deste repositório.</para
></listitem>
</orderedlist>

<para
>Em ambos os casos, a opção 'branch' deverá ser configurada como <userinput
>master</userinput
> (a menos que queira compilar uma ramificação diferente).</para>

</sect2>

<sect2 id="kdesrc-build-std-flags">
<title
>Opções normais adicionadas pelo &kdesrc-build;</title>
<para
>Para lhe poupar tempo, o &kdesrc-build; adiciona alguns locais normais ao seu ambiente, por si: </para>

<itemizedlist>
<listitem
><para
>O local das bibliotecas do &kde; e do &Qt; é adicionado automaticamente à variável <envar
>LD_LIBRARY_PATH</envar
>. Isto significa que não irá necessitar de editar a &libpath; para os incluir. </para
></listitem>

<listitem
><para
>O local dos programas de suporte ao desenvolvimento do &kde; e do &Qt; é adicionado automaticamente à variável <envar
>PATH</envar
>. Isto significa que não irá necessitar de editar a &binpath; para os incluir. </para
></listitem>

<listitem
><para
>O local do <application
>pkg-config</application
> fornecido com o &kde; é adicionado automaticamente ao <envar
>PKG_CONFIG_PATH</envar
>. Isto significa que não terá de usar o &set-env; para os incluir. </para
></listitem>

<listitem
><para
>A configuração do &kdedir; é propagada automaticamente à variável de ambiente <envar
>KDEDIR</envar
> durante a compilação. (O <envar
>KDEDIRS</envar
> não é afectado). </para
></listitem>

<listitem
><para
>A configuração do &qtdir; é propagada automaticamente para a variável de ambiente <envar
>QTDIR</envar
> durante a compilação. </para
></listitem>

</itemizedlist>

</sect2>

<sect2 id="build-priority">
<title
>Mudar a prioridade de compilação do &kdesrc-build;</title>
<para
>Os programas poder-se-ão executar com diferentes níveis de prioridades nos Sistemas Operativos dos dias de hoje, incluindo o &Linux; e o &BSD;. Isto permite ao sistema reservar tempo para os diferentes programas, de acordo com a sua importância. </para>

<para
>O &kdesrc-build; irá reservar uma prioridade baixa para si próprio, para que o resto dos programas do seu sistema não sejam afectados e possam executar normalmente. Com esta técnica, o &kdesrc-build; irá usar o CPU extra quando estiver disponível. </para>

<para
>O &kdesrc-build; irá manter à mesma uma prioridade suficientemente alta, para que se execute antes dos processos rotineiros e antes dos programas de doação de CPU, como o <ulink url="http://setiathome.ssl.berkeley.edu/"
>Seti@Home</ulink
>. </para>

<para
>Para alterar o &kdesrc-build;, de modo a usar um nível de prioridade maior ou menor de forma permanente, então terá de ajustar a opção &niceness; no <link linkend="configure-data"
>ficheiro de configuração</link
>. A opção &niceness; controla quão <quote
>simpático</quote
> é o &kdesrc-build; para os outros programas. Por outras palavras, se tiver um &niceness; maior, dará ao &kdesrc-build; uma prioridade menor. Como tal, para dar ao &kdesrc-build; uma maior prioridade, reduza o &niceness; (e vice-versa). O &niceness; pode ir de 0 (nada simpático, prioridade máxima) até 20 (super-simpático, prioridade mínima).</para>

<para
>Poderá também mudar temporariamente a prioridade do &kdesrc-build; ao usar a <link linkend="cmdline"
>opção da linha de comandos</link
> &cmd-nice;. O valor da opção é usado da mesma forma que no &niceness;.</para>

<note
><para
>É possível a alguns programas executados pelo super-utilizador ter um valor de prioridade negativo, com uma prioridade de sistema corresponde ainda maior para alguns programas. A configuração de um valor negativo (ou mesmo 0) do &niceness; para o &kdesrc-build; não é uma boa ideia, dado que não irá melhorar muito o tempo de compilação, mas tornará o seu computador muito lento, se precisar de o usar à mesma. </para
></note>

<informalexample>
<para
>Para executar o &kdesrc-build; com uma prioridade igual a 15 (menor que o normal):</para>

<screen
><prompt
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--nice=<replaceable
>15</replaceable
></option
></userinput
>
</screen>

<para
>Ou poderá editar o <link linkend="configure-data"
>ficheiro de configuração</link
> para tornar a mudança permanente:</para>

<screen
>&niceness; <replaceable
>15</replaceable
>
</screen>
</informalexample>

<tip>
<para
>A opção <link linkend="conf-niceness"
>niceness</link
> só afecta a utilização dos processadores do computador. Outro efeito importante na performance do computador relaciona-se com a quantidade de entrada e saída de dados (<acronym
>E/S</acronym
>) que um programa usa. Para poder controlar a quantidade de <acronym
>E/S</acronym
> que um programa poderá usar, os sistemas operativos &Linux; modernos suportam uma ferramenta semelhante chamada <application
>ionice</application
>. O &kdesrc-build; suporta  o <application
>ionice</application
>, (mas apenas para o activar ou desactivar por completo), usando a opção <link linkend="conf-use-idle-io-priority"
>use-idle-io-priority</link
>, desde a versão 1.12 do &kdesrc-build;. </para>
</tip>

</sect2>

<sect2 id="root-installation">
<title
>Instalação como super-utilizador</title>
<para
>Poderá ter o &kdesrc-build; a executar a instalação com privilégios de super-utilizador. Isto pode acontecer no caso da instalação a nível do sistema (não recomendada). Também é útil se usar uma instalação normal para um único utilizador, todavia. Isto acontece porque alguns módulos (especialmente o 'kdebase') instalam programas que, por breves instantes, irão necessitar de permissões elevadas ao serem executados. Eles não conseguirão obter esses níveis de permissões, a menos que tenham sido instalados com as permissões elevadas. </para>

<para
>Poderá simplesmente executar o &kdesrc-build; directamente como super-utilizador, dado que o programa não foi testado para esse tipo de utilização. Ainda que possa ser seguro executá-lo dessa forma, é melhor evitar executar este programa como super-utilizador, sempre que possível.</para>

<para
>Para tomar conta disto, o &kdesrc-build; oferece a opção &make-install-prefix;. Poderá usar esta opção para indicar um comando a usar para efectuar a instalação como outro utilizador. A forma recomendada de usar este comando é com o programa &sudo;, que irá então executar o comando de instalação como super-utilizador. </para>

<informalexample>
<para
>Por exemplo, para instalar todos os módulos com o &sudo;, poderá fazer algo do género:</para>

<screen
>global
  &make-install-prefix; <replaceable
>sudo</replaceable>
  # Outras opções
end global
</screen>

<para
>Para usar o &make-install-prefix; apenas num módulo, isto irá funcionar: </para>

<screen
>module <replaceable
>nome-módulo-svn</replaceable>
  &make-install-prefix; <replaceable
>sudo</replaceable>
end module
</screen>
</informalexample>

</sect2>

<sect2 id="build-progress">
<title
>Mostrar o progresso da compilação de um módulo</title>
<para
>Esta funcionalidade está sempre disponível e está activada automaticamente, sempre que possível. O que isto faz é mostrar o progresso estimado da compilação ao compilar um módulo, para que saiba desta forma quanto tempo mais é que irá levar para compilar um módulo. </para>

</sect2>

</sect1>

<sect1 id="advanced-features">
<title
>Funcionalidades avançadas</title>

<sect2 id="partial-builds">
<title
>Compilar parcialmente um módulo</title>
<para
>É possível compilar apenas partes de um único módulo do &kde;. Por exemplo, pode querer compilar apenas um programa de um módulo. O &kdesrc-build; tem funcionalidades para simplificar isto. Existem várias formas complementares de o fazer. </para>

<sect3 id="checking-out-parts">
<title
>Extrair partes de um módulo</title>

<para
>Esta será talvez a melhor forma de o fazer. Quando funciona, poupar-lhe-á tempo de transferência e espaço em disco. O que acontece é que o &kdesrc-build; irá transferir apenas as partes do módulo que indicar. Isto é feito com a opção &checkout-only; para um dado módulo, que irá indicar uma lista das pastas a transferir. </para>

<tip
><para
>Se não souber já o que vai transferir de um dado módulo, poderá ser uma boa ideia navegar pela disposição no &subversion; para um módulo, em primeiro lugar, usando o <ulink url="https://websvn.kde.org/branches/KDE/4.6/"
>WebSVN</ulink
>. </para
></tip>

<informalexample>
<para
>Para obter apenas o &kuser; e o <application
>KSystemLog</application
> do 'kdeadmin', poderá usar o &checkout-only; da seguinte forma:</para>

<screen
>module <replaceable
>kdeadmin</replaceable>
  &checkout-only; <replaceable
>kuser ksystemlog</replaceable>
end module
</screen>

</informalexample>

<important
><para
>As pastas serão compiladas pela ordem que forem indicadas na opção. Se uma das pastas necessitar de algo do módulo para compilar, então terá de garantir que ambas se encontram na linha &checkout-only; e que a dependência necessária vai antes da pasta que necessita dela.</para>

<para
>Da mesma forma, algumas vezes uma aplicação poderá necessitar de outras pastas e isso ser difícil de descobrir; nesse caso poderá ser razão para tentativa e erro, adicionando constantemente pastas à opção para descobrir. Esta opção depende do suporte no sistema de compilação do módulo, pelo que só é útil para os módulos que sejam colecções de aplicações individuais.</para>
</important>

<para
>Uma nota final sobre esta opção: Se alterar esta opção deverá usar o <userinput
><command
>kdesrc-build</command
> <option
>&cmd-refresh-build;</option
> <option
><replaceable
>módulo</replaceable
></option
></userinput
> para garantir que o módulo é configurado de novo convenientemente. Para além disso, o &kdesrc-build; nunca irá remover os ficheiros existentes, se retirar o número de pastas da sua opção &checkout-only; ou adicionar a opção a um módulo que já foi extraído.</para>

</sect3>

<sect3 id="not-compiling">
<title
>Remover pastas de uma compilação</title>
<para
>Em vez de restringir o que é obtido, é possível transferir tudo mas fazer com que o sistema de compilação deixe algumas pastas por compilar. Isto pode ser útil se uma pasta estiver sempre a invalidar a compilação e for desnecessária para o resto do módulo. </para>

<para
>Isto é controlado com a opção &do-not-compile;. Funciona de forma semelhante à opção &checkout-only; descrita acima, e é apenas uma lista das pastas que não deverão ser compiladas.</para>

<important
><para
>Da mesma forma que no &checkout-only;, esta opção necessita pelo menos que o sistema de compilação do módulo volte a ser configurado de novo para o módulo, após a alteração. Isto é feito com o comando <userinput
><command
>kdesrc-build</command
> <option
>&cmd-reconfigure;</option
> <option
><replaceable
>módulo</replaceable
></option
></userinput
>. </para
></important>

<informalexample>
<para
>Para remover a pasta <filename class="directory"
>python</filename
> do processo de compilação do 'kdebindings':</para>

<screen
>module <replaceable
>kdebindings</replaceable>
  &do-not-compile; <replaceable
>python</replaceable>
end module
</screen>

</informalexample>

<note
><para
>Esta função depende de algumas convenções normais, usadas na maioria dos módulos do &kde;. Como tal, poderá não funcionar para todos os programas.</para
></note>

</sect3>

</sect2>

<sect2 id="using-branches">
<title
>Suporte de marcas e ramificações do &kdesrc-build;</title>

<sect3 id="branches-and-tags">
<title
>O que são ramificações e marcas?</title>

<para
>O &subversion; suporta a gestão do histórico do código do &kde;. O &kde; usa esse suporte para criar ramificações ('branches') para desenvolvimento e para marcar o repositório com marcas ('tags'), sempre que lança uma nova versão. </para>

<para
>Por exemplo, os programadores do &kmail; poderão estar a trabalhar numa nova funcionalidade, numa ramificação diferente, para evitar corromper a versão que está em uso pela maioria dos programadores. Esta ramificação tem desenvolvimentos em curso nela, mesmo quando a ramificação principal (chamada de /trunk) possa também ter desenvolvimentos em curso nela. </para>

<para
>Uma marca, por outro lado, é uma imagem do repositório de código numa dada posição no tempo. Isto é usado pela equipa de administração do &kde; para marcar uma versão do código adequada para lançamento, permitindo à mesma aos programadores continuarem a desenvolver. </para>

<para
>No &subversion;, não existem diferenças entre ramificações, marcas ou o 'trunk' no código. É apenas uma convenção usada pelos programadores. Isso torna difícil suportar convenientemente as ramificações e marcas no &kdesrc-build;. Contudo, existem algumas coisas que poderão ser feitas. </para>

</sect3>

<sect3 id="branch-support">
<title
>Como usar as ramificações e marcas</title>

<para
>O suporte para ramificações e marcas é tratado por um conjunto de opções, que vão desde um simples pedido de uma versão até um &url; específico de transferência, para os utilizadores mais avançados. </para>

<para
>O método mais simples é usar as opções &branch; e &tag;. Poderá usar a opção em conjunto com o nome da marca ou ramificação de um módulo, para que o &kdesrc-build; determine o local apropriado, dentro do repositório do &kde;, de onde deve transferir. Na maioria dos módulos do &kde;, isto funciona muito bem.</para>

<informalexample>
<para
>Para transferir o 'kdelibs' do &kde; 4.6 (que é simplesmente conhecido pela ramificação '4.6'): </para>

<screen
>module kdelibs
  branch <replaceable
>4.6</replaceable>
  # outras opções...
end module
</screen>

<para
>Ou, para transferir o 'kdemultimedia' como foi lançado aquando do &kde; 4.6.1:</para>

<screen
>module kdemultimedia
  tag <replaceable
>4.6.1</replaceable>
  # outras opções...
end module
</screen>

</informalexample>

<tip
><para
>Poderá definir aqui um valor global para o 'branch'. Mas, se o fizer, não se esqueça de indicar uma ramificação diferente para os módulos que não devem usar a ramificação global! </para
></tip>
</sect3>

<sect3 id="advanced-branches">
<title
>Opções avançadas de suporte a ramificações</title>

<para
>O &kdesrc-build; suporta duas opções para as situações em que o &branch; e o &tag; adivinham o local de forma incorrecta: o &module-base-path; e o &override-url;. </para>

<itemizedlist>
<listitem
><para
>O &module-base-path; é usado para ajudar o &kdesrc-build; a preencher a parte em falta da localização de um módulo. No repositório do &kde;, todos os locais têm o formato <filename class="directory"
>raizSvn/module-base-path/nome-módulo</filename
>. Normalmente, o &kdesrc-build; pode descobrir a parte intermédia apropriada por si só. Quando não conseguir, poderá usar o &module-base-path; da seguinte forma: </para>

<informalexample>
<screen
>module kdesupport
    # o 'kdesupport' suporta várias marcas para organizar facilmente as
    # aplicações necessárias para uma dada versão da plataforma do KDE.
    module-base-path tags/kdesupport-do-4.5
end module
</screen>

<para
>Isto deverá fazer com que o &kdesrc-build; transfira o 'kdesupport' de (neste exemplo) <filename
>svn://anonsvn.kde.org/home/kde/<replaceable
>tags/kdesupport-for-4.5</replaceable
></filename
>. </para>
</informalexample>
<tip
><para
>Nas versões anteriores do &kdesrc-build;, o &module-base-path; era tratado de forma diferente. Se tiver problemas ao usar uma definição antiga do 'module-base-path', talvez deva confirmar se a localização actual é a mesma que o &kdesrc-build; está à espera, usando a opção <link linkend="cmdline-pretend"
>--pretend</link
>. </para
></tip>
</listitem>

<listitem
><para
>A opção &override-url;, por outro lado, necessita que você indique o local exacto de onde transferir. Contudo, isto permite-lhe transferir dos locais onde o &kdesrc-build; não terá hipóteses de adivinhar o local. </para>

<important
><para
>O &kdesrc-build; não irá mexer ou corrigir o valor que indicar no &override-url; de todo, por isso, se mudar a sua configuração do &svn-server;, também terá de actualizar isto. </para
></important>

</listitem>
</itemizedlist>

</sect3>

</sect2>

<sect2 id="building-successfully">
<title
>Como o &kdesrc-build; tenta garantir uma compilação com sucesso</title>

<sect3 id="automatic-rebuilds">
<title
>Recompilações automáticas</title>

<para
>O &kdesrc-build; costumava incluir funcionalidades para tentar automaticamente reconstruir o módulo em caso de falha (dado que, às vezes, essa nova tentativa iria funcionar, por causa dos erros no sistema de compilação da altura). Graças à mudança para o &cmake;, o sistema de compilação já não passa mais por esses erros, pelo que o &kdesrc-build; não irá tentar mais compilar um módulo mais que uma vez. Todavia, existem situações em que o &kdesrc-build; irá tomar alguma acção automaticamente:</para>

<itemizedlist>

<listitem
><para
>Se quiser alterar as opções <link linkend="conf-configure-flags"
>configure-flags</link
> ou <link linkend="conf-cmake-options"
>cmake-options</link
> para um dado módulo, o &kdesrc-build; irá detectar isso e tentar executar de novo o 'configure' ou o 'cmake' para esse módulo.</para
></listitem>

<listitem
><para
>Se o sistema de compilação não existir (mesmo se o &kdesrc-build; não o apagou), então o &kdesrc-build; irá tentar criá-lo de novo. Isto é útil para permitir a execução de um <link linkend="cmdline-refresh-build"
>--refresh-build</link
> completo para um módulo específico, sem ter de efectuar isso para os outros módulos.</para
></listitem>

</itemizedlist>

</sect3>

<sect3 id="manual-rebuilds">
<title
>Compilar manualmente um módulo de novo</title>
<para
>Se tiver feito alterações a alguma opção de um módulo, ou se o código-fonte do módulo mudar de uma forma que o &kdesrc-build; não reconheça, poderá ter de compilar o módulo de novo manualmente.</para>

<para
>Podê-lo-á fazer se executar simplesmente o <userinput
><command
>kdesrc-build</command
> <option
>--refresh-build</option
> <option
><replaceable
>módulo</replaceable
></option
></userinput
>. </para>

<para
>Se quiser que o &kdesrc-build; compile de novo de forma automática o módulo, durante a próxima actualização normal, poderá criar um ficheiro especial. Cada módulo tem uma pasta de compilação. Se criar um ficheiro chamado <filename
>.refresh-me</filename
> na pasta de compilação de um módulo, o &kdesrc-build; irá reconstruir o módulo da próxima vez que o processo de compilação correr, mesmo que fosse executar normalmente a compilação incremental.</para>

<tip>
<para
>Por omissão, a pasta de compilação é a <filename class="directory"
>~/kdesrc/build/<replaceable
>módulo</replaceable
>/</filename
>. Se mudar a opção &build-dir;, então use essa em vez da <filename class="directory"
>~/kdesrc/build</filename
>.</para>
</tip>

<informalexample>
<para
>Compile de novo com o <filename
>.refresh-me</filename
> para o módulo <replaceable
>kdelibs</replaceable
>:</para>
<screen
><prompt
>&percnt;</prompt
> <userinput
><command
>touch</command
> <filename
>~/kdesrc/build/<replaceable
>kdelibs</replaceable
>/.actualize-me</filename
></userinput>
<prompt
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
></userinput
>
</screen>
</informalexample>
</sect3>

</sect2>

<sect2 id="changing-environment">
<title
>Mudar a configuração das variáveis de ambiente</title>
<para
>Normalmente o &kdesrc-build; usa o ambiente que está presente no arranque, quando executa os programas de actualização e compilação. Isto é útil quando estiver a executar o &kdesrc-build; a partir da linha de comandos.</para>

<para
>Contudo, poderá querer alterar a configuração das variáveis de ambiente para as quais o &kdesrc-build; não tem uma opção directa (Por exemplo, para configurar qualquer variáveis de ambiente necessárias na execução do &kdesrc-build; num escalonador de tarefas como o &cron;). Isto é possível com a opção &set-env;.</para>

<para
>Ao contrário da maioria das opções, poderá ser definida mais que uma vez e aceita dois itens separados por um espaço. O primeiro item é o nome da variável de ambiente a definir e o resto da linha é o valor.</para>

<informalexample>
<para
>Configurar o <userinput
><envar
>DISTRO</envar
>=<replaceable
>BSD</replaceable
></userinput
> para todos os módulos:</para>
<screen
>global
  set-env <replaceable
>DISTRO</replaceable
> <replaceable
>BSD</replaceable>
end global
</screen>
</informalexample>

</sect2>

<sect2 id="resuming">
<title
>Prosseguir com as compilações</title>

<sect3 id="resuming-failed">
<title
>Prosseguir uma compilação falhada ou cancelada</title>

<para
>Poderá indicar ao &kdesrc-build; para começar a compilar a partir de um módulo diferente do que onde iria prosseguir. Isto poderá ser útil quando falhou um conjunto de módulos ou se tiver cancelado a execução de uma compilação a meio. Poderá controlar isto com a opção &cmd-resume-after;.</para>

<note
><para
>As versões mais antigas do &kdesrc-build; iriam saltar a actualização do código ao prosseguir com uma compilação. Isto já não é mais feito por omissão, mas poderá continuar à mesma a usar a opção da linha de comandos <option
>--no-src</option
> para saltar a actualização do código.</para
></note>

<informalexample>
<para
>Prosseguir a compilação a começar no 'kdebase':</para>

<screen
><prompt
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--resume-from=<replaceable
>kdebase</replaceable
></option
></userinput
>
</screen>
</informalexample>

<informalexample>
<para
>Prosseguir a compilação logo a seguir ao 'kdebase' (no caso de ter corrigido manualmente o problema e tiver instalado o módulo você mesmo):</para>

<screen
><prompt
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--resume-after=<replaceable
>kdebase</replaceable
></option
></userinput
>
</screen>
</informalexample>

<para
>Se a última compilação do &kdesrc-build; terminou com uma condição de erro, poderá também usar a opção <link linkend="cmdline-resume"
>--resume</link
> da linha de comandos, a qual prossegue com a última compilação a partir do módulo que falhou. As actualizações de código e meta-dados também são ignoradas (porém, se precisar delas, normalmente é melhor usar a opção <link linkend="cmdline-resume-from"
>--resume-from</link
> em alternativa).</para>


</sect3>

<sect3 id="ignoring-modules">
<title
>Ignorar os módulos numa compilação</title>

<para
>Como acontece quando deseja <link linkend="resuming-failed"
>prosseguir com a compilação de um módulo</link
>, poderá optar em alternativa por actualizar e compilar tudo normalmente, só que ignorando um conjunto de módulos.</para>

<para
>Poderá fazer isso com a opção &cmd-ignore-modules;. Esta opção diz ao &kdesrc-build; para ignorar todos os restantes módulos da linha de comandos, ao efectuar a actualização e a compilação.</para>

<informalexample>
<para
>Ignorar o extragear/multimedia e o kdereview numa execução completa:</para>
<screen
><prompt
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--ignore-modules</option
> <replaceable
>extragear/multimedia kdereview</replaceable
></userinput
>
</screen>
</informalexample>

</sect3>
</sect2>

<sect2 id="changing-env-from-cmd-line">
<title
>Mudar as opções na linha de comandos</title>

<sect3 id="changing-global-opts">
<title
>Modificar as opções globais</title>
<para
>Poderá alterar a configuração das opções lidas do <link linkend="configure-data"
>ficheiro de configuração</link
> directamente a partir da linha de comandos. Esta alteração irá substituir a configuração do ficheiro, mas é apenas temporária. Só fará efeito enquanto estiver à mesma presente na linha de comandos.</para>

<para
>O &kdesrc-build; permite-lhe alterar as opções com nome do tipo <replaceable
>nome-opção</replaceable
> se passar um argumento na linha de comandos com o formato <userinput
><option
>--<replaceable
>nome-opção</replaceable
>=valor</option
></userinput
>. O &kdesrc-build; irá reconhecer se não souber qual a opção, e irá procurar o nome na sua lista de nomes de opções. Se não reconhecer o nome, avisá-lo-á, caso contrário irá recordar o valor que definir e substituir o valor do ficheiro de configuração.</para>

<informalexample>
<para
>Configurar o &source-dir; como <filename
>/dev/null</filename
> para fins de teste:</para>

<screen
><prompt
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--pretend</option
> <option
>--<replaceable
>source-dir</replaceable
>=<replaceable
>/dev/null</replaceable
></option
></userinput
>
</screen>

</informalexample>

</sect3>

<sect3 id="changing-module-opts">
<title
>Mudar as opções do módulo</title>
<para
>Também é possível alterar as opções apenas para um módulo específico. A sintaxe é semelhante: --<replaceable
>módulo</replaceable
>,<replaceable
>nome-opção</replaceable
>=<replaceable
>valor</replaceable
>. </para>

<para
>Esta alteração substitui qualquer opção duplicada do módulo encontrado no <link linkend="configure-data"
>ficheiro de configuração</link
> e só se aplica enquanto a opção for passada na linha de comandos.</para>

<informalexample>
<para
>Usar uma pasta de compilação diferente para o módulo 'kdeedu':</para>

<screen
><prompt
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--<replaceable
>kdeedu</replaceable
>,<replaceable
>build-dir</replaceable
>=<replaceable
>temporaria</replaceable
></option
></userinput
>
</screen>

</informalexample>

</sect3>

</sect2>

</sect1>

<sect1 id="developer-features">
<title
>Funcionalidades para os programadores do &kde;</title>

<sect2 id="ssh-agent-reminder">
<title
>Verificações do Agente do &ssh;</title>
<para
>O &kdesrc-build; poderá garantir que os programadores do &kde; que usem o &ssh; para aceder ao repositório de código do &kde; não se esqueçam acidentalmente da ferramenta &ssh;-Agent ligada. Isto poderá fazer com que o &kdesrc-build; fique eternamente à espera que o programador indique a sua senha de &ssh;, por isso e por omissão, o &kdesrc-build; irá verificar se o Agente está a correr antes de efectuar as actualizações do código. </para>

<note
><para
>Isto só é feito para os programadores do &kde; que usam o &ssh;. Isto acontece porque não é necessária qualquer senha para a actualização e extracção de código anónima do repositório. O &subversion; irá lidar com as senhas para o segundo protocolo possível dos programadores do &kde;, o HTTPS. </para
></note>

<para
>Poderá querer desactivar a verificação do Agente do &ssh;, no caso das situações em que o &kdesrc-build; não detecte bem a presença de um agente. Para desactivar a verificação do agente, configure a opção <option
>disable-agent-check</option
> como <userinput
>true</userinput
>.</para>

<informalexample>
<para
>Desactivar a verificação do agente do &ssh;:</para>
<screen
>global
  disable-agent-check true
end global
</screen>
</informalexample>

</sect2>

</sect1>

<sect1 id="other-features">
<title
>Outras funcionalidades do &kdesrc-build;</title>

<sect2 id="changing-verbosity">
<title
>Mudar a quantidade de mensagens do resultado do &kdesrc-build;</title>
<para
>O &kdesrc-build; tem várias opções para controlar a quantidade de dados à saída que o programa gera. Em qualquer caso, os erros serão sempre apresentados.</para>

<itemizedlist>
<listitem
><para
>A opção <option
>--quiet</option
> (o seu formato curto é o <option
>-q</option
>) faz com que o &kdesrc-build; seja maioritariamente silencioso. Só as mensagens importantes, avisos ou erros serão apresentados. Quando estiver disponível, a informação de progresso é à mesma apresentada.</para
></listitem>

<listitem
><para
>A opção <option
>--really-quiet</option
> (sem formato curto) faz com que o &kdesrc-build; mostre apenas os avisos importantes ou os erros, enquanto estiver em execução.</para
></listitem>

<listitem
><para
>A opção <option
>--verbose</option
> (o formato curto é o <option
>-v</option
>) faz com que o &kdesrc-build; seja muito detalhado nos seus resultados.</para
></listitem>

<listitem
><para
>A opção <option
>--debug</option
> serve apenas para fins de depuração, dado que faz com que o &kdesrc-build; actue como se o <option
>--verbose</option
> estivesse activo, fazendo com que os comandos sejam também apresentados no terminal e mostrando a informação de depuração para várias funções.</para
></listitem>
</itemizedlist>

</sect2>

<sect2 id="kdesrc-build-color">
<title
>Resultado colorido</title>
<para
>Ao ser executado a partir do &konsole; ou de um terminal diferente, o &kdesrc-build; irá mostrar normalmente o texto a cores.</para>

<para
>Poderá desactivar isto com a opção <option
>--no-color</option
> na linha de comandos ou configurando a opção &colorful-output; no <link linkend="configure-data"
>ficheiro de configuração</link
> como <userinput
>false</userinput
>. </para>

<informalexample>
<para
>Desactivar as mensagens a cores no ficheiro de configuração:</para>
<screen
>global
  colorful-output false
end global
</screen>
</informalexample>

</sect2>

<sect2 id="deleting-build-dir">
<title
>Remover as pastas desnecessárias após uma compilação</title>
<para
>Está com falta de espaço em disco mas deseja à mesma fazer uma extracção actualizada do &kde;? O &kdesrc-build; poderá ajudar a reduzir a sua utilização do disco ao compilar o &kde; a partir do &subversion;.</para>

<note
><para
>Tenha em atenção que a compilação do &kde; ocupa bastante espaço. Existem bastantes componentes grandes em termos de espaço ao usar o &kdesrc-build;:</para
></note>

<orderedlist>
<listitem
><para
>A extracção de código actual poderá levar bastante espaço. Os módulos por omissão levam cerca de 1,6 gigabytes de espaço em disco. Poderá reduzir esta quantidade, se garantir que só vai compilar os módulos que deseja de facto. O &kdesrc-build; não irá remover o código-fonte do disco, mesmo que remova o item do <link linkend="configure-data"
>ficheiro de configuração</link
>, como tal garanta que são apagados os módulos extraídos e não usados da pasta de código. Lembre-se que os ficheiros de código são obtidos da Internet, pelo que <emphasis
>não deverá</emphasis
> removê-los se for usar estes ficheiros de facto, pelo menos até acabar de usar o &kdesrc-build;.</para>

<para
>Da mesma forma, se já tiver um &Qt; instalado pela sua distribuição (e é bastante possível que isso aconteça), provavelmente não irá necessitar de instalar o módulo 'qt'. Isso irá poupar cerca de 200 MB do código no disco.</para>

<para
>Uma coisa a reparar é que, devido à forma como o &subversion; funciona, existem de facto dois ficheiros no disco para cada ficheiro extraído do repositório. O &kdesrc-build; não tem código neste ponto para tentar minimizar o tamanho do código, quando este não estiver a ser usado. </para>
</listitem>

<listitem>
<para
>O &kdesrc-build; irá criar uma pasta de compilação separada, para onde irá compilar o código-fonte. Algumas vezes o &kdesrc-build; terá de copiar uma pasta de código para criar uma pasta de compilação falsa. Quando isso acontecer, são usadas as ligações simbólicas, caracterizadas por poupar espaço, como tal isso não deverá ser um problema a nível de espaço em disco. A pasta de compilação será tipicamente muito maior que a pasta de código de um módulo. Por exemplo, a pasta de compilação do 'kdebase' ocupa cerca de 1 050 megabytes, enquanto o código do 'kdebase' ocupa apenas cerca de 550 megabytes.</para>

<para
>Felizmente, a pasta de compilação não é necessária após um módulo ter sido compilado e instalado com sucesso. O &kdesrc-build; poderá remover automaticamente a pasta de compilação após a instalação de um módulo; veja os exemplos abaixo para mais informações. Lembre-se que a utilização deste passo tornará impossível ao &kdesrc-build; efectuar as compilações incrementais que poupam tempo.</para>
</listitem>

<listitem
><para
>Finalmente, existe espaço em disco necessário para a própria instalação do &kde;, que não executa a partir da pasta de compilação. Este espaço é normalmente menor que o da pasta de compilação. É mais difícil ter os valores exactos, de qualquer forma. </para
></listitem>
</orderedlist>

<para
>Como é que reduz os requisitos de espaço do &kde;? Uma forma é usar as opções de compilação adequadas, para optimizar a redução de espaço em vez da velocidade. Outra forma, que poderá fazer bastante efeito, é remover a informação de depuração da sua compilação do &kde;. </para>

<warning
><para
>Deverá ter mesmo a certeza que sabe o que faz, antes de decidir remover a informação de depuração. A execução de aplicações demasiado actuais significa que está a correr programas que, potencialmente, poderão ter tendência a estoirar, algo que não acontece numa versão estável. Se estiver a executar 'software' sem informações de depuração, poderá ser bastante difícil criar um bom relatório de erros para que o seu erro seja resolvido; como tal, é possível que tenha de activar de novo a informação de depuração da aplicação afectada e compilá-la de novo para ajudar um programador a resolver o estoiro. Como tal, remova a informação de depuração por sua conta e risco! </para
></warning>

<informalexample>
<para
>A remoção da pasta de compilação, após a instalação de um módulo. A pasta do código é mantida à mesma e a depuração fica activa:</para>

<screen
>global
  configure-flags      --enable-debug
  remove-after-install builddir        # Remover a pasta de compilação após a instalação
end global
</screen>

<para
>A remoção da pasta de compilação após a instalação, sem informações de depuração e com optimizações do tamanho.</para>

<screen
>global
  cxxflags             -Os             # Optimizar o tamanho
  configure-flags      --disable-debug
  remove-after-install builddir        # Remover a pasta de compilação após a instalação
end global
</screen>
</informalexample>
</sect2>

</sect1>

</chapter>

<chapter id="kde-cmake">
<title
>&cmake;, o sistema de compilação do &kde; 4</title>

<sect1 id="kde-cmake-intro">
<title
>Introdução ao &cmake;</title>

<para
>Em Março de 2006, o programa &cmake; ultrapassou os vários adversários e foi seleccionado para ser o sistema de compilação do &kde; 4, substituindo o sistema baseado nas 'autotools' que o &kde; tem usado desde o início.</para>

<para
>Está disponível uma página de introdução ao &cmake; no <ulink url="https://community.kde.org/Guidelines_HOWTOs/CMake\"
>Wiki da Comunidade do &kde;</ulink
>. Basicamente, em vez de correr <userinput
><command
>make</command
> <option
>-f</option
> <filename
>Makefile.cvs</filename
></userinput
>, depois o <command
>configure</command
>, depois o &make;, basta simplesmente correr o &cmake; e depois o &make;. </para>

<para
>O &kdesrc-build; tem o suporte para o &cmake;. Algumas funcionalidades do &kdesrc-build; são realmente funcionalidades do sistema de compilação subjacente, incluindo o <link linkend="conf-configure-flags"
>configure-flags</link
> e o <link linkend="conf-do-not-compile"
>do-not-compile</link
>. Quando estiverem disponíveis funcionalidades equivalentes, serão disponibilizadas. Por exemplo, a equivalente da opção 'configure-flags' é a <link linkend="conf-cmake-options"
>cmake-options</link
>, assim como a opção <link linkend="conf-do-not-compile"
>do-not-compile</link
> também é suportada para o &cmake; desde a versão 1.6.3 do &kdesrc-build;. </para>

</sect1>
</chapter>

<chapter id="credits-and-license">
<title
>Créditos e Licença</title>

<para
>Tradução de José Nuno Pires <email
>zepires@gmail.com</email
></para
> 
&underFDL; </chapter>

<appendix id="appendix-modules">
<title
>Organização dos módulos e do código-fonte do &kde;</title>
<sect1 id="module-concept">
<title
>O <quote
>Módulo</quote
></title>

<para
>O &kde; agrupa os seus programas em <quote
>módulos</quote
> de diversos tamanhos. Isto era apenas um agrupamento lógico de alguns módulos grandes, mas com a introdução dos <ulink url="https://commits.kde.org/"
>repositórios de código-fonte</ulink
> baseados no <ulink url="https://git-scm.com/"
>Git</ulink
>, estes grandes módulos foram por sua vez divididos em muitos módulos mais pequenos. </para>

<para
>O &kdesrc-build; também usa este conceito de módulos. Em resumo, um <quote
>módulo</quote
> é um agrupamento de código que poderá ser transferido, compilado, testado e instalado. </para>

<sect2 id="single-modules">
<title
>Módulos individuais</title>

<para
>É fácil indicar ao &kdesrc-build; para compilar um único módulo. Na seguinte lista está um exemplo de como deveria ser uma declaração de um módulo baseado em Subversion no <link linkend="kdesrc-buildrc"
>ficheiro de configuração</link
>.</para>

<programlisting
>module <replaceable
>kdexpto</replaceable>
    <option
><replaceable
>cmake-options -DCMAKE_BUILD_TYPE=Debug</replaceable
></option>
end module
</programlisting>

<tip
><para
>Este é um módulo baseado no Subversion, dado que não usa uma opção <link linkend="conf-repository"
>repository</link
>. Do mesmo modo, a opção <option
>cmake-options</option
> aparece apenas como exemplo, não sendo obrigatória.</para
></tip>

</sect2>
<sect2 id="module-groups">
<title
>Grupos de módulos relacionados</title>

<para
>Agora, a maioria dos módulos de código do &kde; são baseados no Git do &kde;, estando normalmente reunidos em grupos de módulos.</para>

<para
>Deste modo, o &kdesrc-build; também suporta grupos de módulos, usando os <link linkend="module-sets"
>conjuntos de módulos</link
>. Por exemplo:</para>

<programlisting
>module-set <replaceable
>módulos-base</replaceable>
    <option
>repository</option
> kde-projects
    <option
>use-modules</option
> <replaceable
>kde-runtime kde-workspace kde-baseapps</replaceable>
end module-set
</programlisting>

<tip
><para
>Poderá deixar o nome do conjunto de módulos (<replaceable
>módulos-base</replaceable
> neste caso) vazio se o desejar. Esta opção <option
>repository</option
> indica ao &kdesrc-build; de onde transferir o código, mas poderá também usar um URL <symbol
>git://</symbol
>.</para
></tip>

<para
>Uma funcionalidade especial do <quote
><option
>repository</option
> <literal
>kde-projects</literal
></quote
> é que o &kdesrc-build; irá incluir automaticamente todos os módulos do Git que estiverem agrupados sob os módulos que apresentar (na base de dados do Projecto KDE).</para>
</sect2>

<sect2 id="module-branch-groups">
<title
><quote
>Grupos de ramificações</quote
> do módulo</title>

<para
>Levando adiante o conceito de <link linkend="module-groups"
>grupo de módulos</link
>, os programadores do &kde; descobriram eventualmente que a sincronização dos nomes das ramificações de Git por uma grande quantidade de repositórios estava a tornar-se mais difícil, especialmente durante o esforço de desenvolvimento das novas Plataformas do &kde;  para o &Qt; 5. </para>

<para
>Como tal, o conceito de <quote
>grupos de ramificações</quote
> foi desenvolvido, de modo a permitir aos utilizadores e programadores seleccionar um de alguns grupos, permitindo ao programa seleccionar automaticamente a ramificação do Git apropriada. </para>

<para
>O &kdesrc-build; suporta esta funcionalidade desde a versão 1.16-pre2, através da opção <link linkend="conf-branch-group"
>branch-group</link
>. </para>

<example id="ex-branch-group">
<title
>Exemplo de utilização do 'branch-group'</title>

<para
>O 'branch-group' pode ser usado no ficheiro de configuração da seguinte forma: </para>

<programlisting
>global
    # Seleccionar a Plataforma do KDE 5 e outras aplicações baseadas em Qt5
    <option
>branch-group</option
> <replaceable
>kf5-qt5</replaceable>

    # Outras opções globais aqui ...
end global

module-set
    # o 'branch-group' só funciona para o 'kde-projects'
    <option
>repository</option
> kde-projects

    # o 'branch-group' herda do definido a nível global, mas pode ser definido aqui.

    <option
>use-modules</option
> <replaceable
>kdelibs kde-workspace</replaceable>
end module-set

# a ramificação das 'kdelibs' será a "frameworks"
# a ramificação do 'kde-workspace' será a "master" (em Agosto de 2013)
</programlisting>

<para
>Neste caso, o mesmo <literal
>branch-group</literal
> devolve diferentes nomes de ramificações para cada módulo do Git. </para>
</example>

<para
>Esta funcionalidade necessita de manter alguns dados por parte dos programadores do &kde; num repositório de Git chamado <literal
>kde-build-metadata</literal
>; contudo, este módulo será incluído automaticamente pelo &kdesrc-build; (ainda que o possa ver a aparecer no resultado do programa). </para>

<tip
><para
>Os módulos do &kde; que não têm um nome de ramificação definido para o grupo de ramificações que escolher irão ter por omissão um nome de ramificação apropriado, como se não tivesse indicado o <literal
>branch-group</literal
> de todo. </para
></tip>

</sect2>

</sect1>
</appendix>

<appendix id="appendix-profile">
<title
>Procedimentos de configuração do perfil obsoletos</title>

<sect1 id="old-profile-setup">
<title
>Configurar um perfil de autenticação do &kde;</title>

<para
>Estas instruções descrevem como configurar o perfil necessário para garantir que o seu computador consegue iniciar uma sessão no seu ambiente de trabalho &plasma; do &kde; acabado de compilar. O &kdesrc-build; irá tentar  fazer isto automaticamente (veja em <xref linkend="session-driver"/>). Esta secção do apêndice poderá ser útil para os que não consigam usar o suporte do &kdesrc-build; para a configuração dos perfis de autenticação. Contudo, as instruções nem sempre estão actualizadas, pelo que poderá ser útil consultar o ficheiro <filename
>kde-env-master.sh</filename
> que vem incluído com o código do &kdesrc-build;.</para>

<sect2 id="changing-profile">
<title
>Alterar a configuração do seu perfil inicial</title>

<important
><para
>O ficheiro <filename
>.bash_profile</filename
> é o ficheiro de configuração do utilizador na linha de comandos <application
>bash</application
>, que é usada por muitas distribuições de &Linux;. Se usar uma linha de comandos diferente, então poderá ter de ajustar os exemplos dados nesta secção, para a sua linha de comandos em particular.</para
></important>

<para
>Abra ou crie o ficheiro <filename
>.bash_profile</filename
> na pasta pessoal com o seu editor favorito e adicione ao fim do ficheiro: Se estiver a compilar o módulo 'qt' (como está por omissão), adicione em alternativa: <programlisting>
QTDIR=(local da qtdir)   # Por omissão, ~/kdesvn/build/qt.
KDEDIR=(local da kdedir) # Por omissão ~/kde.
KDEDIRS=$KDEDIR
PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
MANPATH=$QTDIR/doc/man:$MANPATH

# Actuar adequadamente se a LD_LIBRARY_PATH não estiver definida
if [ -z $LD_LIBRARY_PATH ]; then
  LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib
else
  LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
fi

export QTDIR KDEDIRS PATH MANPATH LD_LIBRARY_PATH
</programlisting
> ou, se não estiver a compilar o 'qt' (e usar o &Qt; do seu sistema), adicione isto em alternativa: <programlisting
>KDEDIR=(local da kdedir)  # Por omissão ~/kde.
KDEDIRS=$KDEDIR
PATH=$KDEDIR/bin:$QTDIR/bin:$PATH

# Actuar adequadamente se a LD_LIBRARY_PATH não estiver definida.
if [ -z $LD_LIBRARY_PATH ]; then
  LD_LIBRARY_PATH=$KDEDIR/lib
else
  LD_LIBRARY_PATH=$KDEDIR/lib:$LD_LIBRARY_PATH
fi

export KDEDIRS PATH LD_LIBRARY_PATH
</programlisting>
</para>

<para
>Se não estiver a usar um utilizador dedicado, defina um novo <envar
>$KDEHOME</envar
> para o seu novo ambiente no seu ficheiro <filename
>.bash_profile</filename
>: <programlisting
>export KDEHOME="${HOME}/.kde-svn"

# Criar a pasta se necessário
[ ! -e ~/.kde-svn ] &amp;&amp; mkdir ~/.kde-svn
</programlisting>
</para>

<note>
<para
>Se, mais tarde, o seu Menu K estiver vazio ou completamente cheio de aplicações da sua distribuição, poderá ter de definir as suas variáveis de ambiente do <acronym
>XDG</acronym
> no seu <filename
>.bash_profile</filename
>: <programlisting
>XDG_CONFIG_DIRS="/etc/xdg"
XDG_DATA_DIRS="${KDEDIR}/share:/usr/share"
export XDG_CONFIG_DIRS XDG_DATA_DIRS
</programlisting>

</para>
</note>

</sect2>
<sect2 id="starting-kde">
<title
>Iniciar o &kde;</title>

<para
>Agora que ajustou a sua configuração do ambiente para usar o &kde; correcto, é importante garantir que é usado o programa <command
>startkde</command
> correcto, também. </para>

<para
>Abra o ficheiro de texto <filename
>.xinitrc</filename
> da sua pasta pessoal, ou crie-o se necessário. Adicione a linha: <programlisting
><command
>exec</command
> <option
>${KDEDIR}/bin/startkde</option
>
</programlisting>
</para>

<important
><para
>Em algumas distribuições, poderá ser necessário efectuar os mesmos passos com o ficheiro <filename
>.xsession</filename
>, também na pasta pessoal. Isto aplica-se especialmente nos gestores de autenticação gráficos como o &kdm;, o <application
>gdm</application
> ou o <application
>xdm</application
>.</para>
</important>

<para
>Agora inicie o seu &kde; novo: nos sistemas &BSD; e &Linux;, com o suporte para terminais virtuais, os atalhos <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F1</keycap
></keycombo
> ... <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F12</keycap
></keycombo
> são usados para mudar para a Consola Virtual 1 a 12. Isto permite-lhe executar mais que um ambiente gráfico ao mesmo tmpo. Os primeiros seis são terminais de texto e os seis seguintes são gráficos. </para>

<para
>Se, quando iniciar o seu computador, lhe aparecer o gestor gráfico de autenticação, poderá usar o novo ambiente do &kde;, mesmo que não apareça como uma opção. A maioria dos gestores de autenticação, incluindo o &kdm;, têm uma opção para usar uma <quote
>Sessão Personalizada</quote
> quando se ligar. Com esta opção,a sua configuração de sessões é carregada do ficheiro <filename
>.xsession</filename
> da sua pasta pessoal. Se já tiver modificado este ficheiro como descrito acima, esta opção deverá carregar a sua nova instalação do &kde;. </para>

<para
>Caso contrário, existe algo que poderá tentar que normalmente funciona: Carregue em <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F2</keycap
></keycombo
>, para que lhe apareça um terminal de texto. Ligue-se com o utilizador dedicado e escreva: </para>

<screen
><command
>startx</command
> <option
>--</option
> <option
>:1</option
>
</screen>

<tip>
<para
>Poderá executar o &kde; a partir do código e o &kde; antigo ao mesmo tempo! Ligue-se com o seu utilizador normal e inicie o ambiente de trabalho do &kde; estável. Carregue em <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F2</keycap
></keycombo
> (ou <keycap
>F1</keycap
>, <keycap
>F3</keycap
>, etc..), e verá um terminal de texto. Ligue-se com o utilizador dedicado ao &subversion; do &kde; e escreva:</para>

<screen
><command
>startx</command
> <option
>--</option
> <option
>:1</option
>
</screen>

<para
>Poderá voltar ao ambiente de trabalho do &kde; do seu utilizador normal se carregar na tecla de atalho do ambiente já em execução. Este é normalmente o <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F7</keycap
></keycombo
>, sendo que poderá também necessitar de usar o <keycap
>F6</keycap
> ou o <keycap
>F8</keycap
> em alternativa. Para voltar ao seu &kde; compilado pelo &kdesrc-build;, irá usar a mesma sequência, exceptuando o facto da tecla de função seguinte. Por exemplo, se precisar de introduzir o <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F7</keycap
></keycombo
> para mudar para o seu &kde; normal, poderá ter de introduzir <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F8</keycap
></keycombo
> para voltar ao seu &kde; do &kdesrc-build;.</para>
</tip>

</sect2>
</sect1>

</appendix>
</book>
