<?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-2015 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 % Brazilian-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
>Marcus</firstname
><surname
>Gama</surname
><affiliation
><address
><email
>marcus.gama@gmail.com</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
><othercredit role="translator"
><firstname
>André Marcelo</firstname
><surname
>Alvarenga</surname
><affiliation
><address
><email
>alvarenga@kde.org</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>
<holder
>Michael Pyne</holder>
</copyright>

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

<legalnotice
>&FDLNotice;</legalnotice>

<date
>12/09/2015</date>
<releaseinfo
>15.09</releaseinfo>

<abstract>
<para
>O &kdesrc-build; é um script que compila e instala programas do &kde; diretamente a partir do repositório de código-fonte do projeto 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 script que ajuda os usuários a instalar programas do <ulink url="http://www.kde.org/"
>&kde;</ulink
> a partir dos seus repositórios de código do <ulink url="http://subversion.tigris.org/"
>&subversion;</ulink
> e do <ulink url="http://gitscm.org/"
>&git;</ulink
>. </para>

<para
>Além de simplesmente instalar aplicações do &kde;, o programa também pode ser usado para atualizar os programas do &kde; instalados. Isto permite mantê-lo atualizado em relação ao desenvolvimento do &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 intencionalmente com as mesmas ferramentas que estão disponíveis para o usuário pela linha de comando. Quando o &kdesrc-build; é executado, é seguida a sequência abaixo: </para>

<orderedlist>
<listitem
><para
>O &kdesrc-build; usa uma <link linkend="cmdline"
>linha de comando</link
> e um <link linkend="configure-data"
>arquivo 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; executa uma atualização de código para cada <link linkend="module-concept"
>módulo</link
>. A atualização prossegue até que todos os módulos tenham sido atualizados. Os módulos que não consigam ser atualizados normalmente não interrompem o processo &ndash; você será notificado no fim sobre quais os módulos não foram atualizados.</para
></listitem>
</orderedlist>

</sect2>
</sect1>

<sect1 id="intro-toc">
<title
>Visão Geral da Documentação</title>

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

<itemizedlist>
<listitem
><para
>Uma <link linkend="getting-started"
>visão geral</link
> dos passos necessários para iniciar.</para
></listitem>
<listitem
><para
><link linkend="features"
>Funcionalidades</link
> notáveis.</para
></listitem>
<listitem
><para
>A sintaxe do <link linkend="configure-data"
>arquivo de configuração</link
> e suas opções.</para
></listitem>
<listitem
><para
>As <link linkend="cmdline"
>opções de linha de comando</link
>.</para
></listitem>
</itemizedlist>

<para
>Também são documentados aqui os passos que você deve realizar usando outras ferramentas (em outras palavras, passos que não são automaticamente realizados pelo &kdesrc-build;). </para>

</sect1>
</chapter>

<chapter id="getting-started">
<title
>Começando</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 compilá-los. Nós daremos também uma explicação básica da estrutura do código-fonte do &kde; e os passos que você terá que efetuar antes de executar o programa. </para>

<para
>Todos os tópicos presentes neste capítulo são cobertos com ainda mais detalhes no artigo <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4"
> Compilando o &kde; 4 a partir do Código-Fonte</ulink
>, na <ulink url="http://techbase.kde.org/"
> Página TechBase do &kde;</ulink
>. Se você estiver compilando o &kde; pela primeira vez, é uma boa ideia lê-lo ou consultá-lo como fonte de referência. Você 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
>Preparando o Sistema para Compilar o &kde;</title>

<sect2 id="before-building-users">
<title
>Configurar uma nova conta de usuário</title>

<para
>É recomendável que você use uma conta de usuário diferente para compilar, instalar e executar seus programas &kde;, uma vez que menos permissões são necessárias e para evitar a interferência com os pacotes de sua distribuição. Se você já possui pacotes do &kde; instalados, a melhor opção seria criar um usuário diferente (dedicado) para compilar e executar o novo &kde;. </para>

<tip
><para
>Deixar seu sistema &kde; intocado também permite que você volte ao estado anterior em uma emergência caso um &kde; compilado seja instável por qualquer razão. </para
></tip>

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

</sect2>
<sect2 id="before-building-preparation">
<title
>Certifique-se de 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), você deverá instalar as ferramentas de desenvolvimento e bibliotecas necessárias para o &kde;. A lista quase completa das ferramentas necessárias pode ser encontrada na página <ulink url="http://techbase.kde.org/Getting_Started/Build/Requirements"
>KDE TechBase Build Requirements</ulink
>. </para>

<para
>Aqui está uma lista das coisas que você irá precisar:</para>
<itemizedlist>

<listitem
><para
>Você precisa do &cmake;. A versão necessária poderá variar de acordo com a versão do &kde; 4 que estiver compilando; veja a TechBase para detalhes, mas uma boa dica é ter instalada a versão mais recente. O &cmake; é o programa usado pelo &kdesrc-build; para lidar com a configuração e compilação da maioria dos aplicativos do &kde;. </para
></listitem>

<listitem
><para
>É também necessário instalar os programas-cliente usados para extrair o código-fonte do &kde;. Isto significa que você precisa pelo menos o seguinte:</para>

<itemizedlist>
<listitem
><para
>O &subversion;, que costumava ser o único sistema de controle de versões usado, e que ainda continua a ser utilizado para alguns módulos com arquivos de dados grandes. Você pode verificar se possui instalado digitando <userinput
><command
>svn <option
>--version</option
></command
></userinput
>.</para
></listitem>

<listitem
><para
>Você irá precisar do <ulink url="http://gitscm.org/"
>gerenciador de controle de versões Git</ulink
> instalado, para os projetos do &kde; <ulink url="http://projects.kde.org/"
>baseados em Git.</ulink
> .</para
></listitem>

<listitem
><para
>Ainda que não seja necessário, o gerenciador de controle 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 usuários poderão instalar esta biblioteca através dos pacotes da sua distribuição, mas o &kdesrc-build; suporta a compilação do mesmo, se assim desejar. Entretanto, para compilar o libdbusmenu-qt, você precisa ter o Bazaar instalado.</para
></listitem>

</itemizedlist
></listitem>

<listitem
><para
>Você precisará do ambiente de desenvolvimento C++ completo. O GCC 4.6 ou superior é recomendado.</para
></listitem>

<listitem
><para
>Finalmente, você precisa de uma ferramenta <quote
>make</quote
>. O GNU Make é o recomendado e deve estar disponível no seu gerenciador de pacotes. Após o <command
>cmake</command
> ter sido executado pelo &kdesrc-build;, o <command
>make</command
> lida com o processo de compilação, por isto ele é obrigatório.</para
></listitem>

</itemizedlist>

<note
><para
>A maioria das distribuições e sistemas operacionais inclui um método para instalar facilmente as ferramentas de desenvolvimento necessárias. Consulte a página <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4"
>Começando</ulink
> da TechBase, na sua seção <quote
>Pacotes necessários para sua Distribuição</quote
> para ver se estas instruções já estão disponíveis.</para
></note>

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

<itemizedlist>
<listitem>
  <para
>Certifique-se de que removeu o módulo 'qt' do seu <link linkend="configure-data"
>arquivo de configuração</link
>, uma vez que você não irá precisar dele e, se possuí-lo, isso só vai adicionar um tempo adicional à 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"
>arquivo 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 ser chamado de <command
>qmake4</command
> ou <command
>qmake-qt4</command
> na sua distribuição.</para
></note>
</listitem>

<listitem>
  <para
>Se você não tiver já o &Qt; instalado, instale-o, incluindo os pacotes -dev ou -devel necessários. Você 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. Você precisará, pelo menos, do programa ou biblioteca <emphasis
>e</emphasis
> do seu pacote de desenvolvimento. As bibliotecas que necessita irão variar de acordo com os módulos que pretende compilar, uma vez que cada módulo possui os seus próprios requisitos. O <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4#Required_packages_from_your_distribution"
>TechBase do &kde;</ulink
> tem mais detalhes sobre as ferramentas e técnicas específicas usadas para instalar e encontrar os programas necessários. </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
>Você provavelmente já tem uma versão do programa &kdesrc-build; instalada no seu sistema. Contudo, se não tiver, poderá obtê-lo na <ulink url="http://kdesrc-build.kde.org/"
>página do &kdesrc-build;</ulink
> ou poderá encontrá-lo no seu local original, no repositório de código do &kde;.</para>

<tip
><para
>Se você usar um &kdesrc-build; mais recente baixado de sua página Web, você deve lembrar-se de executar o script &kdesrc-build; que você baixou. Você pode usar a opção <option
>--version</option
> no &kdesrc-build; como uma maneira rápida de verificar isto.</para
></tip>

<orderedlist>
<listitem
><para
>Para baixar o &kdesrc-build; a partir de sua página, basta ir para a <ulink url="http://kdesrc-build.kde.org/"
>página do &kdesrc-build;</ulink
> e transferir a versão mais recente. A versão está dentro de um pacote TAR comprimido, que você pode extrair com o &ark; ou o <command
>tar</command
>. O conteúdo do pacote inclui o programa &kdesrc-build; atual, um arquivo de configuração de exemplo (<filename
>kdesrc-buildrc-sample</filename
>) e um programa de configuração rápida.</para
></listitem>

<listitem
><para
>Ou você 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 <option
><replaceable
>~/kdesrc-build</replaceable
></option
> pela pasta aonde você deseja instalar. </para
></listitem>
</orderedlist>

<para
>Independentemente da técnica que usar, você deverá certificar-se de que o arquivo <filename
>kdesrc-build</filename
> é executável. Por conveniência, deverá colocá-lo em uma pasta que esteja 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á rodando uma versão errada por engano.</para>
</sect3>

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

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

<para
>Você pode usar um programa incluído com o &kdesrc-build;, chamado <application
>kdesrc-build-setup</application
> para preparar uma configuração básica do kdesrc-build. Você pode então editar o <filename
>~/.kdesrc-buildrc</filename
> a partir desta configuração e então fazer as mudanças que desejar.</para>

<para
>O <application
>kdesrc-build-setup</application
> em si é executado a partir de um terminal (ao invés de usar uma interface gráfica), da mesma maneira que o &kdesrc-build;, assim você pode usá-lo mesmo se a interface gráfica ainda não estiver disponível.</para>

<tip
><para
>Você pode usar a configuração de exemplo <filename
>kdesrc-buildrc-sample</filename
> para obter explicações sobre as diversas opções disponíveis. </para
></tip>

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

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

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

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

<note
><para
>É possível usar arquivos de configuração diferentes para o &kdesrc-build;, que estão descritos em <xref linkend="kdesrc-buildrc"/>. Se você precisar usar várias configurações, veja esta seção. Aqui, nós iremos considerar que a configuração está armazenada em <filename
>~/.kdesrc-buildrc</filename
>.</para
></note>

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

<para
>A configuração padrão já deverá ser apropriada para efetuar uma compilação do &kde;. Algumas opções que você poderá querer alterar incluem: <itemizedlist>
<listitem
><para
><link linkend="conf-use-stable-kde"
>use-stable-kde</link
> para alterar a versão padrão dos módulos do &kde; a compilar. Por padrã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 projeto &kde;, assim 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. Ela é por padrão a <filename class="directory"
>~/kde</filename
>, que é uma instalação para um único usuário.</para
></listitem>

<listitem
><para
><link linkend="conf-qtdir"
>qtdir</link
>, que controla o local da instalação do &Qt; a ser usado. Por padrão, usa um &Qt; compilado pelo &kdesrc-build;, usando o módulo especial 'qt' 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 seleciona o &url; de onde baixar o código. Isto é útil se você for um programador com uma <ulink url="http://techbase.kde.org/Contribute/First_Steps_with_your_KDE_SVN_Account"
>conta &subversion; para o &kde;</ulink
>.</para
></listitem>

<listitem
><para
>Você provavelmente desejará selecionar 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 seleçã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 irá ajudá-lo a selecionar adequadamente os módulos de aplicações que deseja compilar. </para>

<orderedlist>
<listitem
><para
>No nível inferior vem a biblioteca &Qt; da Digia, que é uma biblioteca multi-plataforma e muito poderosa. O &kde; baseia-se no &Qt; e algumas das bibliotecas fora do &kde; que são necessárias 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 parte do &kde; propriamente dito, devido à sua natureza genérica, mas são ainda 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, muitas bibliotecas do módulo do 'kdesupport' estão sendo migradas para o <ulink url="http://projects.kde.org/"
>git.kde.org</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 projeto &kde;.</para
></listitem>

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

        <listitem
><para
>A Compilação de Software do &kde; (SC). Esta é uma coleçã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 coletânea de jogos de alta qualidade para lhe ocupar o tempo.</para
></listitem>

        <listitem
><para
>Finalmente, existe uma coleção de aplicações (também agrupada em módulos) cujo desenvolvimento é suportado pelos recursos do &kde; (como as traduções, o controle de código, o registro 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 migrando para o <ulink url="http://projects.kde.org/"
>git.kde.org</ulink
>.</para
></listitem>
    </itemizedlist>
</listitem>
</orderedlist>
</sect2>

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

<para
>A seleção de qual dos módulos possíveis a compilar é controlada pelo <link linkend="kdesrc-buildrc"
>arquivo de configuração</link
>. Depois da seçã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 arquivo 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 # Rodar 4 compilações de cada vez
end module
</programlisting>
</example>

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

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

<para
>Existe um arquivo de exemplo, que vem com o &kdesrc-build;, chamado <filename
>kdesrc-buildrc-sample</filename
>. Recomenda-se que copie este arquivo para um outro chamado <filename
>~/.kdesrc-buildrc</filename
> (<emphasis
>Repare no ponto inicial à frente do 'kdesrc-buildrc'!</emphasis
>). Depois disso, edite o arquivo novo para ajustar as opções pré-definidas a seu gosto. (Cada opção está descrita com mais detalhes no <xref linkend="kdesrc-buildrc"/>). Os módulos padrão deverão ser suficientes para garantir a instalação de um &kde; relativamente completo; contudo, poderá remover muitos dos módulos que aparecem após o <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 determinado 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 uma única URL do Subversion, que descreve exatamente de onde transferir o código-fonte.</para>

<para
>Com a passagem para o Git, muitos módulos maiores do Subversion foram subdivididos 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 conforme necessário...
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á atuar 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
>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 na mesma URL de repositório. 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 diretamente o grupo inteiro de módulos a partir da linha de comando.</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://projects.kde.org/"
>projects.kde.org</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 feito principalmente por cada módulo do Git conter o histórico completo do projeto (isto desperdiça de fato menos espaço em disco do que acontece na maioria dos repositórios do &kde;, uma vez que o &git; é extremamente eficiente gravando repositórios).</para>

<para
>O &kde; permite agrupar os repositórios do Git em coleções de módulos relacionados (p.ex., 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://projects.kde.org/"
>projects.kde.org</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; irá usá-la automaticamente para transferir ou atualizar 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 atual, não só alguns grupos de módulos têm uma coleçã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 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 uma vez que (com o projeto de banco de dados atual) o &kdesrc-build; caso contrário teria que decidir entre o grupo de projetos chamado <quote
>phonon</quote
> ou o projeto individual chamado <quote
>phonon</quote
>. Atualmente, o &kdesrc-build; pegaria o mais antigo, que compilaria mas infraestruturas do que o necessário.</para
></tip>

<para
>O exemplo a seguir será talvez mais realista e demonstra uma funcionalidade que só está disponível na base de dados de módulos do &kde;: a compilação de todos os aplicativos gráficos do &kde; com apenas uma única declaração.</para>

<informalexample>
<programlisting
>module-set <replaceable
>kdegraphics</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
> <literal
>kdegraphics/libs</literal
> <literal
>kdegraphics/*</literal>
end module-set
</programlisting>
</informalexample>

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

<orderedlist>

<listitem
><para
>O &kdesrc-build; permite que você especifique módulos que são descendentes de um determinado módulo, sem compilar o módulo pai, usando a sintaxe <userinput
><replaceable
>nome-módulo</replaceable
>/*</userinput
>. Isto é necessário de fato neste caso uma vez que o módulo base, o kdegraphics, está marcado como inativo, de modo que ele não seja acidentalmente compilado com seus módulos-filho. Especificar os módulos descendentes permite ao &kdesrc-build; pular o módulo desativado. </para
></listitem>

<listitem
><para
>O &kdesrc-build; também não adicionará um módulo fornecido a uma lista de compilação mais de uma vez. Isto nos permite definir manualmente que o<literal
>kdegraphics/libs</literal
> seja compilado primeiro, antes do restante do <literal
>kdegraphics</literal
>, sem que o <literal
>kdegraphics/libs</literal
> seja compilado duas vezes. </para
></listitem>
</orderedlist>

<note
><para
>Convém apontar que o &kdesrc-build; irá tentar compilar os módulos pela ordem correta (por exemplo, se apenas o <literal
>kdegraphics/*</literal
> tiver sido incluído acima), mas isso depende da atualização de outros bancos de dados. Se necessário, você pode listar os módulos na ordem correta manualmente usando a técnica descrita acima. </para
></note>
</sect2>

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

<para
>Você pode decidir que gostaria de compilar todos os programas dentro de um agrupamento de módulos do &kde;, <emphasis
>exceto</emphasis
> um determinado 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 por controles remotos, você pode optar por não baixar, compilar e instalar o <application
>kremotecontrol</application
> todas as vezes que atualizar o <literal
>kdeutils</literal
>.</para>

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

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

    # Esta opção escolhe quais os módulos procurar no banco de dados.
    <option
><link linkend="conf-use-modules"
>use-modules</link
></option
> <replaceable
>kdeutils</replaceable>
    # Esta opção "subtrai" os módulos escolhidos pela opção '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 no banco 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'.
    # Nesse caso, *tanto* o 'extragear/graphics/kipi-plugins' quanto 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
>Usando o script &kdesrc-build;</title>

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

<para
>Depois disso, você 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 em Qua Dez 22 13:21:45 2010
&lt;&lt;&lt;  Processo de Compilação  &gt;&gt;&gt;
Compilando o kdelibs (1/1)
        Esperando a atualização do código-fonte.
        Atualização do código completa para o kdelibs: 48 arquivos afetados.
        Verificando os conflitos de código...
        Compilando...
        A compilação foi bem sucedida ao fim de 13 minutos e 6 segundos.
        Instalando 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 em Qua Dez 22 13:35:38 2010
Os seus registros são gravados em /home/kde-src/log-kdesrc-build/2010-12-22-01
</screen>
</example>

<para
>Neste momento, o &kdesrc-build; deverá começar a baixar o código e a compilá-lo. Dependendo dos módulos que baixar, pode ser possível que o &kdesrc-build; não consiga ter sucesso na primeira vez que compilar o &kde;. Não se desespere! </para>

<para
>O &kdesrc-build; registra o resultado de todos os comandos que executa. Por padrão, os arquivos de registro 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 class="directory"
>~/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 arquivo, 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 arquivo, você irá ver o erro que fez com que a compilação falhasse para esse módulo. Se o arquivo disser (no fim) que faltam alguns pacotes, tente instalar o pacote (incluindo os pacotes -dev apropriados) antes de tentar compilar esse módulo. Certifique-se de 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
>Ou, se o erro parecer ser um erro de compilação do código do &kde; (como um erro de sintaxe, <quote
>protótipo incorreto</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
>Você 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;, no <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4"
>Compilando o &kde; 4 a Partir do Código</ulink
>. </para>

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

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

</sect1>

<sect1 id="environment">
<title
>Configurando o ambiente para executar o seu ambiente de trabalho &plasma; do &kde;</title>

<para
>Assumindo que você está usando um usuário dedicado para compilar o &kde; e já possui uma versão do &kde; instalada, a execução do seu &kde; novo precisará de alguns truques, uma vez que o &kde; novo terá de ter precedência sobre o antigo. Você deve alterar as variáveis de ambiente dos seus scripts de inicialização para ter certeza de que é usada a mais nova compilação do ambiente de trabalho. </para>

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

<para
>Desde a versão 1.16, o &kdesrc-build; irá tentar instalar um driver 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 gerenciador de autenticação. Isto poderá ser desativado com a opção <option
><link linkend="conf-install-session-driver"
>install-session-driver</link
></option
> do arquivo de configuração.</para>

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

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

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

<para
>Os gerenciadores de autenticação predefinidos de algumas distribuições poderão necessitar de pacotes adicionais instalados para ter suporte as autenticações com o <literal
>xsession</literal
>.</para>

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

<listitem
><para
>As distribuições de &Linux; <ulink url="http://debian.org/"
>Debian</ulink
> e derivadas deverão ter suporte às autenticações personalizadas com o <literal
>xsession</literal
>, mas precisam que a opção <option
><userinput
>allow-user-xsession</userinput
></option
> esteja configurada no arquivo <filename
>/etc/X11/Xsession.options</filename
>. Veja também a documentação do Debian sobre <ulink url="http://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 outras distribuições, vá para <xref linkend="xsession-manual-setup"/>.</para
></listitem>
</itemizedlist>

</sect3>

<sect3 id="xsession-manual-setup">
<title
>Adicionar manualmente o suporte ao xsession</title>

<para
>Se não existirem instruções específicas para a sua distribuição em <xref linkend="xsession-distribution-setup"/>, você pode 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 de autenticação no .xsession.</title>

<note
><para
>Este procedimento irá necessitar de privilégios administrativos para ser concluído. </para
></note>

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

<step performance="required">
<para
>Certifique-se de que o arquivo recém-criado tenha 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 completa da sua pasta pessoal (por exemplo, <filename class="directory"
>/home/<replaceable
>usuário</replaceable
></filename
>). A definição de itens desktop não permite arquivos genéricos para os usuários. </para
></callout>

</calloutlist>
</step>

<step performance="optional"
><para
>Quando o gerenciador de autenticação for reiniciado, ele deve 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 arquivo <filename
>.xsession</filename
> instalado pelo &kdesrc-build;, caso o tenha selecionado na sua autenticação.</para>

<note
><para
>Pode ser mais simples reiniciar o computador para reiniciar o gerenciador de autenticação, caso este não acompanhe as atualizações da 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 era utilizada para 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 arquivo <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
>Visão Geral das Funcionalidades</title>

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

<itemizedlist>

<listitem
><para
>Você poderá <quote
>fingir</quote
> efetuar as operações. Se passar a opção <option
>--pretend</option
> ou <option
>-p</option
> na linha de comando, o programa fornecerá uma descrição completa dos comandos que está prestes a executar, sem executá-los de fato. Contudo, se você nunca executou o &kdesrc-build;, deverá primeiro executar o comando <command
>kdesrc-build <option
><link linkend="cmdline-metadata-only"
>--metadata-only</link
></option
></command
> para que a opção <option
>--pretend</option
> funcione. <tip
><para
>Para uma descrição ainda mais detalhada do que o &kdesrc-build; está fazendo, tente usar a opção <option
>--debug</option
>. </para
></tip>

</para
></listitem>

<listitem
><para
>O &kdesrc-build; pode (com a assistência do servidor de FTP do &kde;) permitir extrações rápidas de alguns módulos do Subversion. Se o módulo que estiver extraindo já possuir um pacote equivalente na página Web, então o &kdesrc-build; irá baixar essa imagem e prepará-la para o seu computador. </para>

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

<para
>Isto é mais rápido para você, e ajuda a liberar 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 compilação da biblioteca &Qt; (no caso de o ambiente do &kde; que você está tentando 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 precisa de uma <acronym
>GUI</acronym
> presente para funcionar. Por isso, você poderá compilar o &kde; sem precisar de um ambiente gráfico alternativo. </para
></listitem>

<listitem
><para
>Suporta a definição de opções padrã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 padrão</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á baixar uma <link linkend="using-branches"
>marca ou ramificação específica</link
> de um módulo. Você poderá também ter a certeza de 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 baixar a partir de um repositório, ramificação ou marca diferentes. Isto acontece automaticamente quando você mudar alguma opção que altere o &url; do repositório, se bem que você deve usar a opção <link linkend="cmdline-src-only"
>--src-only</link
> para deixar que o &kdesrc-build; saiba que é aceitável efetuar a mudança. </para
></listitem>

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

<listitem
><para
>Para desenvolvedores: O &kdesrc-build; irá <link linkend="ssh-agent-reminder"
>lembrar de você</link
> se você usar o svn+ssh:// mas o <application
>ssh-agent</application
> não estiver em execução, uma vez que isso 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 (até mesmo por módulo). </para
></listitem>

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

<listitem
><para
>O &kdesrc-build; executa <link linkend="build-priority"
>com prioridade reduzida</link
> por padrão, para lhe permitir ainda usar o seu computador, enquanto o &kdesrc-build; estiver trabalhando. </para
></listitem>

<listitem
><para
>Possui 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 determinado módulo. Você pode até <link linkend="ignoring-modules"
>ignorar alguns módulos</link
> temporariamente para uma determinada compilação. </para
></listitem>

<listitem
><para
>O &kdesrc-build; 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 você saiba quanto tempo levou efetivamente. </para
></listitem>

<listitem
><para
>Vem com um conjunto seguro de opções padrão, apropriadas para compilar uma instalação mono-usuário básica 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, você poderá especificar: <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 você mantenha as suas pastas de origem limpas. </para
></listitem>

<listitem
><para
>Você poderá indicar as opções globais a aplicar a todos os módulos a serem obtidos, assim como poderá indicar opções para serem aplicadas aos módulos individualmente. </para
></listitem>

<listitem
><para
>Você 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
>Você 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
>Registro dos comandos. Os arquivos de registro são datados e numerados, para que você 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 registro mais recente na respectiva pasta. </para
></listitem>

<listitem
><para
>Você 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
>Registro de compilação do &kdesrc-build;</title>

<sect2 id="logging-overview">
<title
>Visão geral do registro</title>

<para
>O registro é uma funcionalidade do &kdesrc-build; que consiste no fato do resultado de todos os comandos que o &kdesrc-build; executa serem salvos em um arquivo para serem posteriormente examinados, caso seja necessário. Isto é feito porque frequentemente é necessário ter o resultado destes programas quando houver um erro de compilação, uma vez 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 registro</title>

<para
>Os registros são sempre salvos sob a pasta de registro. O destino da pasta de registro é controlado pela opção <link linkend="conf-log-dir"
>log-dir</link
>, que por padrão é <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 seção, este valor será referido como <symbol
>${log-dir}</symbol
>).</para>

<para
>Sob a <symbol
>${log-dir}</symbol
>, existe um conjunto de pastas, uma de cada vez que o &kdesrc-build; foi executado. Cada pasta possui como nome a data e o número da execução. Por exemplo, a segunda vez que o &kdesrc-build; foi executado em 26 de maio de 2004, será criada 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
>Para sua conveniência, o &kdesrc-build; irá também criar uma ligação para os registros da sua última execução, chamada <filename class="directory"
>latest</filename
>. Assim, os registros da 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; tenta compilar. Do mesmo modo, irá conter um arquivo 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 submódulo (como o extragear/multimedia, playground/utils ou KDE/kdelibs), então, haverá uma disposição equivalente na pasta de registros. Por exemplo, os registros 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 registro de cada módulo, você irá encontrar um conjunto de arquivos para cada operação que o &kdesrc-build; efetuar. Se o &kdesrc-build; atualizar um módulo, você verá arquivos chamados <filename
>svn-co.log</filename
> (para um módulo extraído por completo) ou <filename
>svn-up.log</filename
> (ao atualizar um módulo que já tinha sido extraído). Se o comando <command
>configure</command
> foi executado, então você provavelmente verá um arquivo <filename
>configure.log</filename
> nessa pasta.</para>

<para
>Se ocorreu um erro, você deverá ser capaz de ver uma explicação do motivo em um dos arquivos. Para ajudá-lo a determinar qual o arquivo que contém o erro, o &kdesrc-build; irá criar um link do arquivo que contém o erro (do tipo <filename
>build-1.log</filename
> para um arquivo chamado <filename
>error.log</filename
>).</para>

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

<tip
><para
>Se o arquivo <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 redirecionamento do resultado do &kdesrc-build; e ignorar o arquivo de registro em certas circunstâncias (normalmente ao obter o conteúdo do &subversion; na primeira vez), e o resultado do erro, nesse caso, não estará no arquivo de registro mas sim no &konsole; ou no terminal onde executou o &kdesrc-build;.</para>
</tip>

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

</chapter>

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

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

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

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

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

<para
>O arquivo 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 seções dos módulos, especificadas em uma das duas formas a seguir: </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
> or <userinput
><replaceable
>git://host.org/path/to/repo.git</replaceable
></userinput>
  use-modules <replaceable
>nomes-módulos</replaceable>

# Outras opções podem também ser definidas
<replaceable
>nome-opção valor-opção</replaceable>
<replaceable
>[...]</replaceable>
end module-set
</programlisting>
</listitem>
</itemizedlist>

<important
><para
>Note que a segunda forma, com conjuntos de módulos, <emphasis
>só funciona para módulos baseados no Git</emphasis
>.</para
></important>

<para
>Para módulos do Subversion, <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), apesar de ser possível contornar isto se <link linkend="conf-override-url"
>especificar manualmente a URL do repositório &subversion;</link
>. </para>

<para
>Para módulos do Git, o nome do módulo pode ser essencialmente o que desejar, desde que ele não duplique qualquer outro nome de módulo na configuração. Tenha em mente que o layout do diretório de código e de compilação será baseado no nome do módulo se você não usar a opção <link linkend="conf-dest-dir"
>dest-dir</link
>. </para>

<para
>No entanto, para os <emphasis
>conjuntos de módulos</emphasis
> do Git o <replaceable
>nomes-módulos</replaceable
> devem corresponder com os módulos atuais do git no <option
>repository</option
> escolhido. Veja <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 item do arquivo de configuração, os grupos <literal
>options</literal
>, que podem ser indicados sempre que um <literal
>module</literal
> ou <literal
>module-set</literal
> puder 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 dessa 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 grafia 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 e usando os grupos de <literal
>options</literal
> para fazer alterações individuais.</para>

<example id="ex-options-group">
<title
>Exemplo de uso do 'options'</title>

<para
>Neste exemplo optamos por compilar todos os módulos do grupo de aplicativos multimídia do &kde;. Contudo, queremos usar uma versão diferente do aplicativo &kmix; (talvez para testar uma correção de erro). Isto funciona da seguinte forma:</para>

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

# kmix é uma parte do grupo kde/kdemultimedia, ainda que nunca tenhamos
# citado 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
>, você não deve listar individualmente todos os <emphasis
>outros</emphasis
> programas multimídia do &kde; para lhes dar a opção de ramificação correta.</para>

</example>

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

</sect3>

</sect2>

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

<para
>Dentro do arquivo de configuração, você pode referenciar outros arquivos usando a chave <literal
>include</literal
> com um arquivo, que funcionará como se o arquivo referenciado tivesse sido inserido no arquivo de configuração naquele ponto. </para>

<informalexample
><para
>Por exemplo, você poderá fazer algo como isto:</para>
<programlisting
>global
    include <replaceable
>~/common-kdesrc-build-options</replaceable>

    # Insira opções específicas aqui.

end global
</programlisting>
</informalexample>

<note
><para
>Se você não indicar o caminho completo do arquivo a incluir, então o arquivo será pesquisado a partir da pasta que contém o arquivo de origem. Isso funciona também de forma recursiva.</para
></note>

</sect2>

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

<para
>Segue-se uma lista das opções normalmente usadas. Clique na opção para descobrir mais sobre ela. Para visualizar a lista completa de opções, 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 determinada ramificação, em vez da '/trunk' (para o &subversion;) ou <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 o &Qt; poderá ser configurado.</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 CPUs 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 das 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
>Uma descrição de como responde o &kdesrc-build; se a opção for definida tanto na seção global quanto na seção do módulo do <link linkend="configure-data"
>arquivo de configuração</link
> ao compilar um módulo.</para
></listitem>

<listitem
><para
>Comentários especiais sobre o objetivo 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 a compilação da 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 on-line da API está disponível em <ulink url="http://api.kde.org/"
>kde.org</ulink
>. Além disso, é possível compilar a documentação da API do KDE 4 usando o script <command
>kdedoxygen.sh</command
>, inclu[ido no módulo 'kde-dev-scripts'. Para mais detalhes, consulte o <ulink url="http://techbase.kde.org/Development/Tools/apidox"
>KDE TechBase</ulink
>.</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 <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 ativa o modo de operação assíncrono, onde a atualização do código fonte e o processo de compilação são executados em paralelo, ao invés de esperar por toda a atualização do código antes de iniciar o processo de compilação. O padrão é o modo assíncrono ativado. Para desativar, configure a opção para <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 substitui a global</entry>
<entry
><para
>Ative 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 padrão é o $<envar
>PATH</envar
> que é definido quando o programa inicia. 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. Você poderá usar o til (~) para os locais que adicionar com esta opção.</para>
</entry>
</row>

<row id="conf-branch">
<entry
>ramificação</entry>
<entry
>A configuração do módulo substitui a global</entry>
<entry
><para
>Altere esta opção para obter uma ramificação do &kde;, em vez do valor padrão <replaceable
>master</replaceable
> (para os módulos de &git;) ou <replaceable
>trunk</replaceable
> (para o &subversion;), onde ocorre o desenvolvimento do &kde;.</para>

<para
>Por exemplo, para obter a versão 4.6 do &kde;, você deve 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, você poderá ter que indicar manualmente o &url; de onde baixar usando 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;, você provavelmente vai querer usar a opção <link linkend="conf-branch-group"
>branch-group</link
> e 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 substitui a 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 com suporte pelo &git;, o &kdesrc-build; irá determinar a ramificação atual a ser usada automaticamente, com base nas regras determinadas pelos desenvolvedores do &kde; (estas regras podem ser consultadas no repositório do código <literal
>kde-build-metadata</literal
> da sua pasta de código). Depois de determinar uma ramificação, ela será usada como se você mesmo tivesse indicado a opção <link linkend="conf-branch"
>branch</link
>. </para>

<para
>Isto é útil se você estiver apenas tentando manter-se atualizado sobre algum trajeto normal de desenvolvimento, sem necessidade prestar atenção a todas as mudanças de nome das ramificações.</para>

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

<itemizedlist>

<listitem
><para
><literal
>stable-qt4</literal
>, para seguir as correções de erros das bibliotecas e aplicativos do &kde;, baseados na &Qt; 4.</para
></listitem>

<listitem
><para
><literal
>latest-qt4</literal
>, para seguir o desenvolvimento e as novas funcionalidades das bibliotecas e aplicativos do &kde;, baseado na &Qt; 4.</para
></listitem>

<listitem
><para
><literal
>kf5-qt5</literal
>, para seguir o desenvolvimento <quote
>bleeding-edge</quote
> para o &kde; 5, Frameworks 5, Espaço de Trabalho &plasma; 2, &etc;, baseados na &Qt; 5.</para
></listitem>

</itemizedlist>

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

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

<note
><para
>Esta opção somente se aplica aos módulos &git; <literal
>kde-projects</literal
> (situação mais 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 substitui a global</entry>
<entry
>Use esta opção para mudar a pasta que contém o código compilado. Existem três formas diferentes de usá-la: <orderedlist
> <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 padrão e fica selecionada se digitar o nome de uma pasta que não comece por um til (~) ou uma barra (/).</para
> <para
>O valor padrã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 diretamente. 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 comando. Por exemplo, o <filename class="directory"
>~/builddir</filename
> irá configurar a pasta de compilação como <filename class="directory"
>/home/usuário/builddir</filename
>.</para
></listitem
> </orderedlist
> Surpreendentemente, esta opção poderá ser alterada por módulo. </entry>
</row>

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

<para
>Ao configurar o <option
>build-when-unchanged</option
> como <userinput
>true</userinput
> (verdadeiro), o &kdesrc-build; sempre tentará a fase de compilação para um módulo, mesmo que este não tenha qualquer atualização no código-fonte. Esta é a configuração padrão, uma vez que, provavelmente, é a que proporciona uma compilação correta.</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 de um módulo, caso este tenha tido uma atualização do código-fonte ou em outras situações em que seja realmente necessária uma nova compilação. Isto pode poupar tempo, especialmente se você executa o &kdesrc-build; diariamente ou com ainda mais frequência.</para>

<important
><para
>Esta funcionalidade é oferecida apenas como uma otimização. Como todas as otimizações, existem compromissos face à correçã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 alterado.</para
></important>
</entry>
</row>

<row id="conf-checkout-only">
<entry
>checkout-only</entry>
<entry
>A configuração do módulo substitui a 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, observe que esta opção, como global, não faz sentido. </para>

<para
>Note que esta configuração não tem nenhum efeito nos módulos do &git; devido ao modo de operação do sistema de controle de código do &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 padrão e substitui as globais para outros sistemas de compilação.</entry>
<entry
><para
>Use esta opção para indicar quais opções 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 seção global.</para>

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

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

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

<para
>Já que isto é muito trabalhoso, o &kdesrc-build; faz tudo para que as opções restantes sejam definidas corretamente. Assim, você poderá deixar esta opção em branco. (Em outras palavras, os parâmetros <emphasis
>necessários</emphasis
> do &cmake; serão definidos 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 desativar o resultado colorido do &kdesrc-build;. Por padrã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 o console 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 padrão e substitui as globais para outros sistemas de compilação.</entry>
<entry
><para
>Use esta opção para indicar quais opções 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 que este programa compila. <emphasis
>Esta opção somente funciona para o qt.</emphasis
></para>

<para
>Para mudar a configuração das opções para os módulos do KDE 4, veja <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 substitui a global (opção do sistema de compilação)</entry>
<entry>
    <para
>Esta opção pode ser definida para executar um comando diferente (outro que não seja o <command
>make</command
>, por exemplo) para realizar o processo de compilação. O &kdesrc-build; deve fazer a coisa certa, em geral, de modo que você não deve precisar definir esta opção. No entanto, isto pode ser útil para usar sistemas de compilação alternativos. </para>

    <para
>O valor desta opção é usado como a linha de comando a ser executada, modificada pela opção <link linkend="conf-make-options"
>make-options</link
> como usualmente. </para>
</entry>
</row>

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

<para
>Observe que para o &kde; 4 e qualquer outro módulo que use o &cmake;, é necessário configurar a opção CMAKE_BUILD_TYPE para <userinput
>none</userinput
> ao configurar o módulo. Isto pode ser feito usando 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 substitui a 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', você 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, uma vez 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 você estiver usando o &ssh; para baixar o código do &subversion; (se, por exemplo, estiver usando o protocolo 'svn+ssh'), o &kdesrc-build; irá tentar certificar-se de que, se estiver usando o 'ssh-agent', ele está de fato gerenciando algumas identidades do &ssh;. Isto é para tentar evitar que o &ssh; pergunte a sua frase-senha para todos os módulos. Você poderá desativar esta opção configurar 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 substitui a global</entry>
<entry
><para
>Use esta opção para especificar um conjunto de pastas para não ser compilado num módulo (em vez de serem todas). As pastas que não serão compiladas deverão estar separadas por espaços.</para>

<para
>Lembre-se que o código dos programas será ainda transferido. Você 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, você poderá adicionar "do-not-compile juk kscd" no seu módulo 'kdemultimedia'.</para>

<para
>Veja em <xref linkend="not-compiling"/> um exemplo.</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 somente se aplica a módulos de um repositório do <link linkend="kde-projects-module-sets"
>projeto &kde;</link
>.</para>

<para
>O que esta opção faz de fato é configurar qual protocolo de rede preferir ao atualizar o código-fonte destes módulos. Normalmente, o eficiente protocolo <literal
>git</literal
> é usado, mas ele pode estar bloqueado em algumas redes (por exemplo, Intranets corporativas, Wi-Fi público). Um protocolo alternativo que é muito melhor suportado é o protocolo <literal
>HTTP</literal
> usado para páginas Web na Internet.</para>

<para
>Se você estiver usando uma destas redes restritas, você pode definir esta opção para <userinput
>http</userinput
> para dar preferência a comunicações<literal
>HTTP</literal
>.</para>

<tip
><para
>Você pode também precisar fornecer a opção <link linkend="conf-http-proxy"
>http-proxy</link
> se um proxy HTTP também for necessário para o tráfico de rede.</para
></tip>

<para
>Em qualquer outra situação, você não deve definir esta opção uma vez que o protocolo padrão é mais eficiente.</para>

<para
>Esta opção foi adicionada com o &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 a 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
>Você deverá indicar duas coisas (separadas por espaço): O nome a atribuir à URL de base e a URL de base propriamente dita. Por exemplo:</para>

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

   # Isto é o caminho comum para todos os módulos do servidor Git anônimo.
   git-repository-base <replaceable
>kde-git</replaceable
> <replaceable
>kde:</replaceable>
end global

# Declarações de módulo

module-set
   # Agora você pode usar apelidos como definidos anteriormente, mas <emphasis
>somente</emphasis>
   # em um conjunto de módulos.
   repository <replaceable
>kde-git</replaceable>

   <link linkend="conf-use-modules"
>use-modules</link
> <replaceable
>module1.git</replaceable
> <replaceable
>module2.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; comportando-se como se tivesse lido:</para>

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

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

<para
>O prefixo <literal
>kde:</literal
> de repositório &git; usado acima é um atalho que será configurado automaticamente pelo &kdesrc-build;. Veja o artigo <ulink url="http://techbase.kde.org/Development/Git/Configuration#URL_Renaming"
>Renomeação de URL</ulink
> na TechBase para obter mais informações. Observe que diferente da maioria das outras opções, esta opção pode ser especificada várias vezes de modo a criar tantos apelidos quanto necessário.</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 substitui a global</entry>
<entry>
<para
>Esta opção destina-se aos desenvolvedores do &kde;. Se estiver definida, será usada para configurar automaticamente a informação de identidade do software de controle de versões &git; para os módulos <emphasis
>recém-baixados</emphasis
> do &git; (incluindo a grande maioria dos módulos do &kde;).</para>

<para
>Especificamente, os campos do nome e e-mail do usuário, para cada novo repositório &git;, são preenchidos com os valores definidos por esta opção.</para>

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

<para>
<informalexample>
<para
>Por exemplo, um desenvolvedor chamado <quote
>João Silva</quote
> com o endereço de e-mail <quote
>joao@abc.xyz</quote
> iria usar:</para>

<screen
><symbol
>git-user</symbol
> <replaceable
>João Silva</replaceable
> &lt;<replaceable
>joao@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 substitui a global</entry>

<entry
><para
>Esta opção, se definida, usa a URL especificada como servidor proxy a ser usado para qualquer comunicação de rede por HTTP (por exemplo, ao baixar snapshots para novos módulos, ou o <link linkend="kde-projects-module-sets"
>banco de dados do projeto KDE</link
>).</para>

<para
>Além disso, o &kdesrc-build; tentara certificar-se que as ferramentas das quais ele depende também usem este servidor proxy, se possível, definindo a variável de ambiente <envar
>http_proxy</envar
> para o servidor indicado, <emphasis
>se esta variável já não estiver definida</emphasis
>.</para>

<para
>Esta opção foi introduzida com o &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 substitui a global</entry>
<entry
><para
>Esta opção é usada para armazenar o código e os arquivos de compilação diretamente no nome do módulo. Por exemplo, <literal
>source/extragear/network/telepathy/ktp-text-ui</literal
> torna-se <literal
>source/ktp-text-ui</literal
>. Esta opção fica desativada por padrão. Se quiser ativá-la, você precisa definir como <userinput
>true</userinput
>.</para>

<para
>Esta opção foi introduzida com o &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 grupo de projetos <link linkend="kde-projects-module-sets"
>kde-projects</link
> inteiro, <emphasis
>exceto para</emphasis
> alguns módulos específicos.</para>

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

<para
>Por exemplo, um valor de opção <replaceable
>libs</replaceable
> resultaria em exclusão do <symbol
>kde/kdegraphics/libs</symbol
> e do <symbol
>playground/libs</symbol
> (ainda que não o <symbol
>kde/kdelibs</symbol
>, uma vez 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 com o &kdesrc-build; 1.16.</para>
</entry>
</row>

<row id="conf-include-dependencies">
<entry
>include-dependencies</entry>
<entry
>A configuração do módulo substitui a global</entry>
<entry>
<para
>Esta opção, quando definida como <userinput
>true</userinput
> (verdadeiro), pede ao &kdesrc-build; para incluir também as dependências conhecidas destes módulos na sua compilação, sem que o usuário indique essas dependências (mesmo indiretamente).</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 metadados mantidos pelos desenvolvedores do &kde; estejam corretos para o seu <link linkend="conf-branch-group"
>branch-group</link
> selecionado.</para
></note>

<para
>Esta opção está desativada por padrão, para evitar a seleção inconsciente de um grupo de módulos não desejados. Foi adicionada ao &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 substitui a global</entry>
<entry
>Esta opção é usada para instalar o pacote depois dele ser compilado com sucesso. Esta opção está ativa por padrão. Se quiser desativá-la, terá que configurar esta opção como <userinput
>false</userinput
> no <link linkend="configure-data"
>arquivo de configuração</link
>. Você poderá também usar a opção da linha de comando <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 padrão, o &kdesrc-build; irá tentar instalar um driver para o gerenciador de autenticações gráfico, permitindo-lhe autenticar-se no seu ambiente de trabalho &kde; compilado pelo &kdesrc-build;.</para>

<para
>Este driver irá alterar os seguintes arquivos:</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 driver de autenticação, então você poderá desativar esta funcionalidade se configurar esta opção como <replaceable
>false</replaceable
>.</para>

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

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

<row id="conf-kdedir">
<entry
>kdedir</entry>
<entry
>A configuração do módulo substitui a global</entry>
<entry
>Esta opção define a pasta em que o &kde; será instalado após a compilação. Por padrão, será em <filename class="directory"
>~/kde</filename
>. Se mudar isto para uma pasta que precise do acesso do 'root', será útil também ler algumas informações sobre a opção <link linkend="conf-make-install-prefix"
>make-install-prefix</link
>.</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 selecionar os pacote de localização baixados e instalados juntamente com o &kde;. Você poderá fazer isto se não morar nos Estados Unidos e quiser usar o &kde; traduzido para o seu idioma nativo.</para>

<para
>Para usar esta opção, configure-a como uma lista separada por espaços dos idiomas a instalar. Cada língua possui um código associado a ele, que poderá ser encontrado nesta página: <ulink url="http://i18n.kde.org/teams/"
>http://i18n.kde.org/teams/</ulink
>. </para>

<para
>É aceitável escolher apenas uma língua. Por padrão, não é baixada 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 Brasileiro, você deverá configurar a opção com algo do tipo: <userinput
><option
>kde-languages</option
> <replaceable
>pt_BR</replaceable
></userinput
>. Terá ainda que usar o &systemsettings; para escolher o idioma Português do Brasil, todavia.</para>
</entry>
</row>

<row id="conf-libpath">
<entry
>libpath</entry>
<entry
>A configuração do módulo substitui a global</entry>
<entry
>Configure esta opção para definir a variável de ambiente <envar
>LD_LIBRARY_PATH</envar
>, enquanto efetua a compilação. Você não poderá sobrepor esta opção num módulo. O valor padrã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. Você 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 substitui a global</entry>
<entry
>Use esta opção para mudar a pasta que irá conter os arquivos de registro gerados pelo programa. </entry>
</row>

<row id="conf-make-install-prefix">
<entry
>make-install-prefix</entry>
<entry
>A configuração do módulo substitui a 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 ao trabalhar com os privilégios do 'root'.</entry>
</row>

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

<row id="conf-manual-build">
<entry
>manual-build</entry>
<entry
>A configuração do módulo substitui a 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. Ele ainda será mantido atualizado ao atualizar a partir do &subversion;. Esta opção é exatamente equivalente à opção da linha de comando <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 substitui a global</entry>
<entry
>Configure o valor da opção como <userinput
>true</userinput
> para evitar que o processo de compilação tente atualizar (e, por conseguinte, compilar ou instalar) este módulo. Se você definir esta opção para um módulo, então você basicamente poderá tê-la comentada. </entry>
</row>

<row id="conf-module-base-path">
<entry
>module-base-path</entry>
<entry
>A configuração do módulo substitui a global</entry>
<entry
><para
>Configure esta opção para se sobrepor à pasta padrã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="http://websvn.kde.org/"
>Visualizador de Código do &kde;</ulink
> é extremamente valioso para ajudá-lo a escolher o local correto.</para>

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

<para
>O valor padrã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;, ou seja, quanto maior o número, mais "amigável" o programa será. O valor padrão é 10. </entry>
</row>

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

<row>
<entry
>no-rebuild-on-fail</entry>
<entry
></entry>
<entry
>Esta opção foi removida na versão 1.10, uma vez que este comportamento não é mais útil em função de correções aplicadas no sistema de compilação.</entry>
</row>

<row id="conf-override-build-system">
<entry
>override-build-system</entry>
<entry
>A configuração do módulo substitui a global</entry>
<entry
><para
>Esta é uma opção avançada, foi adicionada com o &kdesrc-build; 1.16.</para>

<para
>Normalmente o &kdesrc-build; irá detectar o sistema de compilação apropriado a ser usado em um determinado módulo, depois de baixá-lo. Isto é feito ao verificar a existência de arquivos específicos na pasta do código-fonte do módulo.</para>

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

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

<variablelist>
    <varlistentry>
        <term
>KDE</term>
        <listitem
><para
>Usado para compilar os módulos do &kde;. De fato, ele 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;.</para
></listitem>
    </varlistentry>
    <varlistentry>
        <term
>qmake</term>
        <listitem
><para
>Usado para compilar módulos do &Qt; que usam os arquivos <literal
>.pro</literal
> do <application
>qmake</application
>.</para
></listitem>
    </varlistentry>
    <varlistentry>
        <term
>generic</term>
        <listitem
><para
>Usado para compilar módulos que usam Makefiles 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 dos aplicativos 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 substitui a 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
>. Você geralmente deverá usar esta opção, se quiser obter uma versão específica, mas o &kdesrc-build; não conseguir descobrir o que você quer 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; armazena os seus dados persistentes. Por padrão, ele armazena estes dados em um arquivo chamado <filename
>.kdesrc-build-data</filename
>, colocado na mesma pasta do arquivo de configuração em uso. Se tiver várias configurações disponíveis na mesma pasta, você pode 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 adicionada com o &kdesrc-build; 1.15.</para>
</entry>
</row>

<row id="conf-prefix">
<entry
>prefix</entry>
<entry
>A configuração do módulo substitui a global</entry>
<entry
><para
>Esta opção controla onde será instalado 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, você poderá estar usando o &kdesrc-build; apenas para compilar as aplicações.</para>
<para
>Você pode usar o <varname
>${MODULE}</varname
> ou <varname
>$MODULE</varname
> no caminho para tê-los expandidos 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 substitui a global</entry>
<entry
><para
>Esta opção controla se as pastas de registro antigas serão automaticamente excluídas ou não. O valor padrão é <replaceable
>true</replaceable
>.</para>
</entry>
</row>

<row id="conf-qmake-options">
<entry
>qmake-options</entry>
<entry
>A configuração do módulo substitui a global</entry>

<entry
><para
>Todas as opções indicadas aqui são passadas para o comando <command
>qmake</command
>, para módulos que usam o sistema de compilação <symbol
>qmake</symbol
>. Por exemplo, você pode usar a opção <userinput
>PREFIX=/caminho/para/qt</userinput
> para o qmake substituir o local onde o módulo deve ser instalado. </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 substitui a global</entry>
<entry
>Configure esta opção para definir a variável de ambiente <envar
>QTDIR</envar
> enquanto compila. Você poderá sobrepor esta configuração numa opção de um módulo. Se não indicar esta opção, será por padrão a <filename class="directory"
><symbol
>${source-dir}</symbol
>/build/qt</filename
>, que irá usar o módulo 'qt' que está incluído no repositório de código do &kde;. Você 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 substitui a global</entry>
<entry
><para
>Se estiver com pouco espaço em disco, você 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 padrã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
>Note 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;, uma vez que o &kdesrc-build; será incapaz de efetuar compilações incrementais.</para>
</entry>
</row>

<row id="conf-repository">
<entry
>repository</entry>
<entry
>A configuração do módulo substitui a global</entry>
<entry
><para
>Esta opção foi introduzida com a versão 1.10 e é usada para especificar o repositório do &git; para transferir o código-fonte para o módulo. O &Qt; (e consequentemente o qt) precisará desta opção, bem como vários módulos do &kde; que estão em processo de conversão para usar o &git;.</para
></entry>
</row>

<row id="conf-revision">
<entry
>revision</entry>
<entry
>A configuração do módulo substitui a global</entry>
<entry
><para
>Se esta opção for configurada com um valor diferente de 0 (zero), o &kdesrc-build; irá obrigar a atualização do código ao obter o módulo que tenha exatamente 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 atualizado, a menos que esta opção seja alterada ou removida da configuração.</para>

<note
><para
>Esta opção não funciona para módulos baseados no git (incluindo os módulos <link linkend="kde-projects-module-sets"
>kde-projects</link
>) até a 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 substitui a global (opção do sistema de compilação)</entry>
<entry
>Se definido para <userinput
>true</userinput
>, então o módulo será compilado com suporte para executar seu pacote de testes, e o pacote de testes será executado como parte do processo de compilação. O &kdesrc-build; mostrará um relatório resumido dos resultados do teste. Isto é útil para desenvolvedores ou para aqueles que desejam se certificar de que seu sistema foi configurado corretamente.</entry>
</row>

<row id="conf-set-env">
<entry
>set-env</entry>
<entry
>A configuração do módulo substitui a 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, você deve colocar este comando na seçã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 seção do <link linkend="configure-data"
>arquivo de configuração</link
>. Desta forma, você poderá definir mais de 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 substitui a 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 padrão <filename class="directory"
>~/kdesrc</filename
>. Você poderá usar o til (~) para representar a pasta pessoal se usar esta opção. </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 arquivo de chave SSH privada é passado para o comando <command
>ssh-add</command
> quando o &kdesrc-build; estiver baixando o código-fonte dos repositórios que necessitam de autenticação. Veja 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 substitui a 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á desativada por padrão. </entry>
</row>

<row id="conf-svn-server">
<entry
>svn-server</entry>
<entry
>A configuração do módulo substitui a global</entry>
<entry
><para
>Esta opção é usada para definir o servidor usado para obter o código do &subversion;. Por padrão, é usado o repositório anônimo de &subversion;, em <filename
>svn://anonsvn.kde.org/</filename
></para>
<note
><para
>Se você estiver programando para o KDE, use o repositório de &subversion; que lhe foi fornecido quando recebeu a sua conta de desenvolvedor, 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 substitui a 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 chances serão muito boas quando <emphasis
>não quiser</emphasis
> usar esta opção. As versões do &kde; estão disponíveis em pacotes compactados no <ulink url="ftp://ftp.kde.org/"
>servidor de FTP do &kde;</ulink
> ou num dos seus <ulink url="http://download.kde.org/download.php"
>servidores espelho</ulink
>.</para>

<note
><para
>Esta opção para os módulos baseados no git somente tem suporte a partir da versão 1.16 do &kdesrc-build;.</para
></note>
</entry>
</row>

<row id="conf-use-clean-install">
<entry
>use-clean-install</entry>
<entry
>A configuração do módulo substitui a global (opção do sistema de compilação)</entry>
<entry
><para
>Defina esta opção para <userinput
>true</userinput
> para que o &kdesrc-build; execute um <command
>make uninstall</command
> imediatamente antes de executar um <command
>make install</command
>.</para>

<para
>Isto pode ser útil para garantir que não existam arquivos de biblioteca desatualizados, metadados do &cmake;, etc, que podem causar problemas em instalações antigas do &kde;. No entanto, isto somente funciona em sistemas de compilação que suportam o <command
>make uninstall</command
>.</para>

<para
>Esta opção foi adicionada com o &kdesrc-build; 1.12, mas não foi documentada até o &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, uma vez que todos os 4 módulos do &kde; necessitam do &cmake; e a utilização do &cmake; não é permitida em nenhum outro módulo. </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, fará com que uma baixa prioridade seja usada para o disco e outro uso de I/O, o que pode melhorar significativamente a responsividade do resto do sistema ao custo de tempos de execução levemente maiores para o &kdesrc-build;. O padrão é estar desativado. Para ativar a baixa prioridade para o disco, defina isto para <userinput
>true</userinput
>. </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"
>arquivo 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 em que os módulos são definidos nesta opção é importante, porque será também a ordem em que o &kdesrc-build; processará os módulos gerados ao atualizar, compilar e instalar. Todos os módulos definidos no conjunto de módulos fornecido serão manipulados antes que o &kdesrc-build; se mova para o próximo módulo após o conjunto de módulos.</para>

<para
>Se você 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á ainda atualizado e compilado na 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 exceçã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 substitui a 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á obsoleta e será removida (novamente) em uma versão futura.</para>

<para
>Em vez disso, use a opção <option
><link linkend="conf-branch-group"
>branch-group</link
></option
>, que oferece mais possibilidades de escolha.</para>
</entry>
</row>

</tbody>

</tgroup>
</table>

</sect1>
</chapter>

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

<sect1 id="cmdline-usage">
<title
>Uso da linha de comando</title>

<para
>O &kdesrc-build; foi desenhado para ser executado como a seguir:</para>

<cmdsynopsis
><command
>kdesrc-build</command
> <arg rep="repeat"
><replaceable
>--options</replaceable
></arg
> <arg rep="repeat"
><replaceable
>módulos a compilar</replaceable
></arg
> </cmdsynopsis>

<para
>Se nenhum módulo a ser compilado for especificado na linha de comando, então o kdesrc-build compilará todos os módulos do seu arquivo de configuração, na ordem listada neste arquivo (apesar disto poder ser modificado por várias opções do arquivo de configuração).</para>

<sect2 id="cmdline-usage-options">
<title
>Opções de linha de comando comumente usadas</title>

<para
>A lista completa das opções da linha de comando é fornecida em <xref linkend="supported-cmdline-params"/>. As opções mais comumente usadas 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 que ações seriam tomadas, sem de fato realizá-las. Isto pode ser útil para certificar-se de que os módulos que você pensa que serão compilados sejam de fato compilados.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
><option
>--refresh-build</option
></term>
    <listitem
><para
>Esta opção força que o &kdesrc-build; compile os módulos fornecidos a partir de um ponto inicial totalmente limpo. Qualquer diretório de compilação existente para este módulo será removido e ele será recompilado. Esta opção é útil se você tiver erros ao compilar um módulo e algumas vezes é necessária quando as bibliotecas &Qt; ou &kde; mudam.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
><option
>--no-src</option
></term>
    <listitem
><para
>Esta opção faz com que seja pulado o processo de atualização de código. Você pode usá-la se você tiver atualizado recentemente o código-fonte (talvez você tenha feito isto manualmente ou tenha executado o &kdesrc-build; recentemente) mas ainda deseja recompilar alguns módulos.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
><option
>--no-build</option
></term>
    <listitem
><para
>Esta opção é semelhante ao <option
>--no-src</option
> acima, mas com ela o processo de compilação é pulado.</para
></listitem>
  </varlistentry>
</variablelist>

</sect2>

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

<para
>Em geral, especificar módulos a compilar é tão simples quanto passar os nomes dos módulos como você definiu no arquivo de configuração. Você pode também passar módulos que são parte de um conjunto de módulos, como nomeados em <link linkend="conf-use-modules"
>use-modules</link
>, ou o nome de todo o conjunto de módulos em si se você fornecer o seu nome.</para>

<para
>No caso específico de conjuntos de módulos baseados no <link linkend="kde-projects-module-sets"
>banco de dados do projeto KDE</link
>, o &kdesrc-build; expandirá o nome de módulo dos componentes para determinar o módulo exato que você deseja. Por exemplo, a entrada do &kdesrc-build; no projeto do KDE está localizada em <literal
>extragear/utils/kdesrc-build</literal
>. Você pode especificar qualquer uma das opções a seguir 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 precede o nome do módulo com um <symbol
>+</symbol
>. Isto força que o nome do módulo seja interpretado como um módulo do banco de dados de projeto do KDE, mesmo se este módulo não tiver sido definido em seu arquivo de configuração. </para
></note>

<para
>Seja cuidadoso ao especificar projetos muito genéricos (por exemplo, <literal
>extragear/utils</literal
> em si), uma vez que isto pode levar a uma grande quantidade de módulos a serem compilados. Você deve usar a opção <option
>--pretend</option
> antes de compilar um novo módulo para certificar-se de que serão compilados somente os módulos que desejar.</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 você precisar 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 de linha de comando suportados</title>

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

<variablelist>

<varlistentry id="cmdline-async">
<term
><parameter
>--async</parameter
></term>
<listitem
><para
>Ativa o <link linkend="conf-async"
>modo assíncrono</link
>, que pode realizar atualizações do código-fonte e compilar o módulo ao mesmo tempo. Isto é o padrão, e esta opção somente precisa ser especificada se você quiser desabilitá-la 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 contato do autor. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-color">
<term
><parameter
>--color</parameter
></term>
<listitem
><para
>Ativa a saída em cores. (Isto é o padrão para terminais interativos). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-nice">
<term
><parameter
>--nice=<replaceable
>valor</replaceable
></parameter
></term>
<listitem
><para
>Este valor ajusta a prioridade da CPU do computador solicitada pelo &kdesrc-build;, e deve estar no intervalo de 0-20. O 0 é a prioridade mais alta (por isso ele é o menos <quote
>satisfatório</quote
>) e o 20 é a prioridade mais baixa. O padrão do &kdesrc-build; é o 10. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-async">
<term
><parameter
>--no-async</parameter
></term>
<listitem
><para
>Desativa o <link linkend="conf-async"
>modo assíncrono</link
> de atualização. Ao invés da atualização ser realizada completamente antes da compilação iniciar. Esta opção irá aumentar o tempo de todo o processo, mas se você encontrar erros de IPC ao rodar o &kdesrc-build; tente usar esta opção e submeter um <ulink url="http://bugs.kde.org/"
>relatório de erro</ulink
>. </para
></listitem>
</varlistentry>

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

<varlistentry id="cmdline-pretend">
<term
><parameter
>--pretend</parameter
> (ou <parameter
>-p</parameter
>)</term>
<listitem
><para
>O &kdesrc-build; executará o processo de atualização e compilação, mas ao invés de realizar qualquer ação efetivamente, ele apresentará o que o programa deveria fazer (quais comandos executar, passos gerais feitos, etc.).</para>

<note
><para
>Comandos simples apenas para leitura (como a leitura das informações de um arquivo) pode ainda ser executados para tornar o resultado mais relevante (como simular corretamente se o código-fonte deve ser transferido ou atualizado). </para
></note>

<important
><para
>Esta opção necessita que alguns metadados obrigatórios estejam disponíveis, que normalmente são baixados automaticamente, mas os downloads estão desativados no modo simulado. Se você nunca executou o &kdesrc-build; (e, como tal, não tiver esses metadados), deverá primeiro executar o comando <command
>kdesrc-build <option
>--metadata-only</option
></command
> para baixar os metadados obrigatórios. </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 exibido pela compilação. Com esta opção, somente 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 está acontecendo e o que o &kdesrc-build; está fazendo. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-src-only">
<term
><parameter
>--src-only</parameter
> (ou <parameter
>--svn-only</parameter
>)</term>
<listitem
><para
>Somente realiza uma atualização do código. (O <parameter
>--svn-only</parameter
> somente é suportado para compatibilidade com programas antigos). </para
></listitem>
</varlistentry>

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

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

<varlistentry id="cmdline-metadata-only">
<term
><parameter
>--metadata-only</parameter
></term>
<listitem
><para
>Só executa o processo de download dos metadados. O &kdesrc-build; normalmente faz isso de forma automática, mas você poderá usar esta opção manualmente para permitir que a opção <option
><link linkend="cmdline-pretend"
>--pretend</link
></option
> da linha de comando funcione. </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 em uma execução anterior do &kdesrc-build;. Isso é útil se ocorrer uma quantidade significativa de falhas em conjunto com compilações bem-sucedidas. Depois de corrigir o erro que provocou os problemas de compilação, os módulos que falharam anteriormente poderão ser facilmente compilados.</para>

<note
><para
>Lembre-se de que a lista de <quote
>módulos que falharam anteriormente</quote
> é apagada toda vez que uma execução do &kdesrc-build; termina com falha em algum módulo. Contudo, a lista não é apagada com uma compilação completamente bem-sucedida, para que você possa recompilar com sucesso um ou dois módulos e esta opção continuará funcionando.</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 comando no processo de atualização/compilação (isto é útil se você deseja compilar a maioria dos módulos em seu <link linkend="configure-data"
>arquivo de configuração</link
> e apenas pular alguns). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-src">
<term
><parameter
>--no-src</parameter
> (ou <parameter
>--no-svn</parameter
>)</term>
<listitem
><para
>Não contacta o servidor &subversion;. (O parâmetro <parameter
>--no-svn</parameter
> somente é suportado para compatibilidade com versões antigas 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 baixa automaticamente os metadados extras que são necessários para os módulos Git do &kde;. As atualizações de código para os módulos propriamente ainda será efetuada, a menos que você indique também a opção <link linkend="cmdline-no-src"
>--no-src</link
>. </para
><para
>Isto pode ser útil se estiver frequentemente executando novamente o &kdesrc-build;, uma vez que os metadados não são alterados com muita frequência. Mas lembre-se que muitas outras funcionalidades dependem da disponibilidade dos metadados. Você pode considerar a execução do &kdesrc-build; com a opção <link linkend="cmdline-metadata-only"
>--metadata-only</link
> uma vez e depois usar essa 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 desativa de forma explícita a eliminação do processo de compilação (uma otimização controlada pela opção <link linkend="conf-build-when-unchanged"
>build-when-unchanged</link
>). Isto é útil para fazer com que o &kdesrc-build; execute a compilação, caso tenha alterado algo que o &kdesrc-build; não consegue verificar.</para>

<para
>O <parameter
>--force-build</parameter
> efetua exatamente a mesma função, sendo talvez mais fácil de se lembrar.</para>
</listitem>
</varlistentry>

<varlistentry id="cmdline-debug">
<term
><parameter
>--debug</parameter
></term>
<listitem
><para
>Ativa o modo de depuração para o programa. Atualmente, isto significa que todo o resultado será enviado para o saída padrão, além de ficar registrado na pasta de registro normalmente. Do mesmo modo, muitas das funções tornar-se-ão mais descritivas sobre o que estão fazendo no modo de depuração. </para
></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
>Recria o sistema de compilação e compila a partir 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;) novamente, sem limpar a pasta de compilação. Você normalmente não tem que especificar isto, uma vez que o &kdesrc-build; detectará quando você muda opções relevantes e automaticamente re-executará a configuração da compilação. Esta opção está implícita se o <parameter
><link linkend="cmdline-refresh-build"
>--refresh-build</link
></parameter
> for usado. </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, que é o parâmetro seguinte na linha de comando. Você não deverá indicar os nomes dos outros módulos na linha de comando. </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 atualizações de código ao prosseguir, basta passar <option
><userinput
>--no-src</userinput
></option
> além das outras opções. </para
></note>

<para
>Veja também: <xref linkend="cmdline-resume-after"/> e <xref linkend="resuming-failed"/>. Você pode preferir usar esta opção de linha de comando se tiver corrigido um erro de compilação e deseja que o &kdesrc-build; conclua 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 após o módulo indicado, que é o parâmetro seguinte na linha de comando. Você não deverá indicar os nomes dos outros módulos na linha de comando. </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 atualizações de código ao prosseguir, basta passar <option
><userinput
>--no-src</userinput
></option
> além das outras opções. </para
></note>

<para
>Veja também: <xref linkend="cmdline-resume-from"/> e <xref linkend="resuming-failed"/>. Você pode preferir usar esta opção de linha de comando se tiver corrigido um erro de compilação e tiver compilado e instalado o módulo você mesmo, e deseja que o &kdesrc-build; inicie novamente com o próximo módulo.</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; após um problema de compilação. </para
><para
>Ela continua com a compilação a partir do módulo que falhou, usando a lista de módulos que estavam aguardando compilação e desativando também as atualizações de código e metadados. O caso de uso é quando um erro simples ou a falta de uma dependência provocar a falha na compilação. Assim que corrigir o erro, você poderá retornar rapidamente à compilação dos módulos que estavam sendo compilados, sem precisar mexer nas 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
>Isso ainda é mais útil com o argumento da linha de comandos <option
><link linkend="cmdline-stop-on-failure"
>--stop-on-failure</link
></option
>, especialmente se estiver iniciando a configuração do seu ambiente de desenvolvimento. </para
><para
>Esta opção foi adicionada com o &kdesrc-build; 1.16. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-stop-before">
<term
><parameter
>--stop-before</parameter
></term>
<listitem
><para
>Esta opção de linha de comando é usada para interromper o processo normal de compilação somente <emphasis
>antes</emphasis
> da compilação normal de um 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 de linha de comando foi adicionada com o &kdesrc-build; 1.16. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-stop-after">
<term
><parameter
>--stop-after</parameter
></term>
<listitem
><para
>Esta opção de linha de comando é usada para interromper o processo normal de compilação somente <emphasis
>após</emphasis
> a compilação normal de um 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 de linha de comando foi adicionada com o &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 configurando o seu ambiente de desenvolvimento inicial. Sem essa opção, o &kdesrc-build; irá tentar pressionar o resto dos módulos na compilação para evitar perder tempo, caso o problema ocorra apenas com um ú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 comando como o arquivo de onde ler as opções de configuração. O valor padrão deste parâmetro é <filename
>kdesrc-buildrc</filename
> (verificado na pasta atual) se ele estiver presente, ou, caso não esteja, o <filename
>~/.kdesrc-buildrc</filename
>. Veja também <xref linkend="kdesrc-buildrc"/>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-print-modules">
<term
><parameter
>--print-modules</parameter
></term>
<listitem>
<para
>Executa todas as ações e a reordenação das dependências dos módulos indicados na linha de comando (ou arquivo de configuração), apresenta os módulos que seriam processados, um em cada linha, e então sai sem nenhuma outra ação. </para>
<para
>Os metadados do <literal
>kde-project</literal
> são baixados primeiro (porém, veja as opções <link linkend="cmdline-pretend"
><option
>--pretend</option
></link
> e <link linkend="cmdline-no-src"
><option
>--no-src</option
></link
>). </para>
<para
>O resultado não é totalmente compatível com a utilização pelos scripts, como as outras mensagens do resultado podem ser geradas até que seja apresentada a lista dos módulos. </para>
<para
>Isto é útil, principalmente, 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
>. Essa opção também é compatível com <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
> e <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 a seguir na linha de comando como um programa a executar, fazendo com que o &kdesrc-build; acabe de ler o arquivo de configuração normalmente e depois execute o programa indicado.</para>

<para
>Isto não irá funcionar para iniciar uma linha de comando com o ambiente do &kdesrc-build;, contudo, uma vez que as linhas de comando interativas tipicamente limpam algumas partes das variáveis de ambiente (como a <envar
>PATH</envar
> e a <envar
>KDEDIRS</envar
>) na sequência de inicialização. </para>

<tip
><para
>Se você deseja ver o ambiente usado pelo &kdesrc-build;, você pode 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 comando. Esta opção implica a <link linkend="cmdline-reconfigure"
><parameter
>--reconfigure</parameter
></link
>, mas usar o <link linkend="cmdline-refresh-build"
><parameter
>--refresh-build</parameter
></link
> pode também ser necessário. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-revision">
<term
><parameter
>--revision</parameter
></term>
<listitem
><para
>Esta opção faz com que o &kdesrc-build; obtenha um número de revisão específico para cada módulo do &subversion;, sobrescrevendo qualquer opção <link linkend="conf-branch"
>branch</link
>, <link linkend="conf-tag"
>tag</link
>, ou <link linkend="conf-revision"
>revision</link
> já configurada para estes módulos.</para>

<para
>Esta opção provavelmente não é uma boa ideia, e somente é suportada para compatibilidade com programas 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; cancele a compilação de um módulo exatamente antes do comando <command
>make</command
> ser executado. Isto é suportado somente para compatibilidade com versões antigas, e seu efeito não é útil para o sistema de compilação atual 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 comando, ele irá tentar instalar todos os módulo incluídos em <filename
>log/latest/build-status</filename
>. Se as opções da linha de comando forem indicadas após o <parameter
>--install</parameter
>, então assumem-se que são módulos para instalar (mesmo se eles não compilaram com sucesso na última execução). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-snapshots"
><term
><parameter
>--no-snapshots</parameter
></term>
<listitem
><para
>Fornecer esta opção faz com que o &kdesrc-build; sempre realize uma verificação inicial normal de um módulo ao invés de usar o instantâneo rápido (somente disponível para módulos do Git do repositório <literal
>kde-projects</literal
>). Observe que esta opção deve somente ser usada se existir uma falha ao usar os instantâneos, uma vez que o uso do instantâneo rápido reduz a carga nos repositórios de código do KDE. </para>

<note
><para
>Imagens do módulo <emphasis
>são</emphasis
> transferências reais. Você não deve precisar especificar esta opção, sendo ela somente um auxílio para a 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; excluir as pastas de código que possam conter dados do usuário, para que o módulo possa ser baixado novamente. Isto normalmente só seria útil para os desenvolvedores do &kde; (que poderiam ter alterações locais que seriam excluídas).</para>

<para
>Isto só é usado atualmente para obter os módulos que foram convertidos do &subversion; para o &git;. Você não deve usar esta opção normalmente; o &kdesrc-build; irá solicitar 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 arquivos existentes que possam conter dados do usuário.</para>

<para
>Isto só é usado atualmente para a configuração do xsession para o gerenciador de autenticação. Você não deve usar esta opção normalmente; o &kdesrc-build; irá solicitar 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
>Você poderá usar esta opção para sobrepor outra opção no seu <link linkend="configure-data"
>arquivo de configuração</link
> para todos os módulos. Por exemplo, para sobrepor a opção <link linkend="conf-log-dir"
>log-dir</link
>, você deverá digitar: <userinput
><parameter
>--log-dir=<filename class="directory"
><replaceable
>/local/da/pasta</replaceable
></filename
></parameter
></userinput
>. </para>

<note
><para
>Esta funcionalidade só pode ser usada para os nomes de opções já reconhecidos pelo &kdesrc-build;, que ainda não sejam pelas opções relevantes da linha de comando. Por exemplo, a opção <link linkend="conf-async"
>async</link
> do arquivo 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 comando 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 você poderá usar esta opção para substituir outra no seu <link linkend="configure-data"
>arquivo de configuração</link
>, para um determinado módulo. </para
></listitem>
</varlistentry>

</variablelist>

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

</sect1>

</chapter>

<chapter id="using-kdesrc-build">
<title
>Usando 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 comando:</para>

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

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

<para
>Leia mais para saber como o &kdesrc-build; faz isso, assim como o que você 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 do conjunto de ferramentas do &Qt; usado pelos programas do &kde; como uma conveniência para os usuários. Este suporte é manipulado por um módulo especial denominado 'qt'.</para>

<note
><para
>O &Qt; é desenvolvido sob um repositório separado dos programas do &kde;, localizado em <ulink url="http://qt.gitorious.org/qt"
>http://qt.gitorious.org/qt</ulink
>.</para
></note>

<para
>Para compilar o &Qt;, você deve certificar-se de que a configuração <link linkend="conf-qtdir"
>qtdir</link
> está definida para a pasta que você gostaria de instalar o &Qt;, conforme descrito em <xref linkend="configure-data"/>.</para>

<para
>Você deve certificar-se de que o módulo do 'qt' está adicionado ao seu <filename
>.kdesrc-buildrc</filename
>, antes de qualquer outro módulo no arquivo. Se você estiver usando o arquivo de configuração de exemplo, basta retirar o comentário da entrada existente para o módulo 'qt'.</para>

<para
>Agora você deve verificar se as opções <link linkend="conf-repository"
>repository</link
> e <link linkend="conf-branch"
>branch</link
> foram definidas apropriadamente:</para>

<orderedlist>
<listitem
><para
>A primeira opção é para compilar o &Qt; usando um espelho mantido nos repositórios de código do &kde; (nenhuma outra alteração é aplicada, ele é simplesmente um clone do código oficial). Isto é altamente recomendado devido a problemas ocasionais com o processo de clonagem completa do módulo do &Qt; a partir do seu repositório oficial.</para>

<para
>Você pode definir a opção <option
>repository</option
> do módulo qt para <userinput
>kde:qt</userinput
> para usar esta opção.</para>
</listitem>

<listitem
><para
>Caso contrário, para compilar o &Qt; padrão, defina sua opção <option
>repository</option
> para <userinput
>git://gitorious.org/qt/qt.git</userinput
>. Observe que você pode experimentar problemas ao executar a clonagem inicial do &Qt; a partir deste repositório.</para
></listitem>
</orderedlist>

<para
>Em ambos os casos, a opção 'branch' deve ser definida para <userinput
>master</userinput
> (a menos que você deseje compilar uma 'branch' 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 padrão ao seu ambiente: </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á precisar editar a &libpath; para incluí-los. </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á precisar editar a &binpath; para 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 incluí-los. </para
></listitem>

<listitem
><para
>A configuração do &kdedir; é propagada automaticamente para a variável de ambiente <envar
>KDEDIR</envar
> durante a compilação. (O <envar
>KDEDIRS</envar
> não é afetado). </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
>Mudando a prioridade de compilação do &kdesrc-build;</title>
<para
>Os programas poderão ser executados com diferentes níveis de prioridades nos Sistemas Operacionais, 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 afetados e possam rodar normalmente. Com esta técnica, o &kdesrc-build; irá usar CPU extra quando estiver disponível. </para>

<para
>O &kdesrc-build; irá ainda manter 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 você terá que ajustar a opção &niceness; no <link linkend="configure-data"
>arquivo de configuração</link
>. A opção &niceness; controla quão <quote
>legal</quote
> é o &kdesrc-build; com os outros programas. Em outras palavras, um &niceness; maior, dará ao &kdesrc-build; uma prioridade menor. Assim, para dar ao &kdesrc-build; uma maior prioridade, reduza o &niceness; (e vice-versa). O &niceness; pode ir de 0 (nada legal, prioridade máxima) até 20 (super legal, prioridade mínima).</para>

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

<note
><para
>É possível para alguns programas executados pelo superusuário 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, uma vez que não irá melhorar muito o tempo de compilação, mas tornará o seu computador muito lento, se ainda precisar usá-lo. </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 você poderá editar o <link linkend="configure-data"
>arquivo 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
> somente afeta o uso do(s) processador(es) do computador. Uma outra que afeta significativamente o desempenho do computador se refere a quantos dados de entrada ou saída (<acronym
>I/O</acronym
>) um programa usa. Para controlar quanto <acronym
>I/O</acronym
> um programa pode usar, os sistemas operacionais &Linux; modernos suportam uma ferramenta similar denominada <application
>ionice</application
>. O &kdesrc-build; suporta o <application
>ionice</application
>, (mas somente para ativá-lo ou desativá-lo completamente) 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 superusuário</title>
<para
>Você poderá ter o &kdesrc-build; executando a instalação com privilégios de superusuário. Isto pode acontecer no caso da instalação a nível do sistema (não recomendada). Também é útil se você usar uma instalação normal para um único usuário, 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
>Você poderá simplesmente executar o &kdesrc-build; diretamente como superusuário, mas isto não é recomendável, uma vez que o programa não foi testado para esse tipo de uso. Ainda que possa ser seguro executá-lo dessa forma, é melhor evitar executar este programa como superusuário, sempre que possível.</para>

<para
>Para cuidar disso, o &kdesrc-build; oferece a opção &make-install-prefix;. Você poderá usar esta opção para indicar um comando a usar para efetuar a instalação como outro usuário. A forma recomendada de usar este comando é com o programa &sudo;, que irá então executar o comando de instalação como superusuário. </para>

<informalexample>
<para
>Por exemplo, para instalar todos os módulos com o &sudo;, você poderá fazer algo como:</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
>Mostrando o progresso da compilação de um módulo</title>
<para
>Esta funcionalidade está sempre disponível e está ativada automaticamente, sempre que possível. O que isto faz é mostrar o progresso estimado da compilação ao compilar um módulo, para que você saiba desta forma quanto tempo mais 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, você pode querer compilar apenas um programa de um módulo. O &kdesrc-build; possui funcionalidades para simplificar isto. Existem várias formas complementares de fazer esta tarefa. </para>

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

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

<tip
><para
>Se você ainda não souber o que vai transferir de um determinado módulo, poderá ser uma boa ideia navegar pela disposição no &subversion; para um módulo, em primeiro lugar, usando o <ulink url="http://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', você 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 na ordem que forem indicadas na opção. Se uma das pastas necessitar de alguma coisa além do módulo para compilar, então você terá que garantir que ambas se encontram na linha &checkout-only; e que a dependência necessária venha antes da pasta que necessita dela.</para>

<para
>Da mesma forma, algumas vezes um aplicativo poderá necessitar de outras pastas e isso pode ser difícil de descobrir. Isto poderá ser solucionado através de tentativa e erro, adicionando constantemente pastas à opção para descobrir qual é a necessária.Esta opção depende do suporte no sistema de compilação do módulo, só sendo útil para os módulos que sejam coleções de aplicações individuais.</para>
</important>

<para
>Uma nota final sobre esta opção: Se você 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. Além disso, o &kdesrc-build; nunca irá remover os arquivos existentes, se você 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
>Removendo pastas de uma compilação</title>
<para
>Em vez de restringir o que é baixado, é possível transferir tudo mas fazer com que o sistema de compilação deixe de fora algumas pastas ao compilar. Isto pode ser útil se uma pasta estiver sempre invalidando 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 seja reconfigurado 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;. Assim, ela 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 o gerenciamento 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 trabalhando 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) também possua desenvolvimentos em curso nela. </para>

<para
>Uma marca, por outro lado, é uma imagem do repositório de código numa determinada posição no tempo. Isto é usado pela equipe de administração do &kde; para marcar uma versão do código adequada para lançamento, permitindo ainda aos programadores trabalharem no código. </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 usuários mais avançados. </para>

<para
>O método mais simples é usar as opções &branch; e &tag;. Você 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 baixar. Na maioria dos módulos do &kde;, isto funciona muito bem.</para>

<informalexample>
<para
>Para baixar 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 baixar o 'kdemultimedia' como foi lançado no &kde; 4.6.1:</para>

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

</informalexample>

<tip
><para
>Você 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 incorreta: 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 faltante da localização de um módulo. No repositório do &kde;, todos os locais possuem o formato <filename class="directory"
>raizSvn/caminho-módulo-base/<replaceable
>nome-módulo</replaceable
></filename
>. Normalmente, o &kdesrc-build; pode descobrir a parte intermediária apropriada por si só. Quando não conseguir, você poderá usar o 'caminho-módulo-base' ou &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 determinada 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; baixe 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 você tiver problemas ao usar uma definição antiga do 'module-base-path', talvez deva confirmar se a localização atual é a mesma que o &kdesrc-build; está esperando, 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 exato de onde baixar. Contudo, isto permite-lhe transferir de locais que versões anteriores do &kdesrc-build; não teriam chances de baixar. Atualmente, a opção &module-base-path; deve ser suficiente para qualquer URL de fonte de Subversion. </para>

<important
><para
>O &kdesrc-build; não irá mexer ou corrigir o valor que indicar no &kdesrc-build;, por isso, se mudar a sua configuração do &svn-server;, também terá que atualizar 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 recursos para automaticamente tentar recompilar o módulo após uma falha (uma vez que esta nova tentativa poderia funcionar, devido a falhas no sistema de compilação naquela época). Graças a mudança para o &cmake;, o sistema de compilação não sofre mais destas falhas, e assim o &kdesrc-build; não tentará compilar um módulo mais de uma vez. Existem situações onde o &kdesrc-build; automaticamente executará uma recompilação:</para>

<itemizedlist>

<listitem
><para
>Se você mudar o <link linkend="conf-configure-flags"
>configure-flags</link
> ou o <link linkend="conf-cmake-options"
>cmake-options</link
> para um módulo, então o &kdesrc-build; detectará e automaticamente re-executará o 'configure' ou o 'cmake' para aquele módulo.</para
></listitem>

<listitem
><para
>Se o sistema de compilação não existir (mesmo se o &kdesrc-build; não o removeu) então o &kdesrc-build; automaticamente irá recriá-lo. 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 que executá-lo em outros módulos.</para
></listitem>

</itemizedlist>

</sect3>

<sect3 id="manual-rebuilds">
<title
>Recompilando manualmente um módulo</title>
<para
>Se você tiver feito alterações em 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, você poderá ter que recompilar o módulo manualmente.</para>

<para
>Você poderá se isto executando simplesmente o <userinput
><command
>kdesrc-build</command
> <option
>--refresh-build</option
> <option
><replaceable
>módulo</replaceable
></option
></userinput
>. </para>

<para
>Se você quiser que o &kdesrc-build; recompile de forma automática o módulo, durante a próxima atualização normal, você poderá criar um arquivo especial. Cada módulo possui uma pasta de compilação. Se você criar um arquivo 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 rodar, mesmo que fosse executar normalmente a compilação incremental.</para>

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

<informalexample>
<para
>Recompilar usando 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
>/.refresh-me</filename
></userinput>
<prompt
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
></userinput
>
</screen>
</informalexample>
</sect3>

</sect2>

<sect2 id="changing-environment">
<title
>Mudando a configuração das variáveis de ambiente</title>
<para
>Normalmente, o &kdesrc-build; usa o ambiente que está presente quando inicia e executa os programas para atualizar e compilar. Isto é útil para quando você está rodando o &kdesrc-build; a partir da linha de comando.</para>

<para
>Contudo, você poderá desejar alterar a configuração das variáveis de ambiente para as quais o &kdesrc-build; não possui uma opção direta. (Por exemplo, para configurar qualquer variável de ambiente ao rodar o &kdesrc-build; em um agendador de tarefas como o &cron;) Isto é possível com a opção &set-env;.</para>

<para
>Ao contrário da maioria das opções, ela poderá ser definida mais de 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
>Configura a <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
>Você poderá indicar ao &kdesrc-build; para começar a compilar a partir de um módulo diferente daquele 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 no meio. Você poderá controlar isto com as opões &cmd-resume-from; e &cmd-resume-after;.</para>

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

<informalexample>
<para
>Prosseguir a compilação começando 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 começando após o 'kdebase' (no caso de você corrigir manualmente um problema e ter 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 erro, você poderá também usar a opção <link linkend="cmdline-resume"
>--resume</link
> da linha de comando, a qual prossegue com a última compilação a partir do módulo que falhou. As atualizações de código e metadados 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
>Ignorando 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
>, você poderá optar em alternativa por atualizar e compilar tudo normalmente, só que ignorando um conjunto de módulos.</para>

<para
>Você poderá fazer isso com a opção &cmd-ignore-modules;. Esta opção diz ao &kdesrc-build; para ignorar todos os módulos da linha de comando, ao efetuar a atualizaçã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
>Mudando as opções na linha de comando</title>

<sect3 id="changing-global-opts">
<title
>Modificando as opções globais</title>
<para
>Você poderá alterar a configuração das opções lidas do <link linkend="configure-data"
>arquivo de configuração</link
> diretamente a partir da linha de comando. Esta alteração irá substituir a configuração do arquivo, mas é apenas temporária. Só terá efeito enquanto ainda estiver presente na linha de comando.</para>

<para
>O &kdesrc-build; permite-lhe alterar as opções com nome do tipo <replaceable
>nome-opção</replaceable
> passando um argumento na linha de comando 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, ele irá avisá-lo, caso contrário irá recordar o valor que definiu e substituir o valor do arquivo 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
>Mudando 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"
>arquivo de configuração</link
> e só se aplica enquanto a opção for passada na linha de comando.</para>

<informalexample>
<para
>Usando 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
>temp-build</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á certificar-se de que os programadores do &kde; que usem o &ssh; para acessar 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 insira a sua senha de &ssh;, por isso e por padrão o &kdesrc-build; irá verificar se o Agente está rodando antes de efetuar as atualizaçõ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 atualização e extraçã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
>Você poderá querer desativar 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 desativar a verificação do agente, configure a opção <option
>disable-agent-check</option
> como <userinput
>true</userinput
>.</para>

<informalexample>
<para
>Desativando 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
>Mudando a quantidade de mensagens do resultado do &kdesrc-build;</title>
<para
>O &kdesrc-build; possui várias opções para controlar a quantidade de dados de 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 majoritariamente silencioso. Só as mensagens importantes, avisos ou erros serão apresentados. Quando estiver disponível, a informação de progresso é 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, uma vez que faz com que o &kdesrc-build; atue como se o <option
>--verbose</option
> estivesse ativo, 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
>Você poderá desativar isto com a opção <option
>--no-color</option
> na linha de comando ou configurando a opção &colorful-output; no <link linkend="configure-data"
>arquivo de configuração</link
> como <userinput
>false</userinput
>. </para>

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

</sect2>

<sect2 id="deleting-build-dir">
<title
>Removendo as pastas desnecessárias após uma compilação</title>
<para
>Você está com falta de espaço em disco mas deseja ainda fazer uma extração atualizada do &kde;? O &kdesrc-build; poderá ajudar a reduzir o uso do seu disco ao compilar o &kde; a partir do &subversion;.</para>

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

<orderedlist>
<listitem
><para
>A extração de código atual poderá levar bastante espaço. Os módulos padrão possuem cerca de 1,6 gigabytes de espaço em disco. Você poderá reduzir esta quantidade, se tiver certeza que só vai compilar os módulos que deseja de fato. O &kdesrc-build; não irá remover o código-fonte do disco, mesmo que remova o item do <link linkend="configure-data"
>arquivo de configuração</link
>, assim certifique-se de que são apagados os módulos extraídos e não usados da pasta de código. Lembre-se que os arquivos de código são obtidos da Internet, assim você <emphasis
>não deverá</emphasis
> removê-los se for usar estes arquivos de fato, pelo menos até acabar de usar o &kdesrc-build;.</para>

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

<para
>Uma coisa a observar é que, devido à forma como o &subversion; funciona: existem de fato dois arquivos no disco para cada arquivo extraído do repositório. O &kdesrc-build; não está apto por enquanto a minimizar o tamanho do código, quando ele não estiver sendo 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á que 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, assim 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 1050 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; efetuar as compilações incrementais que poupam tempo.</para>
</listitem>

<listitem
><para
>Finalmente, existe o espaço em disco necessário para a própria instalação do &kde;, que não se 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 exatos, de qualquer forma. </para
></listitem>
</orderedlist>

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

<warning
><para
>Você deverá saber bem o que está fazendo, antes de decidir remover a informação de depuração. A execução de aplicativos muito atuais significa que está rodando programas que, potencialmente, poderão ter tendência a travar, algo que não acontece numa versão estável. Se você estiver rodando '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; assim, é possível que tenha que reativar a informação de depuração do aplicativo afetado e recompilá-lo para ajudar um programador a resolver o problema. Então, 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 é ainda mantida e a depuração fica ativa:</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 otimizações do tamanho.</para>

<screen
>global
  cxxflags             -Os             # Otimizar 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 selecionado 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="http://techbase.kde.org/Development/Tutorials/CMake"
>TechBase do &kde;</ulink
>. Basicamente, em vez de rodar o <userinput
><command
>make</command
> <option
>-f</option
> <filename
>Makefile.cvs</filename
></userinput
>, depois o <command
>configure</command
> e depois o &make;, basta simplesmente rodar o &cmake; e depois o &make;. </para>

<para
>O &kdesrc-build; possui 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
>, e 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 Marcus Gama <email
>marcus.gama@gmail.com</email
></para
><para
>Revisão e atualização de André Marcelo Alvarenga <email
>alvarenga@kde.org</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://projects.kde.org/"
>repositórios de código-fonte</ulink
> baseados no <ulink url="http://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 lista a seguir está um exemplo de como deveria ser uma declaração de um módulo baseado em Subversion no <link linkend="kdesrc-buildrc"
>arquivo de configuração</link
>.</para>

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

<tip
><para
>Este é um módulo baseado no Subversion, uma vez 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
>base-modules</replaceable>
    <option
>repository</option
> kde-projects
    <option
>use-modules</option
> <replaceable
>kde-runtime kde-workspace kde-baseapps</replaceable>
end module-set
</programlisting>

<tip
><para
>Você 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 uma 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 Projeto 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 desenvolvedores do &kde; descobriram eventualmente que a sincronização dos nomes das ramificações Git por uma grande quantidade de repositórios estava ficando mais difícil, especialmente durante o esforço de desenvolvimento das novo &kde; Frameworks para a &Qt; 5. </para>

<para
>Assim, o conceito de <quote
>grupos de ramificações</quote
> foi desenvolvido de modo a permitir aos usuários e desenvolvedores selecionar um de alguns grupos, permitindo ao script selecionar automaticamente a ramificação Git apropriada. </para>

<para
>O &kdesrc-build; tem suporte a essa 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 uso do branch-group</title>

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

<programlisting
>global
    # Selecionar o KDE Frameworks 5 e outros aplicativos baseados na 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 da definição global, mas pode ser definido aqui.

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

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

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

<para
>Esta funcionalidade requer a manutenção de alguns dados por parte dos desenvolvedores do &kde; em um repositório Git chamado <literal
>kde-build-metadata</literal
>. Contudo, esse módulo será incluído automaticamente pelo &kdesrc-build; (ainda que você possa vê-lo aparecer no resultado do script). </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 você escolher terão, por padrão, um nome de ramificação apropriado, como se não tivesse indicado o <literal
>branch-group</literal
> em tudo. </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; recém compilada. O &kdesrc-build; irá tentar fazer isto de forma automática (veja em <xref linkend="session-driver"/>). Esta seçã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 atualizadas, podendo ser útil consultar o arquivo <filename
>kde-env-master.sh</filename
> que vem incluído com o código do &kdesrc-build;.</para>

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

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

<para
>Abra ou crie o arquivo <filename
>.bash_profile</filename
> na pasta pessoal com o seu editor favorito e adicione ao fim do arquivo: Se você estiver compilando o módulo 'qt' (o padrão), adicione em alternativa: <programlisting>
QTDIR=(local da qtdir)   # Por padrão, ~/kdesrc/build/qt.
KDEDIR=(local da kdedir) # Por padrão ~/kde.
KDEDIRS=$KDEDIR
PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
MANPATH=$QTDIR/doc/man:$MANPATH

# Atuar 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 compilando o 'qt' (e usar o &Qt; do seu sistema), adicione isto em alternativa: <programlisting
>KDEDIR=(local da kdedir)  # Por padrão ~/kde.
KDEDIRS=$KDEDIR
PATH=$KDEDIR/bin:$QTDIR/bin:$PATH

# Atuar 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 você não estiver usando um usuário dedicado, defina um novo <envar
>$KDEHOME</envar
> para o seu novo ambiente no seu arquivo <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 aplicativos da sua distribuição, você poderá ter que 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
>Iniciando o &kde;</title>

<para
>Agora que você ajustou a sua configuração do ambiente para usar o &kde; correto, é importante certificar-se de que o programa <command
>startkde</command
> correto seja usado também. </para>

<para
>Abra o arquivo 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 efetuar os mesmos passos com o arquivo <filename
>.xsession</filename
>, também na pasta pessoal. Isto aplica-se especialmente nos gerenciadores de login gráficos como o &kdm;, o <application
>gdm</application
> ou o <application
>xdm</application
>.</para>
</important>

<para
>Agora inicie o seu novo &kde;: 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 o Console Virtual 1 a 12. Isto permite-lhe executar mais de um ambiente gráfico ao mesmo tempo. Os primeiros seis são terminais de texto e os seis seguintes são gráficos. </para>

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

<para
>Caso contrário, existe algo que você poderá tentar que normalmente funciona: Pressione <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F2</keycap
></keycombo
>, para que apareça um terminal de texto. Logue-se com o usuário dedicado e digite: </para>

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

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

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

<para
>Você poderá voltar ao ambiente de trabalho do &kde; do seu usuário normal, pressionando a tecla de atalho do ambiente em execução. Ela é normalmente o <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F7</keycap
></keycombo
>, sendo que você poderá também precisar usar o <keycap
>F6</keycap
> ou o <keycap
>F8</keycap
> em alternativa. Para voltar ao seu &kde; compilado pelo &kdesrc-build;, você irá usar a mesma sequência, usando, no entanto, a tecla de função seguinte. Por exemplo, se você precisar inserir <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F7</keycap
></keycombo
> para mudar para o seu &kde; normal, poderá ter que inserir <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F8</keycap
></keycombo
> para voltar ao seu &kde; do &kdesrc-build;.</para>
</tip>

</sect2>
</sect1>

</appendix>
</book>
