Sign in Join
Wiki copytemporary

Lazarus Packages/pt: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11# Visão Geral do Sistema de Pacotes do Lazarus
22
33## O que é um pacote Lazarus?
44
55Um pacote Lazarus é uma coleção de unidades e componentes contendo informação sobre como eles podem ser compilados e como eles podem ser usados por projetos ou outros pacotes ou a IDE. Ao contrário do Delphi, os pacotes não são limitados a bibliotecas e podem ser independentes de sistema operacional. (No Delphi um pacote é uma biblioteca especialmente compilada usada por aplicações, pela IDE ou por ambos. Os pacotes do Delphi requerem a magia do compilador Delphi, o que o FPC não é capaz de fazer no momento e, é claro, esta magia é dependente de sistema operacional.)
66
77Atualmente o compilador [[Free Pascal]] só dá suporte a pacotes estáticos. Portanto você deve reiniciar a IDE a cada vez que um pacote é instalado ou desinstalado.
88
99Um pacote Lazarus é identificado ou distinguido pelo nome e pela versão.
1010
1111## FAQ
1212
1313P: É preciso instalar um pacote:?\
1414R: Você só precisa instalar um pacote se ele contiver itens de tempo de desenho, como os componentes da paleta de componentes da IDE. Se você não usa estes itens, não precisa instalar o pacote. Se você só quer usar o pacote em seus projetos, não o instale. P: Eu instalei um pacote mas a IDE não encontra as unidades\
1515R: Instalar um pacote significa que o pacote é integrado à IDE, não ao seu projeto. São duas coisas diferentes. Para usar um pacote no seu projeto, vá a Projeto \> Inspetor de Projetos \> Adicionar \> Novo Requerimento. E desinstale o pacote se ele não contém itens usados pela IDE.
1616
1717## Início Rápido
1818
1919Para ver o sistema de pacotes em ação e se acostumar com ele, faça o seguinte:
2020
2121Criando um novo pacote:
2222
2323- Arquivo -\> Novo... -\> Pacote -\> Pacote Padrão
2424- Abre-se o editor de pacotes
2525- Use o botão Salvar no alto à esquerda.
2626- Dependendo da sua configuração de nome em Opções de Ambiente a IDE vai perguntar por salvar em minúsculas. Responda Sim.
2727
2828Parabéns: Você criou o seu primeiro pacote.
2929
3030Adicionando um novo componente:
3131
3232- Use o botão Adicionar -\> Novo componente
3333- Escolha um componente na combobox de classes ancestrais. Por exemplo: TBevel.
3434- Clique em Ok
3535- O arquivo vai ser adicionado ao pacote e aberto no editor
3636- Instale o pacote clicando em 'instalar' no alto do editor de pacotes.
3737- O Lazarus vai salvar o pacote e perguntar se a IDE deve ser reconstruida. Responda Sim.
3838- Os pacotes são vinculados estaticamente, portanto é preciso reiniciar a IDE.
3939- Reinicie o Lazarus e veja seu novo componente na paleta de componentes (por exemplo: um TBevel1 vai estar na aba 'Additional').
4040- Se você não vê o seu componente na paleta de componentes, é possível que você não esteja executando a versão recompilada do Lazarus. Você pode configurar onde construir o Lazarus em Ambiente \> Opções de Ambiente \> Arquivos \> Diretório do Lazarus. Em vez de chamar o Lazarus diretamente você pode usar o StartLazarus, que inicia o Lazarus recém-criado, por exemplo o executável do Lazarus no diretório ~/.lazarus, se você não tem direito de acesso para gravação ao diretório em que o Lazarus está instalado.
4141
4242Parabéns: Você instalou o seu primeiro pacote com seu primeiro componente.
4343
4444## Os itens de menu da IDE para pacotes:
4545
4646- Arquivo -\> Novo... -\> Pacote -\> Pacote Padrão
4747
4848Cria um novo pacote.
4949
5050- Projeto -\> Inspetor de Projetos
5151
5252` Aqui você pode ver que pacotes são requeridos pelo projeto atualmente aberto.`\
5353` Você pode adicionar novas dependências ou remover as desnecessárias.`
5454
5555- Executar -\> Opções do Compilador -\> Herdado
5656
5757` Aqui você pode ver que opções de compilador são herdadas de que pacote.`
5858
5959Componentes -\>
6060
6161` - 'Abrir pacote'`\
6262`   Uma caixa de diálogo mostra todos os pacotes abertos e o seu estado.`\
6363` - 'Abrir arquivo de pacote'`\
6464`   Abre um arquivo .lpk`
6565
6666` - 'Abrir pacote da unidade atual'`\
6767`   Abre o arquivo .lpk a que pertence o arquivo aberto no editor de código`\
6868`   `\
6969` - 'Abrir pacote recente'`\
7070`   Abre um pacote recentemente aberto (arquivoi .lpk )`
7171
7272` - 'Adcionar unidade atual a pacote'`\
7373`   Adicioona a unidade aberta no editor de código a um pacote `\
7474`   `\
7575` - 'Gráfico de Pacotes'`\
7676`   O gráfico de pacotes mostra todos os pacotes abertos e suas dependências`
7777
7878` - 'Configurar pacotes instalados'`\
7979`   Edita a lista de pacotes instalados na IDE. Instala ou desinstala vários pacotes de uma vez`
8080
8181Projeto -\> Inspetor de Projetos
8282
8383` Aqui você vê e edita todos os pacotes usados pelo projeto`
8484
8585## A teoria
8686
8787Cada pacote Lazarus tem um arquivo .lpk. Um pacote é identificado pelo seu nome e sua versão. O nome precisa corresponder ao nome do arquivo .lpk. Por exemplo:
8888
8989Nome: Package1, Versão: 1.0, Nome do arquivo: /home/.../package1.lpk.
9090
9191- A IDE cria automaticamente o arquivo-fonte principal (package1.pas) Veja abaixo. O arquivo .lpk contém informação sobre os pacotes requeridos, os arquivos que ele usa, como compilá-los e o que é necessáro para usar o pacote por outros pacotes ou projetos. O diretório em que o arquivo .lpk está é chamado "diretório de pacotes".
9292- A IDE mantém uma lista de todos os arquivos de pacote (\<config directory\>/packagelinks.xml) Toda vez que um pacote é aberto na IDE ele vai ser adicionado à lista. Quando um pacote é aberto, a IDE automaticamene abre todos os pacotes requeridos através desta lista.
9393- Existem três pacotes básicos: FCL, LCL e SynEdit. Eles são parte da IDE e assim eles são auto-criados, somente leitura e não tem arquivo .lpk.
9494- Normalmente um pacote tem um diretório de fontes com algumas unidades Pascal. E normalmente o arquivo .lpk estará lá também. Um pacote tem também um diretório de saída. O padrão é o subdiretório 'lib/\$(TargetCPU)-\$(TargetOS)/' no diretório de pacotes.
9595
9696- Antes de um pacote ser compilado a IDE verifica todos os pacotes requeridos e se eles precisam de atualização e tem a flag de auto-atualização eles são compilados primeiro. Então a IDE cria o pacote dos fontes principais. Se o arquivo .lpk era package1.lpk, o arquivo de fontes principal será package1.pas. O arquivo contém todas as unidades da cláusula uses mais o procedimento Register, que é chamado na seção de inicialização.
9797
9898Por exemplo:
9999
100100`This file was automatically created by Lazarus. Do not edit!`\
101101`This source is only used to compile and install`\
102102`the package GTKOpenGL 1.0.`\
103103` unit GTKOpenGL;`\
104104`interface`\
105105`uses GTKGLArea, GTKGLArea_Int, NVGL, NVGLX, LazarusPackageIntf;`\
106106`implementation`\
107107`procedure Register;`\
108108`begin`\
109109`  RegisterUnit('GTKGLArea', @GTKGLArea.Register);`\
110110`end;`\
111111`initialization`\
112112`  RegisterPackage('GTKOpenGL', @Register)`\
113113`end.`
114114
115115- Então o compilador é chamado e o pacote é compilado para o diretório de saída.
116116- Depois de uma compilação bem-sucedida o arquivo de estado é criado. O arquivo de estado é posto no diretório de saída. Ele tem o nome \<packagename\>.compiled e contém a informação de como o pacote foi compilado. Este arquivo de estado é usado pela IDE para verificar se atualizações são necessárias.
117117
118118Por exemplo: gtkopengl.compiled:
119119
120120`<?xml version="1.0"?>`\
121121`<CONFIG>`\
122122`  <Compiler Value="/usr/bin/ppc386" Date="781388725"/>`\
123123`  <Params Value=" -Rintel -S2cgi -CD -Ch8000000 -OG1p1`\
124124`    -Tlinux -gl -vewnhi -l -Fu../../../lcl/units`\
125125`    -Fu../../../lcl/units/gtk -Fu../../../packager/units`\
126126`    -Fu. -FElib/ gtkopengl.pas"/>`\
127127`</CONFIG>`
128128
129129- A IDE abre todos os pacotes necessários automaticamente. Isto quer dizer que ela abre todos os pacotes instalados, todos os pacotes marcados para instalação (auto-instalados), todos os pacotes abertos no Editor, todos os pacotes requeridos pelo projeto e todos os pacotes requeridos por um dos outros pacotes. Pacotes desnecessários são automaticamente descarregados quando a IDE se torna ociosa.
130130- A IDE nunca abre dois pacotes com o mesmo nome ao mesmo tempo. Quando o usuário abre outro arquivo de pacote com o mesmo nome de um pacote já aberto, a IDE vai perguntar por substituir o antigo.
131131- A IDE mantém dois grupos extra de pacotes: os pacotes 'instalados' e os 'auto-instalados'. Os pacotes auto-instlados vão ser vinculados à IDE na próxima compilação. Ela cria dois novos arquivos no diretório de config: staticpackages.inc e idemake.cfg. Então ela chama 'make ide OPT=@/path/to/your/config/idemake.cfg' para se auto-compilar.
132132
133133## Dicas
134134
135135- Para renomear um pacote, use Salvar Como.
136136
137137Exemplo:
138138
139139`Eu vou usar tiOPF framework como exemplo. The tiOPF tem o seguinte`\
140140`layout de diretório, devido ao fato de que ele compila para FPC, `\
141141`Delphi 5-7, D2005 e 2006.`
142142
143143`Fontes                <= caminho completo \Programming\3rdParty\tiOPF\Source`\
144144` \Compiladores`\
145145`    \Delphi7          <= Pacote do Delphi 7 ficam aqui `\
146146`    \D2005`\
147147`    \FPC              <= o tiOPF.lpk fica aqui `\
148148` \Core                <= arquivos de unidade core`\
149149` \Options             <= arquivo opcional de unidade para funcionalidades extra`\
150150` \GUI`\
151-\
151+
152152`Usando este exemplo, eu incluí na caixa de edição "Opções - Uso - Unidades" o seguintes caminhos:`\
153153`"$(PkgOutDir);..\..\Core;..\..\Options;..\..\GUI" que vão ser adicionados`\
154154`a qualquer projeto que use este pacote.`
155155
156156## Contribuidores e Comentários
157157
158158Esta página foi convertida da [versão](http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusPackages) epikwiki.
159159
160160---
161161*From the Free Pascal wiki, page "Lazarus Packages/pt", as it stood on 2007-06-10 after a change by Antoniog, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history