Lazarus Packages/ja
│
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
日本語 (ja) │
português (pt) │
русский (ru) │
slovenčina (sk) │
Lazarusのパッケージシステムの概要
lazarusパッケージとは?
lazarusパッケージとは、ユニットやコンポーネントを集めたものです。それには、どのようにコンパイルできるかという情報や、IDEや他のパッケージや、プロジェクトで、どうやって使うか、といった情報が含まれています。Delphiと大きく違うところは、パッケージはOSに依存したライブラリではないということです。(Delphiの場合、パッケージは特定のアプリケーションやIDEで使われるために特別にコンパイルされたライブラリで、Delphiパッケージは、コンパイラマジックを必要としています。fpcは現在の時点では、この特定のOS環境に依存するコンパイラマジックを受け付けません。)
現在、Free Pascalコンパイラは、スタティックパッケージしかサポートしません。ですから、パッケージをインストールしたり、アンインストールするときには、コンパイルして、IDEを再起動しなくてはなりません。
lazarusパッケージは名前とバージョンによって識別され、区別されます。
よくある質問
Q: 私はパッケージをインストールする必要はありますか?
A: 必要としているパッケージが、IDEのコンポーネントパレットのコンポーネントのように、設計時の何らかの機能を含んでいるときに、インストールすればよいでしょう。それらを使わないときは、パッケージはインストールする必要はありません。プロジェクトでパッケージを使いたくなければ、インストールしないでください。
Q: パッケージをインストールしました。しかし、IDEがユニットを見つけてくれません。
A: パッケージをインストールする、ということは、パッケージがIDEに統合されたことを意味します。あなたのプロジェクトに、ではありません。それらは、別々のものです。あなたのプロジェクトでパッケージを使いたいときは、メニューからProject -> Project Inspector -> Add -> New Requirement を選択してください。プロジェクトにIDEのおまけ機能が必要でなくなったら、パッケージをアンインストールしてください。
クイックスタート
パッケージシステムを使う操作方法です。次のようにしてください。
新規のパッケージを作る:
- File->New... -> Package -> Standard Package
- パッケージエディタが開きます。
- 左上のSaveボタンを使います。
- 'enviroment options'の中で設定したあなたの名前付けによっては、IDEは小文字で保存するように尋ねるかもしれませんが、yesとしてください。
これでめでたく最初のパッケージを作ることができました。
新しいコンポーネントを追加する:
- Addボタンを押す -> New component
- 先祖型コンボボックスからコンポーネントを選びます。たとえば、TBevelなど。
- Okをクリック
- パッケージにファイルが追加され、エディタ内に表示されます。
- パッケージエディタの上にある'install'ボタンをクリックすると、パッケージがインストールされます。
- Lazarusはパッケージを保存し、IDEをリビルドするかどうか尋ねます。Yesを選択してください。
- パッケージは静的にリンクされて、IDEの再起動が必要になります。
- Lazarusが再起動し、コンポーネントパレットに新しいコンポーネントが表示されます。(この例でいうと、「TBevel1」がAdditionalページに表示されるでしょう。).
- もし、コンポーネントパレットに新しいコンポーネントが見つからないなら、おそらく、新しくコンパイルしたLazarusを動かしていないからです。Lazarusの再構築の設定は Environment -> Environment options -> Files -> Lazarus directory でおこなうことができます。
Lazarusを直接呼び出すほかに、startlazarusコマンドもつ変えます。これは新しく作ったLazarsuをスタートします。たとえば、Lazarusの実行ファイルが ~/.lazarusにあり、Lazarusがインストールされたディレクトリに書き込み権限がない場合に使います。
これでめでたく最初のコンポーネントを入れた最初のパッケージをインストールできました。
パッケージのためのIDEメニュー
- File->New... -> Package -> Standard Package
新しいパッケージを作ります。
- Project -> Project Inspector
ここで、現在開いているプロジェクトで必要とされているパッケージを見ることができます。 新しくパッケージへの依存関係を追加することや、不要になったパッケージへの依存を削除することができます。
- Run -> Compiler options -> Inherited
ここでコンパイラオプションをどのパッケージから継承するかを見ることができます。
Components ->
- 'Open package' すべてのパッケージを開くことができるダイアログを表示します。 - 'Open package file' .lpk ファイルを開きます。 - 'Open package of current unit' 現在ソースエディタで開いているファイルに属している.lpk ファイルを開きます。 - 'Open recent package' 最近開いたパッケージファイル(lpk file)を開きます。 - 'Add active unit to a package' ソースエディタで開いているユニットをパッケージに追加します。 - 'Package Graph' 開いているすべてのパッケージの一覧と相関図を表示します。 - 'Configure installed packages' IDEにインストールされているパッケージの一覧を編集します。一度に個々のインストール、アンインストールがおこなえます。
Project -> Project Inspector
ここでは、プロジェクトで使われているすべてのパッケージを確認したり変更することができます。
手順
どのLazarusパッケージにも.lpkファイルがあります。パッケージは名前とバージョンで識別されます。 名前はlpkファイル名と同じでなくてはなりません。たとえば、次のように: Name: Package1, Version: 1.0, Filename: /home/.../package1.lpk.
- IDEは自動的にメインのソースファイルを生成します。(package1.pas) 下を見てください。lpkファイルは必要とするパッケージの情報(どのファイルが必要か、どのようにコンパイルするか、他のプロジェクトやパッケージで必要とされる際に、何が必要となるか、など)をもっています。lpkファイルがあるディレクトリは "package directory"と呼ばれます。
- IDEは全てのパッケージファイルのリストをもっています。(<config directory>/packagelinks.xml). IDEでパッケージを開くたびに、それがこのリストに追加されます。パッケージが開かれるときに、IDEは自動的にすべての依存するパッケージをこのリストを使って開きます。
- 3つの基本となるパッケージがあります。FCL, LCL と SynEditです。これらは、IDEの一部であり、これらのパッケージは、自動的に作られ、ReadOnlyであり、lpkファイルはありません。
- 通常、パッケージはいくつかのPascalユニットがはいっている、1つのソースディレクトリがあります。通常lpkファイルもそこのディレクトリにあります。パッケージは、また1つの出力ディレクトリがあり、デフォルトは、'lib/$(TargetCPU)-$(TargetOS)/'の下のパッケージディレクトリです。
- パッケージがコンパイルされる前に、IDEは全部の依存するパッケージをチェックして、依存するパッケージが更新する必要があるかどうか、自動更新フラグがセットされているか調べて、それらを先にコンパイルします。それからIDEはパッケージのメインソースファイルを生成します。もし、lpkファイルの名前がpackage1.lpkであれば、メインソースファイルは package1.pasです。このファイルは、usesセクションにすべての使用するユニットを含み、initialization節にRegister関数を追加します。
例:
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.
- その後、コンパイラが実行されて、パッケージが出力ディレクトリに生成されます。
- コンパイルが成功した後で、ステートファイルが生成されます。ステートファイルは出力ディレクトリに置かれます。<packagename>.compiledという名前で、どのようにコンパイルされたか、という情報をもっています。この状態ファイルは、パッケージの更新が必要かどうかチェックするため、IDEで利用されます。
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は必要とする全てのパッケージを自動的に開きます。ここでいう全てのパッケージとは、インストールされているすべてのパッケージ、インストール設定で、自動インストールとマークされたすべてのパッケージ、開いているエディタ上のすべてのパッケージ、プロジェクトや他のパッケージで必要としているパッケージ、です。必要としないパッケージは、IDEがアイドル状態に、自動的にアンロードされます。
- IDEは同時に同じ名前のパッケージを開くことはしません。ユーザーがすでにインストールされているパッケージと同じ名前の他のパッケージファイルを開こうとすると、IDEは古いパッケージと置き換えるかどうか尋ねます。
- The IDE maintains two extra sets of packages: The 'installed' packages and the 'auto install' packages. The auto install packages will be linked into the IDE on next compile. It creates two new files in the config directory: staticpackages.inc and idemake.cfg. Then it calls 'make ide OPT=@/path/to/your/config/idemake.cfg' to compile itself.
ヒントと例題
Please add any hints, tips or gotchas here.
- To rename a package, use 'save as'.
Example
I will use the tiOPF framework as an example The tiOPF has the following directory layout, due to the fact that it compiles for FPC, Delphi 5-7, D2005 and D2006. Source <= full path \Programming\3rdParty\tiOPF\Source \Compilers \Delphi7 <= Delphi 7 package files live here \D2005 \FPC <= the tiOPF.lpk lived here \Core <= core unit files \Options <= optional unit file for extra features \GUI Using this example, I included in the "Options - Usage - Units" editbox the following paths: "$(PkgOutDir);..\..\Core;..\..\Options;..\..\GUI" which will be added to whatever project uses this package.
貢献している人とコメント
This page has been converted from the epikwiki version.