2017年6月17日土曜日

18: サンプルUNO拡張機能(LibreOffice拡張機能またはApache OpenOffice拡張機能)を理解する、パート5

<このシリーズの、前の記事 | このシリーズの目次 | このシリーズの、次の記事>

Main body START

ビルドプロセスでは何が起きるのか?

-Hypothesizer

これで、手作業で作る構造物はすべて作った。

-Rebutter

では、これらの構造物から、ビルドプロセスにて他の構造物がすべて作られるのか?

-Hypothesizer

そうだ。ビルドプロセスで何が起きるかを説明しよう。

中間構造物を格納する'intermediate'ディレクトリがプロジェクトディレクトリ内に作られる。例えば、Javaクラスファイルは中間構造物だ。なぜなら、最終的に、Javaクラスファイル群を格納するJarファイルを格納するUNO拡張機能ファイルは必要だが、裸のJavaクラスは必要ないから。

-Rebutter

ははあ。

-Hypothesizer

次に、各UNOIDLファイルがUNOデータタイプ「マージされていない」レジストリファイルにコンパイルされ、ディレクトリ、'intermediate/registry'配下に格納される。

-Rebutter

分かった。

-Hypothesizer

次に、ターゲット構造物を格納するディレクトリ、'target'がプロジェクトディレクトリ内に作られる。

次に、UNOデータタイプ「マージされていない」レジストリファイル群が、UNOデータタイプ「マージされた」レジストリファイルにマージされ、ディレクトリ、'target'配下に格納される。

-Rebutter

UNOデータタイプ「マージされた」レジストリファイルはターゲット構造物なのか?それはUNO拡張機能ファイルに含まれるだけではないのか?

-Hypothesizer

実のところ、このサンプルUNO拡張機能では、UNO拡張機能ファイルに含まれるだけだ。しかし、LibreOfficeに直接登録することもでき、将来的には、我々は、我々のすべてのUNOデータタイプを格納する単一のUNOデータタイプ「マージされた」レジストリファイルをビルドする単一のプロジェクトを作り、この単一のUNOデータタイプ「マージされた」レジストリファイルをLibreOfficeに登録するつもりだ。

-Rebutter

すると、将来的には、我々は、すべてのUNOIDLファイルを単一のプロジェクトに集めるのか?

-Hypothesizer

そうだ。これは、我々のUNOデータタイプを、我々のどのUNO拡張機能からもアクセス可能であるようにしたいからだ。

-Rebutter

なるほど。

-Hypothesizer

次に、Javaのクラスファイル群が、UNOデータタイプ「マージされた」レジストリファイルから作られる。これらは、ディレクトリ、'intermediate/classes'配下に格納される。

-Rebutter

それらは、UNOインターフェースと'グローバルUNOサービス'インスタンスファクトリだな?

-Hypothesizer

そうだ。

次に、Javaのソースファイルをコンパイルする。クラスファイルはディレクトリ、'intermediate/classes'配下に格納される。

-Rebutter

なるほど。

-Hypothesizer

次に、Javaクラスファイル群がJarファイルにアーカイブされるが、その際、マニフェストファイルには、'MANIFEST.MF.addition'の内容が書き込まれる。このJarファイルは、ディレクトリ、'target'配下に格納される。

このサンプル拡張機能ではJarファイルはターゲットファイルではなくUNO拡張機能ファイルに含まれるファイルであるが、先ほど述べたUNOデータタイププロジェクトではJarファイルがLibreOfficeに直接登録されるし、UNO拡張機能以外のプロジェクトではJarファイルは通常ターゲットファイルなので、Jarファイルはターゲットディレクトリ配下に格納している。

-Rebutter

ふーむ、つまり、ビルドシステムはプロジェクト間で共通なので、一部のプロジェクトでターゲットファイルになり得るものは、すべてのプロジェクトでターゲットファイルとして扱われているわけだ。

-Hypothesizer

そうだ。

次に、Jarファイル、UNOデータタイプ「マージされた」レジストリファイル、UNO拡張機能ファイルのマニフェストファイル、UNOコンポーネント設定ファイルが、UNO拡張機能ファイルにアーカイブされ、ディレクトリ、'target'配下に格納される。

-Rebutter

ははあ。

-Hypothesizer

次に、UNO拡張機能ファイルがLibreOfficeに登録される。

-Rebutter

なるほど。

Main body END

<このシリーズの、前の記事 | このシリーズの目次 | このシリーズの、次の記事>