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

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


TOTAL:4743 今日:2 昨日:1

KiCad 4.0.7 Windows版 ビルド

このバージョンのバグ情報見つけました。大きな問題ないかもしれませんがPcbnew のPaythonコンソールでハングするのでご注意ください。

2017年11月02日 更新

KiCad で図面に日本語表示してみたくて、自力でコンパイルしてみた第2弾
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
    kicad-winbuilder ディレクトリの PKGBUILD を PKGBUILD.bak に名前変更。
    PKGBUILD-STABLE をコピーして PKGBUILD に名前変更。
    名前変更した PKGBUILD の78行目付近に1行追加。
    (ストロークフォントファイルのコピー)
    -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
    この追加部分の先頭 cp /d/kicad-winbuilder/new…… の /d がドライブレターを表しているので環境で変更する。
    例えば Cドライブなら cp /c/kica…… のように。
     
  • 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

に作成されます。
 
 
上記手順が面倒な場合は kicad_407_files.zip をダウンロードして解凍し、

ca-bundle.crt
newstroke_font.cpp

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

copydlls.sh
KiCad-Winbuilder.cmake
PKGBUILD

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

install.nsi

ファイルを kicad-winbuilder\nsis ディレクトリに上書きしてビルドすればOKです。
 

インストールパッケージ 

それも面倒な人はインストールパッケージをダウンロードしてください。
 
32bit版 kicad-4.0.7-i686.exe
64bit版 kicad-4.0.7-x86_64.exe