Claris Filemaker に組み込んで利用するためのプラグインの作成について。
プラグイン環境構築からコンパイルまで。

開発環境および SDK について

SDK の入手

Claris 社からサンプルプロジェクトが配布されている。
https://www.claris.com/ja/resources/downloads/ の画面下部スポイラー「プラグインのサポート」の中に、SDK のダウンロードリンクが張ってある。SDK に変更が加わるごとにダウンロードできるファイルも更新されるようなので、最新版が出てないか時々ダウンロードするとよい。

コンパイラについて

SDK に含まれているサンプルプロジェクトには、 Visual Studio 向けのプロジェクトファイル (.sln) と Code::Blocks 向けのプロジェクトファイル (.cbp) が同梱されている。

開発には C++ を利用するため、上記の IDE および C++ 向けのコンパイラを用意しておく必要がある。
私の手元の開発環境には Visual Studio がインストールされているので、以降の説明は Visual Studio 向け。

SDK 構成について

Headers/FMWrapper

Filemaker の内部で利用されている型や API や定数値をまとめたヘッダファイル群。ここでは細かく解説しない (機会があれば別のところで) が、特に大事なファイルは FMXExtern.h である。(プラグインのエントリポイント関数のシグネチャについて記述されている)

Libraries

各環境 (OS) 向けのライブラリが存在する。中身までは詳しく見ていないが、名前からして Headers/FMWrapper のヘッダに対応した本体のバイナリであると思われる。

MiniExample

プラグインのサンプルプロジェクト。

コンパイルについて

MSBuild から

FMMiniPlugin.sln が存在するディレクトリ内で、 MSBuild.exe コマンドを発行する。手元で試したところ、 x64/Debug/FMMiniPlugin.fmx64 ファイルが出力された。これがプラグインファイルである。

MSBuild コマンドに対してオプションを指定することによって、 Debug/Release や x86/x64 向けなどのビルド構成を指示できる。

> MSBuild.exe
MSBuild のバージョン 17.9.5+33de0b227 (.NET Framework)
2024/03/18 5:41:56 にビルドを開始しました。

ノード 1 上のプロジェクト "C:\xxxxx\PlugInSDK\MiniExample\FMMiniPlugIn.sln" ( 既定のターゲット)。"
  ソリューション構成 "Debug|x64" をビルドしています。
PrepareForBuild:
  構造化出力が有効になっています。コンパイラ診断の書式設定にはエラー階層が反映されます。詳細については、https://aka.ms/cpp/structured-output を参照してください。
InitializeBuildStatus:
  "AlwaysCreate" が指定されたため "x64\Debug\FMMiniPlugIn.tlog\unsuccessfulbuild" を作成しています。
  "x64\Debug\FMMiniPlugIn.tlog\unsuccessfulbuild" のタッチ タスクを実行しています。
ClCompile:
  すべての出力が最新のものです。
ResourceCompile:
  すべての出力が最新のものです。
Link:
  すべての出力が最新のものです。
  FMMiniPlugIn.vcxproj -> C:\xxxxx\PlugInSDK\MiniExample\x64\Debug\FMMiniPlug
  In.fmx64
FinalizeBuildStatus:
  ファイル "x64\Debug\FMMiniPlugIn.tlog\unsuccessfulbuild" を削除しています。
  "x64\Debug\FMMiniPlugIn.tlog\FMMiniPlugIn.lastbuildstate" のタッチ タスクを実行しています。
プロジェクト "C:\xxxxx\PlugInSDK\MiniExample\FMMiniPlugIn\FMMiniPlugIn.vcxproj" (既定
のターゲット) のビルドが完了しました。

プロジェクト "C:\xxxxx\PlugInSDK\MiniExample\FMMiniPlugIn.sln" (既定のターゲット) のビルドが完了しま
した。

ビルドに成功しました。
    0 個の警告
    0 エラー

経過時間 00:00:00.26

Visual Studio (IDE) から

FMMiniPlugin.sln ファイルを Visual Studio から開く。Ctrl + Shift + B キー押下でビルドを実行すると、 x64/Debug/FMMiniPlugin.fmx64 ファイルが出力される。

まとめ

本記事では、提供元からサンプルプロジェクトをダウンロードしてきて、手元でコンパイルを実行するまでの手順を並べた。

実際は、ビルド時に読み込まれるメタデータ (プラグイン発行元など) を編集したり、独自の機能を提供するために C++ コードを記述したりする必要がある。実際のカスタマイズについては、別途解説記事を作成する予定。