pgModelerはPostgreSQLを対象とするモデリングツールで、ビルド済みのバイナリは有料で販売していてソースから自分でビルドするのはご自由にという形で提供されている。
ちょっと試してみたいという程度なので今回はソースからビルドしてみた。
多少の試行錯誤があったので、手順をメモする。
前準備
$ brew install postgresql
$ brew install qt@5
$ git clone https://github.com/pgmodeler/pgmodeler.git
$ cd pgmodeler
libxml2も使うがXcodeに付いてくるものがあるので別途インストールする必要はない。
pgmodeler.priを修正する
バージョン番号などの詳細は実行したタイミングによって異なるので適宜修正する。
diff --git a/pgmodeler.pri b/pgmodeler.pri
index 1ab60335..e2dbdd1b 100644
--- a/pgmodeler.pri
+++ b/pgmodeler.pri
@@ -195,8 +195,8 @@ unix:!macx {
}
macx {
- !defined(PGSQL_LIB, var): PGSQL_LIB = /Library/PostgreSQL/12/lib/libpq.dylib
- !defined(PGSQL_INC, var): PGSQL_INC = /Library/PostgreSQL/12/include
+ !defined(PGSQL_LIB, var): PGSQL_LIB = /opt/homebrew/Cellar/postgresql/14.1_1/lib/libpq.dylib
+ !defined(PGSQL_INC, var): PGSQL_INC = /opt/homebrew/Cellar/postgresql/14.1_1/include
!defined(XML_INC, var): XML_INC = /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2
!defined(XML_LIB, var): XML_LIB = /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libxml2.tbd
INCLUDEPATH += $$PGSQL_INC $$XML_INC
ビルドする
$ /opt/homebrew/Cellar/qt@5/5.15.2_1/bin/qmake -r CONFIG+=release pgmodeler.pro
$ make
$ make install
これで/Applications/pgModeler.appが作られるが、アプリをクリックしても実行できない。
実行するにはコード署名が要るようで、以下のコマンドでそれができる。
$ codesign --force --deep --sign - /Applications/pgModeler.app
これでpgModeler.appを実行できた。
余談
最初Qt5をインストーラでインストールして使おうとしたが、ビルドが通らなかった。
コンソール出力を見るとリンカがエラーを出していて、x86_64とarm64が混じってるらしかった。
qmakeで生成されたMakefileにx86_64という指定があったので、インストールしたQtがx86版だったっぽい。
postgresqlに合わせてqt5もhomebrewでインストールしてqmakeからやり直すとビルドできた。
コード署名のやり方は、アプリの実行ができなくてコンソールアプリでエラー内容を確認して、そこにあった
Namespace CODESIGNING, Code 0x2
という文言で検索すると同様の問題に遭遇して解決できたケースを見つけることができた。
参考
pgModelerのサイトにソースからのビルド方法はあるが、コード署名については触れられていない。
pgmodeler.io