KiCad 4.0.7 Windows版 日本語フォントマージビルド

KiCad 4.0.7 Windows版 日本語フォントマージビルド

2018年11月03日  Pukiwikiサイトから転載

2018年09月24日  5.0.0も公開しました。

2017年11月20日  大幅変更

KiCad のバグだと思っていたのが実は wxPython のバグ?(最新版のパッチが当たらない?)でした。Pcbnew 起動時にモジュール読み込まないエラーと Paythonコンソール 起動時のハングアップが改善しました。

KiCad で図面に日本語入力・表示してみたくて、自力でコンパイルしてみた第2弾
4.0.7安定板 がリリースされたので、懲りずに挑戦しました。
回路図のコメント入力や基板のシルクで日本語が使えるので便利です。
おなじみでしょうが、すべて自己責任で!

間違い・質問・ご要望は お問い合わせ まで。

総評

前回 PKGBUILD-STABLE を PKGBUILD にリネームしただけで行けたんじゃね?みたいな感じがしてたので今回試したらビンゴでした。
MSYS2の使い方を含めたパッケージ管理やビルドの仕方をよく理解しないで、かなり無駄な努力をしてしまった感じがします・・・
前回はなんだかんだで1か月かかったのが今回は1週間ぐらいで終了した・・・と思ったらスクリプトコンソール動かすのに結局1か月かかった。

参考サイト

日本語フォントのマージ手順

http://wiki.kicad.jp/

おなじみですがこのサイトの日本語フォントのマージ手順とツールなければ出来ませんでした。(というかやってみようとは思わなかった)

基本的なビルドの方法

http://docs.kicad-pcb.org/doxygen/md_Documentation_development_compiling.html

ソースからビルドする場合の情報です。
もしかすると32bit版はboostのダウングレードしなくても行けたのかな?

謝辞

今回も先人に感謝。参考サイト以外にも各サイトにお世話になってます。
うちの情報も役に立ってくれれば、うれしいです。

作業環境

Windows10 64bit
4.0.6と一緒でDドライブにて作業してます。階層が深くなる対策のため kicad-winbuilder-master を kicad-winbuilder にリネームしてます、 読み替えてくださいませ。
また、容量に関しても25GB近かったので空き容量にはご注意ください。

作業開始

Cmakeのインストール

https://cmake.org/download/ から自分の環境にあったインストーラをダウンロードしてセットアップします。
普通にセットアップできるので問題はないかと思います。

ソースの取得

https://github.com/KiCad/kicad-winbuilder の Winbuilder を使用しました。
前回よく理解しないで実行していたのですが Winbuilder をダウンロードしてバッチファイル実行するとダウンロードして環境を整えてくれるはず。
git 環境が整っている方は github の kicad-winbuilder を Clone してください。
git 環境が無い場合は https://github.com/KiCad/kicad-winbuilder にアクセスして Clone or Download から zip でダウンロードして展開する。
注意点はドライブのルートに展開するのとユーザー名のスペースに注意です。(マルチバイト文字もかな)
検証は最初の部分にも書いた通り
D:\kicad-winbuilder
で行いました。

事前準備

前回と比べると NGSPICE のビルドで停止等は無くなり思ったより順調に終了しました。
多少修正がありましたので、以下の通りです。

  • PKGBUILD

kicad-winbuilder ディレクトリの PKGBUILD を PKGBUILD.bak に名前変更。
PKGBUILD-STABLE をコピーして PKGBUILD に名前変更。
名前変更した PKGBUILD の20行目付近に3行追加。
(必須ライブラリの追加)

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-git")
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 の20行目付近に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…… のように。

PKGBUILD の70~80行目付近に2行追加 3行変更。
(スクリプトモジュール無効化)

-DKICAD_SKIP_BOOST=ON \
-DKICAD_USE_OCE=ON \ ← 追加
-DKICAD_SCRIPTING=OFF \ ← 変更
-DKICAD_SCRIPTING_MODULES=OFF \ ← 変更
-DKICAD_SCRIPTING_WXPYTHON=OFF \ ← 変更
-DKICAD_SPICE=ON \ ← 追加
-DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python2.exe \
${EXTRA_FLAGS} \
  • newstroke_font.cpp

上記参考サイトの 日本語フォントのマージ手順 に従って作成。
作成完了したら kicad-winbuilder ディレクトに配置

  • copydlls.sh

kicad-winbuilder ディレクトリの copydlls.sh を編集。
250行目付近に2行追加。
(修正しなくても問題ないが存在するファイルなのでちゃんとコピーしてみる。)

echo Building NSIS installer exe...
cp -r $NSISPATH $TARGETDIR
cp $HOME/MINGW-packages/mingw-w64-kicad-git/src/kicad/AUTHORS.txt "$TARGETDIR" ← 追加
cp $HOME/MINGW-packages/mingw-w64-kicad-git/src/kicad/license_for_documentation.txt "$TARGETDIR" ← 追加
}
  • ca-bundle.crt

途中、証明書のエラーが出るので新規作成しておく。

https://curl.haxx.se/ca/cacert.pem
https://www.digicert.com/CACerts/DigiCertHighAssuranceEVRootCA.crt
http://cacerts.digicert.com/DigiCertHighAssuranceEVCA-1.crt

上記3種類の証明書をダウンロード。
digicert の証明書がDER形式なので openssl で変換してから全部まとめる。

openssl x509 -inform der -in DigiCertHighAssuranceEVRootCA.crt -out DigiCertHighAssuranceEVRootCA.pem
openssl x509 -inform der -in DigiCertHighAssuranceEVCA-1.crt -out DigiCertHighAssuranceEVCA-1.pem

cat cacert.pem >> ca-bundle.crt
cat DigiCertHighAssuranceEVRootCA.pem >> ca-bundle.crt
cat DigiCertHighAssuranceEVCA-1.pem >> ca-bundle.crt

作成した ca-bundle.crt は kicad-winbuilder ディレクトリに配置する。

  • KiCad-Winbuilder.cmake

kicad-winbuilder ディレクトリの KiCad-Winbuilder.cmake を編集

100行目付近に2行追加
(boostパッケージのダウングレードファイル定義)

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-boost-1.57.0-4-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-boost-1.57.0-4-any.pkg.tar.xz ") ← 追加
endif()

316行目付近に1行追加
(boostパッケージダウングレードの実行用)

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()

334行目付近に1行追加
(証明書ファイルの配置)

message( STATUS "KICAD_PACKAGE_SOURCE_DIR ${KICAD_PACKAGE_SOURCE_DIR}" )
get_filename_component( USERNAME "${HOME_DIR}" NAME )
message( STATUS "MSYS2 user name is: $USERNAME=${USERNAME}" )

execute_msys2_bash( "cp /d/kicad-winbuilder/ca-bundle.crt /usr/ssl/certs/" "${LOG_DIR}/cert_copy" ) ← 追加

# Get the MinGW packages project for MSYS2
if( NOT EXISTS "${HOME_DIR}/MINGW-packages" )
execute_msys2_bash( "cd \"${HOME_DIR}\" && git clone https://github.com/Alexpux/MINGW-packages.git" "${LOG_DIR}/git_clone" )
endif()

この追加部分も cp /d/kicad-winbuilder/ca-…… の /d がドライブレターを表しているので環境で変更する。
例えば Cドライブなら cp /c/kica…… のように。

  • install.nsi

kicad-winbuilder ディレクトリにある nsis ディレクトリの install.nsi ファイルの文字コードが UTF-8N なので UTF-8 か shift-JIS に変換して保存しなおす。

ビルド開始

Windows のコマンドプロンプト起動しカレント移します。

D:
cd kicad-winbilder

文字コード変更
(Win10の場合実行しないと MSYS2 の処理時に文字化けします。Win7は試してないけど4.0.6と一緒で実行しなくても大丈夫だと思います。)

chcp 65001

とりあえず実行

make_all.bat

あとは数時間待ってれば勝手にダウンロードして勝手にビルドして勝手にパッケージングしてくれる・・・はず。
ファイルは

kicad-winbuilder\msys64\home\ユーザー名\out\pack-i686
kicad-winbuilder\msys64\home\ユーザー名\out\pack-x86_64

に作成されます。

スクリプトモジュールを使用したい場合

上記のスクリプトモジュールを無効化した手順でビルド終了した後

  • PKGBUILD

kicad-winbuilder ディレクトリの PKGBUILD (上記手順で変更したもの)をコピーして PKGBUILD_wx に名前変更。
(スクリプトモジュール有効化)

-DKICAD_SKIP_BOOST=ON \
-DKICAD_USE_OCE=ON \
-DKICAD_SCRIPTING=ON \ ← 変更
-DKICAD_SCRIPTING_MODULES=ON \ ← 変更
-DKICAD_SCRIPTING_WXPYTHON=ON \ ← 変更
-DKICAD_SPICE=ON \
-DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python2.exe \
${EXTRA_FLAGS} \
  • MSYS2コンソール起動

エクスプローラーで D:\kicad-winbuilder\msys64 の msys2_shell.cmd をダブルクリックで起動。以降 MSYS2 コンソールで作業

mv /d/kicad-winbuilder/PKGBUILD /d/kicad-winbuilder/PKGBUILD_No-wx
mv /d/kicad-winbuilder/PKGBUILD_wx /d/kicad-winbuilder/PKGBUILD

cd $HOME/MINGW-packages/mingw-w64-wxPython
makepkg-mingw -is

インストールを行いますか? で Y
i686版もインストールを行いますか? で Y

rm $HOME/MINGW-packages/mingw-w64-kicad-git/*.pkg.tar.xz
rm -rf $HOME/out

MSYS コンソールを閉じ コマンドプロンプトで再度 make_all.bat を実行

どうにも面倒でやってられない方

  • 簡単なビルド方法

上記手順が面倒な場合は kicad-winbuilder をダウンロードと解凍する。

kicad_407_files.zip をダウンロードして解凍し、

 

ca-bundle.crt
newstroke_font.cpp
PKGBUILD_wx

ファイルを kicad-winbuilder ディレクトリにコピー

copydlls.sh
KiCad-Winbuilder.cmake
PKGBUILD

ファイルを kicad-winbuilder ディレクトリに上書き

install.nsi

ファイルを kicad-winbuilder\nsis ディレクトリに上書きしてビルドすればOKです。
ダウンロードしたファイルの修正箇所は上記の詳細手順と同じです。

  • スクリプトモジュール有効化

スクリプトコンソールが必要な場合は上記同様エクスプローラーでスクリプトコンソール無効化した手順でビルドした後 D:\kicad-winbuilder\msys64 の msys2_shell.cmd をダブルクリックで起動して、

mv /d/kicad-winbuilder/PKGBUILD /d/kicad-winbuilder/PKGBUILD_No-wx
mv /d/kicad-winbuilder/PKGBUILD_wx /d/kicad-winbuilder/PKGBUILD
cd $HOME/MINGW-packages/mingw-w64-wxPython
makepkg-mingw -is

インストールを行いますか? で Y
i686版もインストールを行いますか? で Y

rm $HOME/MINGW-packages/mingw-w64-kicad-git/*.pkg.tar.xz
rm -rf $HOME/out

実行してMSYS コンソールを閉じ コマンドプロンプトで再度 make_all.bat を実行。

インストールパッケージ

それも面倒な人はインストールパッケージをダウンロードしてください。
(署名はしていませんので、自己責任で有効にしてください。–詳細方法 → 実行–)

32bit版 kicad-4.0.7-i686.exe

64bit版 kicad-4.0.7-x86_64.exe

てんちょ!

投稿者: てんちょ!

電脳再生研究所 助手