Lazarus Packages/sk

From Free Pascal wiki
Jump to: navigation, search

Deutsch (de) English (en) español (es) français (fr) 日本語 (ja) português (pt) slovenčina (sk)

Prehlad balíkového systému Lazarus

Čo je balík v Lazaruse?

Balíček v Lazarus je zoznam unít a komponentov, ktoré obsahujú informácie o tom ako majú byť skompilované a ako môžu byť použité inými balíkmi, alebo IDE. Oproti Delphi, balíky niesu obmedzené len na knižnice a môžu byť nezávislé od operačného systému. (Delphi: Balíček v Delphi je špecialne skompilovaná knižnica používaná aplikáciami, prostredím alebo obomi. Balíky Delphi vyžadujú od prekladača špeciálnu funkciu ktorú fpc v tomto momente ešte nemá a ktorá je závislá na operačnom systéme).

Momentálne podporuje prekladač Free Pascal len statické balíky. Kvôli tomu musíte skompilovať a reštartovať prostredie pri každej inštalácií alebo odinštalácií balíka.

Balík lazarusu je identifikovaný menom a verziou.

FAQ

Otázka: Potrebujem inštalovať balíček?

Odpoveď: Balíček potrebujete inštalovať len, ak obsahuje položky pre dobu návrhu (designtime), ako komponenty pre Paletu komponentov IDE. Ak tieto položky nepoužívate, balíček inštalovať nepotrebujete. Ak chcete len použiť balíček vo svojom projekte, neinštalujte ho.

Otázka: Nainštaloval som balíček, ale IDE nevie nájsť jednotky

Odpoveď: Inštalácia balíčka znamená, že balíček je integrovaný do IDE, nei do Vášho projektu. To sú dve odlišné veci. Pre použitie balíčka vo svojom projekte, použite Project -> Project Inspector -> Add -> New Requirement a odinštalujte balíček, ak neobsahuje žiadne rozšírenie IDE.

Rýchly štart

Aby ste videli balíkový systém v akcií urobte následovné:

Vytváranie nového balíku:

  • File->New... -> Package -> Standard Package
  • Otvorí sa editor balíkov
  • Použite tlačidlo Save hore vlavo.
  • V závislosti od Vášho nastavenia 'naming' vo Voľbách prostredia sa vás IDE opýta, či má uložiť súbor s malými písmenami. Stlačte Áno.

Gratulujem: Práve ste vytvorili svôj prvý balík.

Pridávanie nového komponentu:

  • Použite tlačidlo Add -> New component
  • Vyberte si komponent v zozname predkov typu combobox. Napr.: TBevel.
  • Kliknite OK
  • Súbor bude pridaný do balíčka a otvorený v editore.
  • Nainštalujte balík pomocou tlačidla 'install' na vrchu editora balíkov.
  • Lazarus uloží balík a spýta sa či má byť IDE prebudované. Sltačte Áno.
  • Balíky sú staticky linkované takže je potrebný reštart IDE.
  • Reštartujte Lazarus a pozrite či máte svoj komponent v lište komponentov (Napr.: TBevel1 bude na 'Additional' stránke).

Gratulujem: Práve ste nainštalovaly svoj prvý balík so svojim prvým komponentom.

Položky menu IDE pre balíčky

File->New... -> Package -> Standard Package
  • vytvorí nový balíček
Project -> Project Inspector
  • zobrazuje, ktoré balíčky sú vyžadované projektom, ktorý je práve otvorený
  • môžete tu pridať/odobrať závislosti
Run -> Compiler options -> Inherited
  • zobrazuje voľby prekladača, a z ktorého balíčka sú zdedené
Components ->
  • Open loaded package: dialóg zobrazujúci všetky otvorené balíčky a ich stav
  • Open package file (.lpk): otvoriť súbor .lpk
  • Open package of current unit: otvoriť súbor .lpk, ktorý patrí súboru v Editore zdrojového kódu
  • Open recent package: otvoriť súbor naposledy otvoreného balíčka (súbor .lpk)
  • Add active unit to a package: pridá jednotku v Editore zdrojového kódu do balíčka
  • Package Graph: Diagram balíčkov, zobrazuje všetky otvorené balíčky a ich závislosti
  • Configure installed packages: upraviť zoznam balíčkov nainštalovaných v IDE - nainštalovať/odinštalovať viacero balíčkov naraz
Project -> Project Inspector
  • tu možno upravovať všetky balíčky použité projektom

Teória

Každý balíček Lazarus má súbor .lpk. Balíček je identifikovaný svojim menom a verziou. Meno musí súhlasiť s menom súboru .lpk. Napríklad:

Name: Package1, Version: 1.0, Filename: /home/.../package1.lpk.
  • IDE automaticky vytvára hlavný súbor zdrojového kódu (package1.pas). Súbor .lpk obsahuje informácie o vyžadovaných balíčkoch, použitých súboroch, ako ich kompilovať a čo je potrebné pre použitie balíčka inými balíčkami/projektmi. Adresár, v ktorom sa nachádza súbor .lpk, je volaný "adresár balíčka".
  • IDE udržiava zoznam všetkých balíčkových súborov (<config directory>/packagelinks.xml). Vždy keď otvoríte balíček v IDE, je pridaný do tohoto zoznamu. Keď otvoríte balíček, IDE automaticky otvorí všetky vyžadované balíčky pomocou tohoto zoznamu.
  • Tri základné balíčky: FCL, LCL a SynEdit, sú súčasťou IDE a tak sú vytvorené automaticky, len na čítanie a nemajú súbor .lpk.
  • Bežné balíčky majú zdrojový adresár s jednotkami Pascalu. Normálne je tam aj súbor .lpk. Balíček má aj výstupný adresár, predvolene to je podadresár 'lib/$(TargetCPU)-$(TargetOS)/' a adresári balíčka.
  • Pred samotnou kompiláciou balíčka IDE skontroluje všetky vyžadované balíčky a ak ich je potrebné aktualizovať a majú nastavený príznak autoaktualizácie, sú najprv preložené. Potom IDE vytvorí hlavný súbor zdrojového kódu, ak bol súbor .lpk napríklad package1.lpk, potom hlavný súbor zdrojového kódu bude package1.pas. Tento súbor obsahuje v sekcii uses všetky jednotky a procedúru 'Register', ktorá je volaná v sekcii intialization.
Napríklad
This file was automatically created by Lazarus. Do not edit!
This source is only used to compile and install
the package GTKOpenGL 1.0.
unit GTKOpenGL; interface uses GTKGLArea, GTKGLArea_Int, NVGL, NVGLX, LazarusPackageIntf; implementation procedure Register; begin RegisterUnit('GTKGLArea', @GTKGLArea.Register); end; initialization RegisterPackage('GTKOpenGL', @Register) end.
  • Potom je volaný prekladač a balíček je preložený do výstupného adresára.
  • Po úspešnom preklade je vytvorený stavový súbor. Stavový súbor je vložený do výstupného adresára, volá sa <menobalíčka>.compiled a obsahuje informácie o tom, ako bol balíček preložený. Tento stavový súbor je použitý v IDE pre kontrolu či jepotrebná aktualizácia.

Príklad: gtkopengl.compiled:

<?xml version="1.0"?>
<CONFIG>
  <Compiler Value="/usr/bin/ppc386" Date="781388725"/>
  <Params Value=" -Rintel -S2cgi -CD -Ch8000000 -OG1p1
    -Tlinux -gl -vewnhi -l -Fu../../../lcl/units
    -Fu../../../lcl/units/gtk -Fu../../../packager/units
    -Fu. -FElib/ gtkopengl.pas"/>
</CONFIG>
  • IDE otvára všetky potrebné balíčky automaticky. To znamená, že otvára všetky nainštalované balíčky, všetky balíčky označené pre inštaláciu (auto install), všetky balíčky s otvoreným Editor, všetky balíčky vyžadované projektom a všetky balíčky vyžadované inými balíčkami. Nepotebné balíčky sú automaticky uvoľnené, keď má IDE trochu času.
  • IDE nikdy neotvára dva balíčky s rovnakým menom naraz. Keď používateľ otvorí iný balíček s rovnakým menom ako má už otvorený balíček, IDE sa spýta na jeho nahradenie.
  • IDE spravuje dve samostatné množiny balíčkov: nainštalované balíčky a automaticky nainštalované balíčky. Automaticky nainštalované balíčky budú pripojené k IDE pri nasledujúcom preklade IDE. Na to si vytvára v konfiguračnom adresári dva nové súbory: staticpackages.inc a idemake.cfg. Potom pre preloženia seba samého volá:
make ide OPT=@/path/to/your/config/idemake.cfg

Pokyny a tipy

Prosím, pridajte každý pokyn, či tip tu.

  • pre premenovanie balíčka použite 'Save as'.
Príklad

Ako príklad použijem tiOPF. tiOPF má takúto štruktúru adresára, keďže je preložený pre FPC, Delphi 5-7, D2005 a D2006.

Source                <= úplná cesta \Programming\3rdParty\tiOPF\Source
 \Compilers
    \Delphi7          <= tu je balíček pre Delphi 7
    \D2005
    \FPC              <= tu je tiOPF.lpk
 \Core                <= súbory základných jednotiek
 \Options             <= súbory voliteľných jendotiek, pre dodatočné funkcie
 \GUI

Pre použitie tohoto príkladu som pridal do "Options - Usage - Units" nasledujúce cesty:

"$(PkgOutDir);..\..\Core;..\..\Options;..\..\GUI" 

ktoré budú pridané do každého projektu používajúceho tento balíček.


Pridanie existujúcej komponenty do balíčka

Pokiaľ chcete pridat súbor obsahujúci nejakú komponentu do existujúceho balíčka, postupujte takto:

  • Otvorte súbor balíčka
  • Kliknite na 'Add', aby ste pridali novú položku do balíčka
  • Vyberte zalóžku v okne 'Add to package'
  • Vyberte súbor ktorý chcete pridať
  • Zaškrtnite políčko 'Has Register procedure' v prípade, že súbor obsahuje registrovaciu procedúru (Register). Ak toto nespravíte, komponenta sa nezobrazí na palete komponentov.
  • Kliknite 'Add unit'
  • Prekompilujte a nainštalujte balíček.

To je všetko - komponenta by teraz mala byť na palete komponentov.


Registrovacia procedúra Register

Aby sa mohla komponenta zobraziť na palete komponentov, musí byť zaregistrovaná v Lazarovi. Toto sa deje v registrovacej procedúre. Táto procedúra sa musí objaviť v interface sekcii unity a musí obsahovať jeden alebo viacej volaní RegisterComponent, takisto tiež parametre inštalácie a editor pre komponenty.

V balíčku sa môže nachádzať viac ako jedna procedúra Register. V editore balíčko (Package Editor) musí Lazarovi povedať, ktoré unity majú procedúru Register, aby vedel, ktorú zavolať po nainštalovaní balíčka.

Sú dva spôsoby, ako označiť unitu obsahujúci procedúru Register:

  • Môžete tak spraviť pri pridávaní unít do balíčka (pozri tiež Pridanie existujúcej komponenty do balíčka)
  • Alebo môžete vybrať unitu v nastavení balíčka a zaškrtnúť políčko "Register" v okne Details

Nezabudnite prekompilovať a nainštalovať balík po zmene parametrov.

Spolupracovníci a komentáre

This page has been converted from the epikwiki version.

  • dokončenie prekladu a aktualizácia z originálu --Komunista 18:45, 2 January 2008 (CET)