トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

4.0.7 のバックアップ(No.3)


KiCad 4.0.7 Windows版 ビルド

TOTAL:4743 今日:2 昨日:1

2017年03月20日 更新

KiCad で図面に日本語表示してみたくて、自力でコンパイルしてみたがドツボにはまったので参考までに・・・
4.0.7安定板 がリリースされたので、懲りずに挑戦しました。
おなじみでしょうが、すべて自己責任で!

質問は

mail.png

まで

総評

前回 PKGBUILD-STABLE を PKGBUILD にリネームしただけで行けたんじゃね?みたいな感じがしてたので今回試したらビンゴでした。
MSYS2の使い方を含めたパッケージ管理やビルドの仕方をよく理解しないで、かなり無駄な努力をしてしまった感じがします・・・
前回はなんだかんだで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 にリネームしてます、 読み替えてくださいませ。
また、容量に関しても24GB近かったので空き容量にはご注意ください。

作業開始

ソースの取得

https://github.com/KiCad/kicad-winbuilder の Winbuilder を使用しました。
前回よく理解しないで実行していたのですが Winbuilder をダウンロードしてバッチファイル実行すると環境がすべて整うんだな・・・

前回 4.0.6 のときは MSYS2 だの cmake だの環境について書いてたけど嘘ばっかしでした、ごめんなさい。
今度、クリーンな環境でビルド通るか試してみます。
ゆえに 4.0.6 環境を捨てて Winbuilder のダウンロードから試してみます。

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

D:\kicad-winbuilder

で行いました。

事前準備

前回と比べると NGSPICE のビルドで停止等は無くなりましたが多少修正はありました。
PKGBUILD-STABLE

  • PKGBUILD
    kicad-winbuilder ディレクトリの PKGBUILD を PKGBUILD.bak に名前変更
    PKGBUILD-STABLE をコピーして PKGBUILD に名前変更
    名前変更した PKGBUILD を以下の通り修正
    -DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python2.exe \
    ${EXTRA_FLAGS} \
    ../${_realname}
    cp /d/kicad-winbuilder/newstroke_font.cpp $HOME/MINGW-packages/mingw-w64-kicad-git/src/kicad/common ← 追加
    make
  • newstroke_font.cpp
    上記 日本語フォントのマージ手順 に従って作成
  • copydlls.sh
    kicad-winbuilder ディレクトリの
    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
    をダウンロード。crt を pem に 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.crt >> ca-bundle.crt
    cat DigiCertHighAssuranceEVCA-1.crt >> ca-bundle.crt

DigiCertHighAssuranceEVRootCA.crt
DigiCertHighAssuranceEVCA-1.crt

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

D:
cd kicad-winbilder

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

chcp 65001

とりあえず実行

make_all.bat

最後まで終了すれば問題ないが、多分エラーで止まると思う。
とりあえず実行するとファイルのダウンロードと環境の構築はしてくれるのでエラーが出てから考える。
うちの環境では *** NGSPICE library missing *** のエラーメッセージが出て終了しました。

環境の再構築

コマンドプロンプトで必要ファイルコピー

copy d:\kicad-winbuilder\PKGBUILD-ngspice-git D:\kicad-winbuilder\msys64

MSYS2コンソール起動

エクスプローラーで D:\kicad-winbuilder\msys64 の msys2_shell.cmd をダブルクリックで起動

以降 MSYS2 コンソールで作業
必要なパッケージインストールする

pacman -S autoconf
pacman -S automake
pacman -S bison
pacman -S libtool
pacman -S patch

ファイルのコピーと NGSPICE のビルド(NGSPICE は 4.0.6 安定板では使用しないと思われるが、パッケージングでライブラリコピーするので作成します。)

cd $HOME/MINGW-packages/mingw-w64-ngspice-git
mv PKGBUILD $HOME/PKGBUILD-ngspice.bak
cp /PKGBUILD-ngspice-git PKGBUILD
makepkg-mingw -is

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

完了したら続いてKiCad

boost のダウングレード

cd $HOME
pacman -R mingw-w64-x86_64-boost

以上のパッケージ削除しますか? で Y

pacman -R mingw-w64-i686-boost

以上のパッケージ削除しますか? で Y

wget http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-boost-1.57.0-4-any.pkg.tar.xz
wget http://repo.msys2.org/mingw/i686/mingw-w64-i686-boost-1.57.0-4-  any.pkg.tar.xz
pacman -U mingw-w64-x86_64-boost-1.57.0-4-any.pkg.tar.xz

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

pacman -U mingw-w64-i686-boost-1.57.0-4-any.pkg.tar.xz

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

ファイルダウンロードとビルド

cd $HOME
wget http://systembank.info/~sow/KiCad/PKGBUILD_kicad_jfont
wget http://systembank.info/~sow/KiCad/newstroke_font.cpp
rm -rf $HOME/MINGW-packages/mingw-w64-kicad-git/
mkdir $HOME/MINGW-packages/mingw-w64-kicad-git/
cd $HOME/MINGW-packages/mingw-w64-kicad-git
cp $HOME/PKGBUILD_kicad_jfont PKGBUILD
makepkg-mingw -is

それぞれ インストールを行いますか? で Y

起動&動作確認

エクスプローラーから D:\kicad-winbuilder\msys64\mingw64\bin\kicad.exe を起動して確認します。
特に、バージョン情報や図面に漢字の入力ができるか確認する。

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

MSYS2 コンソールで必要なパッケージのインストールとファイルのダウンロード

cd $HOME
pacman -S mingw-w64-i686-oce

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

cd /
wget http://systembank.info/~sow/KiCad/copydlls.sh

以上で MSYS2 の作業は終了なのでコンソール閉じて OK です。

windows のコマンドプロンプト起動しカレント移します。(今度は文字コード変更不要)

D:
cd kicad-winbilder
ren copydlls.sh copydlls.bak
copy msys64\copydlls.sh
make_all.bat

実行中に [エラー: /home/SBD/MINGW-packages/mingw-w64-kicad-git/kicad は https://github.com/KiCad/kicad-source-mirror.git の複製ではありません] が表示されますが、 スキップするので問題ありません。
kicad-source-mirro のWinbuilderで 4.0.6 安定板のパッケージをビルドし、インストールパッケージの作成だけをバッチ処理させているためです。

また、ライブラリファイルのコピーが終了してパッケージの作成に入るあたりで [Bad text encoding: install.nsi:9] のエラーが出る場合は、D:\kicad-winbuilder\nsis\install.nsi ファイルを文字コード変更できるエディタ等かツールで UTF-8 から Shift-JIS に変更して再度 make_all.bat を実行してください。

正常に終了すれば

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

それぞれにインストールパッケージが作成されています。

ダウンロードしたファイルの修正部分

上記手順で、当サイト http://systembank.info/~sow/KiCad/ からダウンロードしたファイルの修正箇所は以下の通りです。

PKGBUILD_kicad_jfont

-DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python2.exe \
${EXTRA_FLAGS} \
../${_realname}
cp $HOME/newstroke_font.cpp $HOME/MINGW-packages/mingw-w64-kicad-git/src/kicad /common     ← 追加
make

newstroke_font.cpp

http://wiki.kicad.jp/日本語フォントのマージ手順 に従って KST32B フォントをマージしたファイル

copydlls.sh

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"     ← 追加
}

makensis() {
cd "$TARGETDIR/nsis"

インストールパッケージ

32bit版 kicad-4.0.6-i686.exe
64bit版 kicad-4.0.6-x86_64.exe