見出し画像

Fritzingのビルド(その2)(OpenSUSE環境)

電子工作でよく使われている配線図等の作成ソフトFritzing(1.0.1)をソースコードからビルドする記事を書きました。

そのすぐ後になって、新しいバージョン1.0.2のソースコードがGitHubに公開されました。これまでの開発環境はQt5を使っていたようですが、1.0.2からはQt6に変わったようです。

そのため、改めてビルドの方法を書いておきます。また、前回は、関連するライブラリをソースコードからインストールすることで説明しましたが、今回はできるだけパッケージを利用するようにしました。

LinuxはOpenSUSE Tumbleweedです。他のディストリビューションでも似たような感じだと思います。ラズパイ5ではインストールできました。


FritzingのソースコードはGitHubに置いてあるので、適当なディレクトリでアプリ(fritzing-app)とパーツ(fritzing-parts)のソースコードダウンロードします。
ここでは、/home/xxx/src/appディレクトリ内にダウンロードするとします。

> cd /home/xxx/src/app
> git clone https://github.com/fritzing/fritzing-app.git
> git clone https://github.com/fritzing/fritzing-parts.git

ビルドは基本的にはQt Creatorを起動して、ダウンロードしたfritzing-appディレクトリ内のプロジェクトファイルphoenix.proを開いてリビルドすればできるようになっています。

ただ、そのままではエラーになるので以下の変更を行いました。


パッケージのインストール

下記のパッケージをインストールしておきます。パッケージ管理ソフトで行えます。GUIならyast2、コマンドラインならzypper。
libpolyclipping-devel, libngspice-devel, quazip-qt6-devel, libgit2-devel

> sudo zypper install libpolyclipping-devel, libngspice-devel, quazip-qt6-devel, libgit2-devel

ラズパイ5の場合はzypperをaptに、パッケージ名の-develを-devに変更するなどでできると思います。
ngspice, quazip, git2をパッケージでなくソースからインストールしたい場合は、その1を参考にしてください。

svgppのダウンロード

svgppをダウンロードします。ディレクトリ名をsvgpp-1.3.0に変更します。ここではシンボリックリンクで説明しています。

> cd /home/xxx/src/app
> git clone https://github.com/svgpp/svgpp.git
> ln -s svgpp svgpp-1.3.0

priファイルの書き換え

fritzing-app/priディレクトリ内のファイルを下記のように書き換えます(適当な場所に追加すれば良いです)。

spicedetect.pri

NGSPICEPATH = /usr/include/ngspice

quazipdetect.pri

QUAZIP_PATH=/usr
QUAZIP_INCLUDE_PATH=$$QUAZIP_PATH/include/QuaZip-Qt6-1.4
QUAZIP_LIB_PATH=$$QUAZIP_PATH/lib64

clipper1detect.pri

CLIPPER1=/usr

phoenix.proの書き換え

使用しているQtのバージョンが6.5.3~6.5.10であるかどうかのチェックがかかっています。それ以外のバージョンではビルドが止まるようになっています。Qtのバージョンチェックで止まってしまう場合には、phoenix.proの下記の部分をコメントアウトします。

 !versionAtLeast(QT_VERSION, $${QT_LEAST}):error("Use at least Qt version $${QT_LEAST}")
 !versionAtMost(QT_VERSION, $${QT_MOST}):error("Use at most Qt version $${QT_MOST}")

ビルド

以上の書き換えを行って、Qt Creatorでphoenix.proを開いてリビルドすれば、ビルドが完了すると思います。
/home/xxx/src/app/build-phoenix-unknown-Releaseディレクトリ(デバッグモードではbuild-phoenix-unknown-Debug)内にFritzingという実行プログラムができています。

多言語対応(lrelease)

fritzingは多言語対応しているのですが、単にリビルドしただけではうまくいかないようです(1.0.1のビルドでは特に何もしなくても良かったと思うのですが)。
Qt Creatorのメニューで、「ツール」ー「外部」ー「Linguist」ー「翻訳をリリース(lrelease)」を実行すれば良いようです。
fritzing-app/translationsディレクトリ内に拡張子がqmのファイルがあればOKです。

実行方法

/home/xxx/src/app/build-phoenix-unknown-Releaseディレクトリに移動して、下記のようにfritzing-appとfritzing-partsへのフルパスを指定して起動すると実行できます。

./Fritzing -f "/home/xxx/src/app/fritzing-app" --parts "/home/xxx/src/app/fritzing-parts"

適当な名前を付けた下記のような内容のシェルスクリプトを作って、パスの通ったディレクトリに置いておけば、どこからでも起動できるようになると思います。

#! /bin/sh
/home/xxx/src/app/build-phoenix-unknown-Release/Fritzing -f "/home/xxx/src/app/fritzing-app" --parts "/home/xxx/src/app/fritzing-parts" "$@" &

この記事が気に入ったらサポートをしてみませんか?