このブログはLazarus(FreePascal)アドベントカレンダー20日目の記事です。
今回のお題はLazarusのパッケージマネージャについて。Lazarusにはオンラインパッケージマネージャというものが付属しており、パッケージメニューから起動することができるようになっています。
こちらは昨日のパッケージのインストールとやれることは基本的に同じですが、「パッケージのインストールもしくはアンインストール」メニューだとあらかじめLazarusに同梱されたパッケージを取捨選択できるのに対し、こちらはLazarusサイトにて公開されているさまざまなLazarusパッケージを追加インストールすることができるもの という感じ。
パッと見た感じビジュアルコンポーネントが多めのようです(非ビジュアルコンポーネントもありますが、TComponentを継承しているためデザイナーでフォームに配置して使える というものが多い)。
ただIDEのコンポーネント一覧に追加する都合上、パッケージのインストールが終了すると、IDEの再構築が必要になります。なのでこちらもおそらく、若干ながらなんらかの不整合によりLazarus自体が起動しなくなってしまうこともありえそうです。
なので万全を期すならこちらもSandbox環境でインストールしてテストしてみると良さそう。
実際に公開されているパッケージ
実際に公開されているものをいくつか入れてみました。
実際にフォームに貼り付けて使うビジュアルコンポーネントや・・・。
フォームに貼り付けるとアイコンだけが表示される非ビジュアルコンポーネントも公開されています。
インストールされたコンポーネントはどこへ行く?
インストールされたコンポーネントはコンポーネント一覧のどこかのタブに追加されます。
ここが結構厄介で、とりあえずパッケージ制作者が何も指定していない場合はMiscタブに格納されるようですが、まったく違うタブに追加されるものもあるみたい。
表示メニューのコンポーネントメニューから表示されるコンポーネント一覧で名前を探すとかしてみたほうがよさそう。
肝心のコンポーネントの使い方は・・・
だいぶ不明。ぱっと見で何となく分かるTCaptchaLabelとかはわかるけど非ビジュアルコンポーネントとかどう使えば良いのやら・・・。
いちおうコンポーネント一覧のHome pageを見た感じGithubのリンクになってる場合が多いので、そこを見てみるとREADMEに割としっかりとした説明が書かれているパッケージもありそうです。
ドキュメントコメントがないものもあり、ちょっと使いづらい感覚はあるかな・・・。
自分がインストールしていないパッケージを使っているプロジェクトを読み込もうとしたときは
さて、(自分が知っている限り)PythonのpipenvやJavaScriptのnpmのように、コマンド一つで使用しているモジュールなどをダウンロードできるコマンドが存在しないLazarus。
ここで公開されているコンポーネントを使用したプロジェクトを、パッケージをインストールしていない環境で開こうとした場合はどうなるか?
というと、次のようなダイアログが表示され、そのままパッケージをインストールすることができます。
なので「なんか面白そうなプログラムのソースコード見つけたけどパッケージがないから使えないよ!」なんてことはとりあえずなさそう(バージョン違いとかどうするんだろう?)。