KiCad 5.1.4 Windows版 日本語フォントマージビルド
2019年09月05日 新規投稿
2019年09月05日 本家のインストールファイルよりサイズが小さいとご指摘いただきました。調査してみます。
2019年09月06日 ファイルサイズの調査してみました。結果
2019年09月18日 当ページでビルドした5.1.4 バージョン32bit版のフットプリントエディタ起動に不具合がある報告をユーザーの方から頂きましたので公開中止します。32bit版の使用はしないでください。現在調査中です。
KiCad で図面に日本語入力・表示してみたくて自力でコンパイルしてみた第5弾。 5.1.2公開後、油断してたら5.1.4がリリースされ、皆さん使用しているようなので負けずにビルド挑戦しました。
おなじみでしょうが、すべて自己責任で! 間違い・質問・ご要望は お問い合わせ まで。
インストールパッケージは一番下です。
総評
今までに比べると慣れてきたせいもあって短期間でビルドできるようになりました。
ビルド実行していると多少欠落するファイルがありますが以前の作業環境ある場合はコピペで対応できます。
ただし、初めてビルドする人でもシームレスに作業できるように記事を書くポリシーがあるので面倒なダウングレードを行って手順を記載してます、ご了承くださいませ、それでも4.X.Xの頃に比べたらずいぶん楽勝です。
とりあえず欠落してたファイルは、
libeay32.dll ssleay32.dll librtmp*.dll libgnutls*.dll libreadline7.dll libzstd.dll pip.exe pip.exe.manifest pip-script.py
こんな感じでしたが、ほとんど5.1.0のビルドしたときと同じです。 新しくpip関係のファイルが記事作成時点のビルドでは生成されなかったので以前のバージョンに戻してビルドさせファイルをバックアップする方法でしのいでます。
そのほか64ビット版だと .manifest ファイルが不明ですが32ビット版の .manifest ファイル確認したら形だけの状態だし、インストーラー使用して構成するので無くても大丈夫だと思います。
それでも可能な限りファイル見つけてビルド・パッケージ作成しました。
参考サイト
日本語フォントのマージ手順
http://wiki.kicad.jp/ おなじみですがこのサイトの日本語フォントのマージ手順とツールなければ出来ませんでした。(というかやってみようとは思わなかった)
基本的なビルドの方法
http://docs.kicad-pcb.org/doxygen/md_Documentation_development_compiling.html ソースからビルドする場合の情報です。
謝辞
今回も先人に感謝。参考サイト以外にも各サイトにお世話になってます。
うちの情報も役に立ってくれれば、うれしいです。
作業環境
Windows10 64bit
5.1.0と一緒でDドライブにて作業してます。
階層が深くなる対策のため kicad-winbuilder-master を kicad-winbuilder にリネームしてます、 読み替えてくださいませ。
作業開始
Cmakeのインストール
https://cmake.org/download/ から自分の環境にあったインストーラをダウンロードしてセットアップします。
普通にセットアップできるので問題はないかと思います。
ソースの取得
https://github.com/KiCad/kicad-winbuilder の Winbuilder を使用しました。git 環境が整っている方はgithub のkicad-winbuilder を Clone してください。 git 環境が無い場合は https://github.com/KiCad/kicad-winbuilder にアクセスして Clone or Download から zip でダウンロードして展開する。
注意点はドライブのルートに展開するのとユーザー名のスペースに注意です。(マルチバイト文字もかな) 検証は最初の部分にも書いた通り D:\kicad-winbuilder で行いました。
事前準備
前回同様、欠落ファイルを補うためパッケージをダウングレードするとcmake が起動出来なくなります。
今回もエラーで止まったのを見計らってファイルをコピーする方法で対応しました。
- PKGBUILD
kicad-winbuilder ディレクトリの PKGBUILD を PKGBUILD.bak に名前変更。 PKGBUILD-STABLE をコピーして PKGBUILD に名前変更。
名前変更した PKGBUILD の25行目付近に2行追加。 (必須ライブラリの追加)
depends=("${MINGW_PACKAGE_PREFIX}-boost"
"${MINGW_PACKAGE_PREFIX}-cairo"
"${MINGW_PACKAGE_PREFIX}-curl"
"${MINGW_PACKAGE_PREFIX}-glew"
"${MINGW_PACKAGE_PREFIX}-openssl"
"${MINGW_PACKAGE_PREFIX}-wxPython"
"${MINGW_PACKAGE_PREFIX}-wxWidgets"
"${MINGW_PACKAGE_PREFIX}-libxslt"
"${MINGW_PACKAGE_PREFIX}-oce"
"${MINGW_PACKAGE_PREFIX}-gnutls" ← 追加
"${MINGW_PACKAGE_PREFIX}-rtmpdump" ← 追加
"${MINGW_PACKAGE_PREFIX}-ngspice"
"${MINGW_PACKAGE_PREFIX}-fftw")
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-doxygen"
"${MINGW_PACKAGE_PREFIX}-gcc"
"${MINGW_PACKAGE_PREFIX}-python2"
"${MINGW_PACKAGE_PREFIX}-pkg-config"
"${MINGW_PACKAGE_PREFIX}-swig"
"${MINGW_PACKAGE_PREFIX}-glm"
"git")
PKGBUILD の83行目付近に1行追加。 (ストロークフォントファイルのコピー)
EXTRA_FLAGS=""
if [ $GCCVERSION = "5.1.0" ] || [ $GCCVERSION = "5.2.0" ]; then
EXTRA_FLAGS=" -DCMAKE_CXX_FLAGS=-Wno-deprecated-declarations"
fi
cp /d/kicad-winbuilder/newstroke_font.cpp $HOME/MINGW-packages/mingw-w64-kicad-git/src/kicad/common ← 追加
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
${MINGW_PREFIX}/bin/cmake.exe \
この追加部分の先頭 cp /d/kicad-winbuilder/new…… の /d がドライブレターを表しているので環境で変更する。
例えば Cドライブなら cp /c/kica…… のように。
- newstroke_font.cpp
上記参考サイトの 日本語フォントのマージ手順 に従って作成。 作成完了したら kicad-winbuilder ディレクトに配置
newstroke_font.cpp
- copydlls.sh
kicad-winbuilder ディレクトリの copydlls.sh を編集。 212行目付近に1行追加。 このファイル無いと起動しません。
"libreadline7.dll" \
"libtermcap-0.dll" \
"libpsl-5.dll" \
"libzstd.dll" \ ← 追加
"libcrypto-1_1*.dll" )
271行目付近に1行追加。 (修正しなくても問題ないと思うが存在するファイルなのでちゃんとコピーしてみる。今回も license_for_documentation.txt は行方不明。)
echo Building NSIS installer exe...
cp -r $NSISPATH $TARGETDIR
cp $HOME/MINGW-packages/mingw-w64-kicad-git/src/kicad/AUTHORS.txt "$TARGETDIR" ← 追加
}
- KiCad-Winbuilder.cmake
kicad-winbuilder ディレクトリの KiCad-Winbuilder.cmake を編集 103行目付近に2行追加 (openssl と readline と pip パッケージのダウングレードのファイル定義)
if( i686 ) set( TOOLCHAIN_PACKAGES "${TOOLCHAIN_PACKAGES} mingw-w64-i686-toolchain mingw-w64-i686-boost mingw-w64-i686-cairo mingw-w64-i686-curl mingw-w64-i686-glew mingw-w64-i686-openssl mingw-w64-i686-wxPython mingw-w64-i686-wxWidgets mingw-w64-i686-cmake mingw-w64-i686-gcc mingw-w64-i686-python2 mingw-w64-i686-python2-pip mingw-w64-i686-pkg-config mingw-w64-i686-swig mingw-w64-i686-libxslt bzr git doxygen" ) set( DWONGRADE_PACKAGES "${DWONGRADE_PACKAGES} http://repo.msys2.org/mingw/i686/mingw-w64-i686-openssl-1.0.2.p-1-any.pkg.tar.xz http://repo.msys2.org/mingw/i686/mingw-w64-i686-readline-7.0.005-1-any.pkg.tar.xz http://repo.msys2.org/mingw/i686/mingw-w64-i686-python2-pip-19.1.1-1-any.pkg.tar.xz" )
← 追加 endif() if( x86_64 ) set( TOOLCHAIN_PACKAGES "${TOOLCHAIN_PACKAGES} mingw-w64-x86_64-toolchain mingw-w64-x86_64-boost mingw-w64-x86_64-cairo mingw-w64-x86_64-curl mingw-w64-x86_64-glew mingw-w64-x86_64-openssl mingw-w64-x86_64-wxPython mingw-w64-x86_64-wxWidgets mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc mingw-w64-x86_64-python2 mingw-w64-x86_64-python2-pip mingw-w64-x86_64-pkg-config mingw-w64-x86_64-swig mingw-w64-x86_64-libxslt bzr git doxygen" ) set( DWONGRADE_PACKAGES "${DWONGRADE_PACKAGES} http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-openssl-1.0.2.p-1-any.pkg.tar.xz http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-readline-7.0.005-1-any.pkg.tar.xz http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-python2-pip-19.0.1-1-any.pkg.tar.xz" ) ← 追加 endif()
312行目付近に1行追加 (openssl と readline と pip パッケージダウングレードの実行用)
if( NOT EXISTS "${LOG_DIR}/pacman_required_packages" )
# Get the initial required packages and then update pacman again
execute_msys2_bash( "pacman --noconfirm -S base-devel" "${LOG_DIR}/pacman_base_devel" )
execute_msys2_bash( "pacman --noconfirm -S git make ${TOOLCHAIN_PACKAGES}" "${LOG_DIR}/pacman_required_packages" )
execute_msys2_bash( "pacman --noconfirm -Su" "${LOG_DIR}/pacman_required_packages_update" )
execute_msys2_bash( "pacman --noconfirm -U ${DWONGRADE_PACKAGES}" "${LOG_DIR}/pacman_boost_packages_downgrade" ) ← 追加
endif()
- nsis ファイル
kicad-winbuilder ディレクトリにある nsis ディレクトリの拡張子 nsi のファイルが文字コード UTF-8N なので UTF-8 に変換して保存しなおす。
Chinese.nsh
German.nsh
Greek.nsh
Italian.nsh
Spanish.nsh
install.nsi
ビルド開始
Windows のコマンドプロンプト起動しカレント移します。
D: cd kicad-winbilder
文字コード変更 (Win10の場合実行しないと MSYS2 の処理時に文字化けします。Win7は試してないけど4.0.7と一緒で実行しなくても大丈夫だと思います。)
chcp 65001
とりあえず実行
make_all.bat
環境作成できてKicad本体のビルドが始まるぐらいにCmakeが起動できなくてエラーで停止します。 D:\kicad-winbuilder\msys64\mingw32\bin にある
libeay32.dll libreadline7.dll
pip.exe
pip.exe.manifest
pip-script.py
ssleay32.dll
と、 D:\kicad-winbuilder\msys64\mingw64\bin にある
libeay32.dll
libreadline7.dll
pip.exe
pip-script.py
ssleay32.dll
をそれぞれコピーしてバックアップ。
エクスプローラーで D:\kicad-winbuilder\msys64 の msys2_shell.cmd をダブルクリックで起動し、コマンドを実行してopenssl と readline と pip のパッケージを最新版に戻す。
pacman --noconfirm -S mingw-w64-i686-openssl
pacman --noconfirm -S mingw-w64-i686-readline
pacman --noconfirm -S mingw-w64-i686-python2-pip
pacman --noconfirm -S mingw-w64-x86_64-openssl
pacman --noconfirm -S mingw-w64-x86_64-readline
pacman --noconfirm -S mingw-w64-x86_64-python2-pip
パッケージが戻ったら MSYS2 コンソールをexitで終了し先程バックアップしたファイルを mingw32 のファイルは mingw32 に、mingw64 のファイルはmingw64 にコピーする。
D:\kicad-winbuilder\msys64\mingw32\bin D:\kicad-winbuilder\msys64\mingw64\bin
以上の作業が完了したら、コマンドプロンプトに戻って再度
make_all.bat
を実行する。 あとは停止しないでビルドして勝手にパッケージングしてくれる・・・はず。 ファイルは
kicad-winbuilder\msys64\home\ユーザー名\out\pack-i686 kicad-winbuilder\msys64\home\ユーザー名\out\pack-x86_64
に作成されます。
インストールパッケージ
上記手順でビルドしたインストールパッケージです。
自己責任でご使用ください。
(毎度のことながら貧乏なので署名はしていません。Windows Defender SmartScreen で警告出ます・・・多分)
Windows10の場合 詳細方法 → 実行
32bit版 環境無くて未チェックです・・・すみません
32bit版 kicad-5.1.4_1-i686.exe
公開中止 検証中
64bit版 kicad-5.1.4_1-x86_64.exe