フラフラBLOG

なんかよくわからない方向に向かってます

QCAD 3.4 community edition compile/build

2014年02月25日 22時13分54秒 | Weblog
なんとなくQCAD3.4をビルドしてみました。
community editionをビルドしてみます。

何度かMingwでやってみましたが、Qtのビルド途中でエラーが出てしまい、あきらめました。
そこでVisual Studio 2010 Expressを使用します。

1.環境の構築
このサイトを参考に環境を作っていきます。
http://www.holoborodko.com/pavel/2011/02/01/how-to-compile-qt-4-7-with-visual-studio-2010/

1-1)何はともあれ、Visual C++ 2010 Express。
下記のサイトからVisual C++ 2010 Expressをダウンロードし、インストールします。
すごく分かりにくいところにあるので、頑張って探してください。
→Visual Studio Express 2012 for Windows Desktop
 →Visual C++ 2010 Express
https://www.microsoft.com/ja-jp/dev/express/default.aspx

1-2)続いてPerl。
Perlの環境がないとQtはビルドできないようです。
インストールは下記のサイトを参考に、当方はActivePerlを入れました。
http://www.perlplus.jp/perlinstall/install/index1.html
インストール途中に出てくる"Add Perl to the PATH environment variable"はきちんと設定しておいてください。
http://www.activestate.com/activeperl/downloads

1-3)作業ディレクトリの作成。
今回、作業ディレクトリとして、Cドライブの直下にsrcディレクトリを作りました。
C:\src

1-4)そしてJOM。
Visual C++でQtやQCADをビルドするとき、nmakeではなくJOMの方が早いようです。
下記のサイトからjom_1_0_13.zipをダウンロードしました。
http://download.qt-project.org/official_releases/jom/
先ほどの作業ディレクトリに解凍しておきます。
C:\src\jom_1_0_13

1-5)Qtのソース一式。
Qt4.8.xのビルドはうまくいかなかったので、あきらめて4.7.4を使用しました。
下記のサイトからqt-everywhere-opensource-src-4.7.4.zipをダウンロードします。
http://download.qt-project.org/archive/qt/4.7/
こちらも先ほどの作業ディレクトリに解凍しておきます。
C:\src\qt-everywhere-opensource-src-4.7.4

1-6)QCADのソース一式。
下記のサイトの一番下からQCAD Source Code (GPLv3)をダウンロードします。
http://www.qcad.org/en/qcad-downloads-trial
こちらもJOMとQt同様、先ほどの作業ディレクトリに解凍しておきます。
C:\src\qcad-3.4.6.0
この記事を書いているときの最新版は3.4.6です。
これより版が進んでも、ビルドの方法は変わらないと思います。


2.Qtのビルド
コマンドプロンプトからビルドしますが、Visual Studioのコマンドプロンプトを立ち上げないとビルドできません。
スタートメニュー
 ⇒すべてのプログラム
  ⇒Microsoft Visual Studio 2010 Express
   ⇒Visual Studio コマンド プロンプト (2010)

下記のコマンドをすべてコピーし、コマンドプロンプト上で右クリック、「貼り付け」を選べば一気に実行していきます。
使用しないtests、demos、examplesをビルドしても時間がかかるだけなので、configureでは-nomakeでビルドしないように設定してます。

set QTDIR=C:\src\qt-everywhere-opensource-src-4.7.4
cd %QTDIR%
set PATH=%QTDIR%\bin;%PATH%
set QMAKESPEC=win32-msvc2010
configure -opensource -platform win32-msvc2010 -release -nomake tests -nomake demos -nomake examples
y
..\jom_1_0_13\jom.exe -j5



下記のサイトを参考にJOMの-jスイッチを設定しました。
http://gom.skr.jp/tdiary/20090120.html#p02
当方のCPUは4coreなので、jom.exe -j5としました。
ただ、JOMがコケることがありました。
JOMでのビルドは不安定かもしれませんが、猛烈に早いので目を瞑ります。
もう一度JOMを実行したところ、ビルドは終わりました。

QCADのビルドが終わってもコマンドプロンプトは閉じないでください。


3.QCADのビルド
続けて下記のコマンドを実行します。

cd ..\qcad-3.4.6.0
qmake -r
..\jom_1_0_13\jom.exe -j5


Qtのビルドが終わってもコマンドプロンプトは閉じないでください。


4.QCADの実行環境の設定
これは実際には試していないのですが、たぶん下記のコマンドを実行していけばC:\src\qcad-3.4.6.0\releaseに実行環境が構築されると思います。
当方はエクスプローラ上で丸ごとコピーした後、del /F /S /Q *.expなどと、手動でコマンドを実行したので・・・
やっていることはreleaseフォルダに、QCADのexamples、fonts、libraries、patterns、plugins、scripts、tsフォルダを丸ごとコピーしています。
ただし、ビルドする際に生成された中間ファイルなど(.exp、.lib、.ts)はいらないので除外しています。
最後にmsvcp100.dllとmsvcr100.dllをrelaseフォルダにコピーします。

echo .exp >> delfile.txt
echo .lib >> delfile.txt
echo .ts >> delfile.txt
xcopy examples release /EXCLUDE:delfile.txt
xcopy fonts release /EXCLUDE:delfile.txt
xcopy libraries release /EXCLUDE:delfile.txt
xcopy patterns release /EXCLUDE:delfile.txt
xcopy plugins release /EXCLUDE:delfile.txt
xcopy scripts release /EXCLUDE:delfile.txt
xcopy ts release /EXCLUDE:delfile.txt
del delfile.txt

cd release
copy C:\Windows\System32\msvcp100.dll .
copy C:\Windows\System32\msvcr100.dll .
del *.exp
del *.lib


たぶん、このreleaseフォルダごと別のPCにもっていっても動作するはず。